读书人

装载有关问题

发布时间: 2012-12-24 10:43:14 作者: rapoo

装载问题

装载问题
有一批共n个集装箱要装上两艘载重量分别为c1和c2的轮船,集装箱总重量小于等于c1+c2,要求定一个合理的装载方案可将这n个集装箱装上这两艘轮船。

可以证明,如果一个给定装载问题有解,则采用下面的策略可得到最优的装载方案:

1)首先将第一艘轮船尽可能装满

2)将剩余的集装箱装上第二艘轮船

?

将第一艘轮船尽可能装满等价于选取全体集装箱的一个子集,使该子集中集装箱重量之和接近第一艘轮船载重量c1.

该问题类似于0-1背包问题,可以用动态规划法解决。

?

用回溯法解装载问题时,用子集树表示其解空间显然是最合适的。

?

回溯法实现:

?

?

?

读书人网 >编程

热点推荐