在N和K之间有N个自然数子集(样本集:{2,9,32})。每组中的项目数/数量各不相同,但不能超过K. 50%的子集是1或2元素集。分布可视化为
number of elem.|frequency
1 #########################
2 ##############
3 #####
4 ###
...
n #
我们可以组合集合 - 这只是集合的简单联合,即如果A = {1,2,5,6},B = {2,6,33}则A + B = {1,2, 5,6,33}。
我们必须对这些集合进行聚类,以便在每个集群中元素的数量最少,并且每个集群中的P元素最少。
例如:A = {1,2,3},B = {5,6},C = {7,8},D = {9,10,11}输出应为:组1:AB ,第2组:CD(或AC和BD) - 我们有2组,每组5个元素。将AD和BC分组不是最佳的,因为我们分别有6个和4个元素。
N和P可以是任意数字,在我的情况下25000<N<35000
,10<P<30
。这个问题非常实用,不仅仅是数学任务。
我该如何处理?什么alghoritm最合适?