2011-01-26 55 views
0

我有对象的不同尺寸的束(很多的对象可以具有相同的尺寸,例如:我有6B的54目的,10B的76,24B等的79最小消息长度算法

的对象的大小是6,8,10 ......字节)。我需要将这个包打包成几条消息(每条消息的最大长度为256字节)。

问题是如何使用最少数量的消息获得解决方案?

是否有任何已知的算法呢?我需要Hopfield神经网络吗?

+1

为什么你用各种(不相关的)语言标记?这实际上是一个语言不可知论问题。 – chrisaycock 2011-01-26 18:04:00

回答

3

这是一个bin packing problem这是一个组合NP难题的例子。最简单的算法是“First Fit Decreasing(FFD)”,您首先通过减小大小来排序对象,然后将每个对象插入列表中的第一条消息,并留下足够的空间。

1

这是一种背包问题,但不是背包问题。这是Bin packing problem,其中不同卷的项目打包到最小数量的箱子中,这些箱子都是相同的大小。这是NP难。

0

第一适合减少(FFD)算法不是最佳的(但一个非常好的开始)。如果您有更多的执行时间更多的开发时间,与simulated annealing禁忌搜索遗传算法 IT连锁。忽略蛮力分支和绑定:它们不会超出玩具问题。