【发布时间】:2016-07-28 21:02:29
【问题描述】:
问题
给定具有不同重量的物品列表和可以存储重量的一定数量的容器,找到平衡容器中重量的解决方案集。最优解将最小化重量最大的容器和重量最小的容器之间的差异。
标准
- 必须使用所有重量
- 重量不能分装到单独的容器中
应用程序
该算法的实际应用是尝试在实时操作系统中对调度进行负载平衡。权重是每个调度函数的运行时间,容器是函数可以调度运行的帧。这样,您可以尝试分散每个函数的运行时间,以尽量减少整体帧时间。
想法
这似乎是 1/0 多背包问题和装箱问题之间的交叉。我正在尝试提出一种使用动态编程的算法来解决问题。我正在努力了解如何使用它来解决这个问题。有没有人对类似问题有任何建议或资料?
【问题讨论】:
-
我不认为动态编程会解决这个问题(除非你有很少的容器和很小的权重)。您可以在本文中找到其他方法的一个很好的概述:"A complete anytime algorithm for number partitioning"。
标签: algorithm language-agnostic real-time dynamic-programming