作者dibery (简哥)
看板Prob_Solve
标题[问题] 整数分堆问题
时间Sun Jul 31 23:12:03 2016
现有 M 个正整数以及 N 个箱子
每个箱子的安全容量都是 S
限制是
1. 每个数字都必须丢进箱子里
2. 最小化 每一箱数字和超出 S 的和
输出
1. 每一箱需要装哪些数字才能符合条件
2. 每箱超出安全容量的和
任意最佳装法均可
例:有五个数字 60 60 60 50 45 及三个箱子,安全容量均为 100
最佳分法为
60 50 (超出10)
60 45 (超出5)
60
超出的和 = 10 + 5 = 15
---
只分成两群的解法我有解过(也就是背包问题)
但目前我还不知道要怎麽推广到更多群,用背包感觉阵列要加很多维
也有读了一些 bin packing 相关的 heuristic (像是 first-fit、best-fit...)
但这又似乎不保证能得到最佳解
请问各位版大,有什麽关键字或想法可以提供吗?谢谢
注:不是作业,也不是竞赛题,而是我实际要用的
--
This ████ ███ ███◣ ████ ███◣ ◥◣ ◢◤
████ █ ████ ████ ████ ◣█◢
is ████ █ ███▎ ████ ███◤ █ █
████ █ █████ ████ █◥◣ ██
dibery ███◤ ███ ███◤ ████ ██◥◣ ███
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.184.18.198
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1469977927.A.B9E.html
1F:→ yr: 那就 MIP 了,不过商用的 solver 很贵 07/31 23:37
2F:推 FRAXIS: 如果你一定要最佳解 大概就要搜寻法了.. 08/01 04:29