因此,您希望将具有不同权重 w_i 的 n 项目打包到具有最大权重容量的容器中 W 。
这就像你的通用bin包装问题,但以下约束使它不同(可能更容易):
最后,您还希望尽量减少每个垃圾箱浪费的空间。这是由一个客观函数定义的 - 外行人的术语中的一般行为是这样的:如果只浪费了小于或等于5%的垃圾箱,那么你就没那么好,而且没有记录。否则,如果浪费了大于5%,则会记录下来并且您不希望这样。
目标:尽量减少使用的垃圾箱数量,同时尽量减少浪费的空间。 优先考虑的是首先减少垃圾箱数量。
最佳算法/方法是什么?
我不确定这是否是垃圾箱包装问题的变种,但我问它好像无论如何。如果你们知道哪个问题更合适,那么请告诉我。
另外,我想知道我可以用来解决这类问题的所有可能方法(动态编程或贪婪方法)。
一些未实现的尝试解决方案:
就是这样。到目前为止,我只尝试过贪婪的方法,因为我希望有一种简单的方法来解决它。如果没有,那么请赐教。即使伤害,我也会接受真相。谢谢!
编辑: 我只想知道它是否可以使用另一种贪婪方法解决。此外,我想知道我可以搜索和学习的一般问题,以便它可以帮助我解决这个问题。
答案 0 :(得分:1)
“首先出现的项目必须在考虑下一个项目之前放置” - 这意味着你被塞满了。你所能做的只是猜测。
我会说,当每件物品到货时,你首先检查是否有一个垃圾桶从5%的垃圾浪费到≤5%的浪费并把它放在那里,然后你检查是否有垃圾箱在哪里适合并把它放在那里,如果它不适合任何地方你把它放入一个新鲜的垃圾桶。
整个标准似乎有点荒谬。为什么三个垃圾箱的填充率分别为96%,94.5%,94.5%,比三个垃圾箱的填充率分别为95%,95%和95%?基本上这意味着你想要填充95%以上的垃圾箱,因为如果你填充1到100%,这可能意味着另一个垃圾箱低于95%。直到你需要一个新的垃圾箱,因为你有这几乎差不多5%的差距。