Algorithm 简单、非平凡的装箱实例

Algorithm 简单、非平凡的装箱实例,algorithm,bin-packing,integer-programming,np-hard,Algorithm,Bin Packing,Integer Programming,Np Hard,箱子装箱问题是找到大小为v的箱子的最小数量,这些箱子可以包含大小为[s_1,s_2,s_3,…,s_n] 我正在寻找一个简单的,非平凡的箱子包装问题的例子 一个简单的实例是一个可以用不超过5个箱子求解的实例 非平凡实例是一个实例,它不能用最佳拟合递减启发式算法求解,但可以用完全搜索法求解 例如,实例v=20,objects=[15,7,14,3,14,7,9]很简单,但并不简单,因为完整的搜索证明最小的存储箱数是5: [[15,3],[7,7],[14],[14],[9]] 但是,最佳拟合启发式

箱子装箱问题是找到大小为
v
的箱子的最小数量,这些箱子可以包含大小为
[s_1,s_2,s_3,…,s_n]

我正在寻找一个简单的,非平凡的箱子包装问题的例子

一个简单的实例是一个可以用不超过5个箱子求解的实例

非平凡实例是一个实例,它不能用最佳拟合递减启发式算法求解,但可以用完全搜索法求解

例如,实例
v=20
objects=[15,7,14,3,14,7,9]
很简单,但并不简单,因为完整的搜索证明最小的存储箱数是5:

[[15,3],[7,7],[14],[14],[9]]

但是,最佳拟合启发式也会产生5箱包装:

[[15]、[14]、[14]、[9,7,3]、[7]]


是否存在一个简单、非平凡的装箱实例?

确实存在这样的实例,即:

v=20,objects=[11,7,7,6,5,3,1]

最佳拟合递减启发式给出:
[[11,7],[7,6,5,1],[3]]

最佳包装是:
[[11,6,3],[7,7,5,1]

确实存在这样的实例,即:

v=20,objects=[11,7,7,6,5,3,1]

最佳拟合递减启发式给出:
[[11,7],[7,6,5,1],[3]]

最佳包装是:
[[11,6,3],[7,7,5,1]

为什么不编写一个程序来实现这两种算法并对其进行彻底搜索呢?否则,这听起来更像是一个数学证明问题,在这种情况下,你应该把它发布在Thank@Dijkgraaf上,这就是我最后所做的(对随机输入进行穷举搜索)。问问你自己,在你的例子中需要什么才能使一个简单的算法错过答案。我假设每个箱子有2件东西太容易了;如果你有15和3,没有理由不把它们放在一起。一个更大的例子是,每个箱子有3个或更多物品,更可能出现问题;说(14,10,10,7,7,3,3,2,2,2);如果将3添加到14而不是2,则不能执行3个箱子。@m69您的示例无效。最佳拟合递减解和最优解都是三元解:
[[14,3,3],[10,10],[7,7,2,2,2]]
[[14,2,2,2],[10,10],[7,7,3,3]]
v=7,size=[3,3,2,2]为什么不编写一个程序来实现这两种算法并对其进行彻底的搜索呢?否则,这听起来更像是一个数学证明问题,在这种情况下,你应该把它发布在Thank@Dijkgraaf上,这就是我最后所做的(对随机输入进行穷举搜索)。问问你自己,在你的例子中需要什么才能使一个简单的算法错过答案。我假设每个箱子有2件东西太容易了;如果你有15和3,没有理由不把它们放在一起。一个更大的例子是,每个箱子有3个或更多物品,更可能出现问题;说(14,10,10,7,7,3,3,2,2,2);如果将3添加到14而不是2,则不能执行3个箱子。@m69您的示例无效。最佳拟合递减和最佳解决方案都是三位解决方案:
[[14,3,3],[10,10],[7,7,2,2,2]]
[[14,2,2,2],[10,10],[7,7,3,3,3]]]
v=7怎么样,大小=[3,2,2]v=7,对象=[3,3,2,2]工作得很好,对象=[3,3,2,2]也工作得很好