-1

我已经实现了 First-Fit-Decreasing bin 打包算法,将数字列表拆分为两个大小相等的“bin”。该算法几乎总能找到最佳包装安排,但有时却找不到。

例如:

数字 4, 3, 2, 4, 3, 2 的集合显然可以拆分成这样的排列: 1) 4, 3, 2 2) 4, 3, 2

第一次拟合递减算法找不到解决方案。

在这种情况下,不找到正确的解决方案(如果存在)是不可接受的。

最初的难题是将一个数字序列分成两个总和相等的集合。

这只是一个简单的装箱问题还是我使用了错误的算法?

4

1 回答 1

2

装箱是 NP 完全的。

在这种情况下,不找到正确的解决方案(如果存在)是不可接受的。

尝试分支定界算法,但与所有精确算法一样,它不适用于中型或大型问题。

First-Fit-Decreasing是一个很好的起始确定性算法,但您可以通过将其与元启发式方法(如Simulated AnnealingTabu SearchGenetic Algorithms)链接起来做得更好。有几个开源库可以为您做到这一点,例如Drools Planner (java)。

于 2011-02-15T10:19:30.233 回答