Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 多标准排序/分配到集合中_Algorithm_Sorting_Distribution - Fatal编程技术网

Algorithm 多标准排序/分配到集合中

Algorithm 多标准排序/分配到集合中,algorithm,sorting,distribution,Algorithm,Sorting,Distribution,我想找出一个算法 输入是一组具有多个值的对象(例如,每个对象有3个值,颜色/味道/年龄,但可能更多) 然后,该算法将对象分配到预定义数量的集合中。每套物品的数量应基本相同(每套物品数量的差异最好不超过1个),并实现每套物品价值分布尽可能公平的目标(例如,每套物品中红色的数量应尽量接近,其他颜色、口味和年代等应相同) 值与对象绑定,无法更改。如果将一个对象从一个集合移动到另一个集合,它将带来其所有值 我发现了这个相关的问题: 建议的“数字分区问题”似乎对单值分布有所帮助,但我正在寻找每个对象具有多

我想找出一个算法

输入是一组具有多个值的对象(例如,每个对象有3个值,颜色/味道/年龄,但可能更多)

然后,该算法将对象分配到预定义数量的集合中。每套物品的数量应基本相同(每套物品数量的差异最好不超过1个),并实现每套物品价值分布尽可能公平的目标(例如,每套物品中红色的数量应尽量接近,其他颜色、口味和年代等应相同)

值与对象绑定,无法更改。如果将一个对象从一个集合移动到另一个集合,它将带来其所有值

我发现了这个相关的问题:

建议的“数字分区问题”似乎对单值分布有所帮助,但我正在寻找每个对象具有多个值的信息/算法(如上所述)

还要注意的是,这些值不能标准化,即每个对象不能合计为一个值


非常感谢您的帮助。

恕我直言,您应该将此视为群集问题

哪个优先?具有相等数量的对象或每个值的数量相等?是否有任何一个值优先于其他值?最好满足两个目标,如有必要,可以稍微放松相等数量的对象约束,但不要过多(可能相差2或3)。价值的公平分配无论如何都不可能是完美的,因此它有回旋余地(可能大约占总数的10%)。真的只是需要合理的接近。这些值不优先于其他值。我认为同时满足这两个要求可能非常困难。将先例分配给不同的标准使工作更容易,但您想要的可能需要某种启发式算法。+1是一个良好的起点。但这几乎与集群完全相反。也许一旦你有了聚类,从每个聚类中取等量的数据来生成结果集。