算法设计与分析第五章作业

软工2101罗添权 2022-12-14 19:44:24

1. 请用回溯法的方法分析“最小重量机器设计问题”

设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设wij​是从供应商j 处购得的部件i的重量,cij​是相应的价格。
试设计一个算法,给出总价格不超过d的最小重量机器设计。

输入格式:

第一行有3 个正整数n ,m和d, 0<n<30, 0<m<30, 接下来的2n 行,每行m个数。前n行是c,后n行是w。

输出格式:

输出计算出的最小重量,以及每个部件的供应商。

1.1 说明“最小重量机器设计问题"的解空间:

解空间是解空间树走到叶子节点的每个分支的路径,对于该题样例n=3,m=3,解空间为

(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3)
(2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3)
(3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)

1.2 说明 “最小重量机器设计问题"的解空间树

  1.3 在遍历解空间树的过程中,每个结点的状态值是什么

每个节点的状态值代表当前所选的机器商家的总价格,以及当前所选机器的总重。

2. 对回溯算法的理解

回溯法是一种选优搜索法,就是按选优条件向前搜索,以达到目标。但是当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。但是这样可能会花费较多的时间,所以我们要运用限界函数约束函数来进行剪枝,以减少探索的次数,减少搜索时间。

有固定的套路,找到对每一个层次的节点后进行深度优先搜索,遇到限制条件就return。

时间复杂度大,要减小时间耗费可以写剪枝函数。

 

...全文
16 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-数据结构与算法 发布问题, 以便更快地解决您的疑问
发帖
gdufscs

127

社区成员

广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
帖子事件
创建了帖子
2022-12-14 19:44
社区公告
暂无公告