2012-08-13 34 views
1

我试图找出一种算法......多标准排序/分配到组

输入是一堆有多个值对象(EG的每个对象的3个值,颜色/口感/年龄,尽管它可能更多)。

该算法然后将对象分布到预定义数量的集合中。每个集合最终应该具有几乎相同的对象数量(最好每个集合的对象数不应大于1),并且实现尽可能公平地分配每个集合的值的目标(例如尽量接近每套红色,其他颜色,以及品味和年龄等)。

值绑定到对象,不能更改。如果将一个对象从一组移动到另一组,则它将带来所有的值。

我发现此相关的问题:Algorithm for fair distribution of numbers into two sets

,并提出了“数字划分问题”似乎帮助单值分布,但是我正在寻找的信息/每对象多个值算法(如上所述) 。

另请注意,这些值无法归一化,即每个对象无法汇总为单个值。

非常感谢您的帮助。

+0

哪个优先?具有相同数量的对象或每个值的数量相等?是否有任何一个值优先于其他值? – 2012-08-13 22:46:09

+0

优选地,两个目标都满足,如果需要的话,相同数量的目标约束可以稍微放松,但不要太多(可能高达2或3的差异)。价值的公平分配可能不会完美无缺,所以它具有摆动空间(可能是总数的10%)。真的只需要得到相当接近的东西。这些值没有优先于其他值。 – devlop 2012-08-13 22:52:00

+0

我认为试图同时满足这两个要求可能相当困难。将优先级分配给不同的标准使得工作更容易,但是你想要的可能需要某种启发式算法。 – 2012-08-13 22:56:55

回答

2

恕我直言,你应该把这作为一个聚类问题http://en.wikipedia.org/wiki/Cluster_analysis

+0

+1是一个很好的起点。这几乎与群集完全相反。也许一旦你有了这些集群,从每个集群中获取相同数量的结果集。 – 2012-08-14 04:12:17