我有以下问题:
我认为这是一种包装问题,但我不知道是哪一种。
请建议将上述转换成哪个包装问题和/或我可以用来解决此问题的算法。
答案 0 :(得分:3)
看起来像NP-Hard 约束满足问题。你会有这样的硬约束和软约束。
内置约束:
硬约束:
有些颜色我不允许放在一个盒子里。
每个颜色(每种颜色不同)的项目数量最少,我可以放在一个盒子里。那是我可以决定放0个。一种颜色的盒子或最少的k个。或以上。
软约束:
更柔和的约束(或非常轻的软约束):
要解决此问题的算法,请查看模拟退火,禁忌搜索,分支和绑定,...
对于实现此类算法和支持约束的软件,请查看Drools Planner(java,开源)。
答案 1 :(得分:1)
这可能是NP-Hard。
分区问题(正整数)似乎减少了。
给定一个正整数数组A [1,... n]我们需要找到一些子集与它的补码具有相同的和。
将您的颜色视为1到n。你有两个盒子。一个盒子可以容纳颜色的最小值是A [i],你有完全A [i]颜色的项目i。
每个框可容纳的最大项目数为(A [1] + .. + A [n])/ 2.