首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

装载有关问题

2012-12-24 
装载问题装载问题有一批共n个集装箱要装上两艘载重量分别为c1和c2的轮船,集装箱总重量小于等于c1+c2,要求

装载问题

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

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

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

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

?

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

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

?

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

?

回溯法实现:

?

?

?

热点排行