我正在寻找这个问题的通用psuedo代码numpy
、pandas
或sql
解决方案
问题陈述: 您有一个具有组列的唯一项表,该列可以属于一个或多个组。将每行仅分配给一个组,同时尝试最大化所有组的总大小。但每组不能超过规定的尺寸。表中的总行数可能大于所有组大小限制的总和,因此需要丢弃某些行
Example Input:
ID Groups
(4, [s1, s2])
(5, [s1, s2])
(6, [s1])
(15, [s1])
(7, [s2])
(8, [s3])
(10, [s3])
(12, [s3])
(13, [s3])
Desired Output Example
Group 1 (size_limit=3): 5, 6, 15
Group 2 (size_limit=2): 4, 7
Group 3 (size_limit=2): 10, 8
Bad Output
Group 1 (size_limit=3): 4, 5, 6
Group 2 (size_limit=2): 7
Group 3 (size_limit=2): 10, 8
我的想法是将每一行放在每个组中,找到最好的组来制作混凝土,从其他组中移除其最好的成员,移除超出限制的多余成员,然后重复
我认为最好的具体化组是那些需要达到限制的模糊行最少的组,即可能属于其他组的行
在伪代码中:
在Python中:
输出:
这可以更好地优化,可能有一些我没有想到的边缘情况
以下是我对解决方案的想法,但不确定它是否涵盖所有情况
相关问题 更多 >
编程相关推荐