我正在阅读一维垃圾箱包装问题以及可用于解决问题的不同解决方案。
Bin装箱问题定义:给定一个对象列表及其权重,以及一组固定大小的箱子,找到最小数量的箱子,以便将所有物体分配到箱子。
我正在学习的解决方案:Next Fit,First Fit,Best Fit,Worst Fit,First Fit Decreasing,Best Fit Decreasing
我注意到我读过的一些文章称这些"近似算法"和其他人称之为"启发式"。我知道近似算法和启发式算法之间存在差异:
启发式:由于存在一些难题,在合适的运行时间内难以获得可接受的解决方案,因此我们可以得到一个好的"通过应用一些有根据的猜测或任意选择的解决方案。
近似算法:这给出了一个近似的解决方案,其中有一些"保证"它的表现(可能是一个比例,或类似的东西)
所以,我的问题是这些解决方案是我研究启发式算法还是近似算法?我更倾向于认为它们是启发式的,因为我们正在选择下一个项目放在一个箱子中,一些猜测"。我们无法保证一些最佳解决方案。那么为什么有些人称它们为近似算法?
如果这些不是启发式算法,那么解决bin装箱问题的启发式算法的例子是什么?
答案 0 :(得分:1)
算法既可以是启发式也可以是近似算法 - 这两个术语不会发生冲突。如果一些好的但不总是最佳的"策略(启发式)可以被证明是“不是太糟糕”" (近似保证),然后它有资格作为两者。
您列出的所有算法都是启发式算法,因为它们会规定一个通常很好的算法#34;策略,这是启发式的。对于任何有近似保证的算法("错误"必须以某种方式限制),那么你也可以说它是一种近似算法。