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

计科2101王语欢 2022-12-11 00:55:18

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

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

输入样例:

3 3 4
1 2 3
3 2 1
2 2 2
1 2 3
3 2 1
2 2 2
1.1 说明“最小重量机器设计问题"的解空间

{(1,2,1)(1,2,2)(1,2,3)(1,3,1)(1,3,2)(1,3,3)(2,2,1)(2,2,2)(2,2,3)(2,3,1)(2,3,2)(2,3,3)}

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

首先初始化当前价格tc=0,当前重量tw=0,设置一个变量minw表示选择机器的总重量,初始化其为每个部件从1号供应商购买的重量。

用递归函数来实现回溯法搜索排列树(形式参数i表示递归深度)。若tc>d,则为不可行解,剪去相应子树,返回到i-1层继续执行。若tw>=minw,则不是最优解,剪去相应子树,返回到i-1层继续执行。若i>n,则算法搜索到一个叶结点,用minw对最优解进行记录,返回到i-1层继续执行。

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

树的根结点位于第1层,表示搜索的初始状态,第2层的结点表示对第一的物品选择某一个商家,第1层到第2层的边上为这个商家的物品的重量。依此类推,从树的根结点到叶子结点的路径就构成了解空间的一个可能解。

2. 你对回溯算法的理解

回溯法的基本思想就是为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。在回溯法中,并不是先构造出整棵状态空间树,再进行搜索,而是在搜索过程,逐步构造出状态空间树,即边搜索,边构造。创建解空间数,从根结点出发,按照深度优先策略搜索(遍历)解空间树,搜索满足约束条件的解。可以设置约束条件和限界函数剪枝,提高效率。

 

...全文
32 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-数据结构与算法 发布问题, 以便更快地解决您的疑问

434

社区成员

发帖
与我相关
我的任务
社区描述
广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧