在多个背包之间移动物品

问题描述

我有一个类似于背包问题或垃圾箱打包问题的算法问题,但不完全相同:

有多个背包。每个背包都已经有一些物品。一个物品应该放在特定的背包中。允许在背包之间移动物品。我至少应该移动多少次才能放入该物品? (一次只能移动一件物品,并且背包中的物品大小不能超过背包的大小)

示例:

输入1:8 | 4 8 | 5 8 | 3,4

Input2:6

输出:2

有3个背包,每个背包的尺寸为8,背包1的尺寸为4,背包2的尺寸为5,背包2的尺寸为5,背包3的尺寸为2和3,现在我们尝试放置一个大小为6的物品。最小移动时间为2,即:

[[4],[5],[3,4]]-> [[4],[5,3],[4]]-> [[4,4],[5,3], []]-> [[4,4],[3,5],[6]]

一个可行但不是最佳的解决方案是:

[[4],[5],[3,4]]-> [[4,3],[5],[4]]-> [[3],[5],[4,4] ]]-> [[3,5],[],[4,4]]-> [[3,5],[6],[4,4]]

我想知道是否存在针对此问题的最佳或启发式解决方案,或者是否已经分析了类似的数学模型?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)