算法设计第五章作业及心得

软工2201段慧慧 2022级 2023-12-06 23:20:07

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

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

“最小重量机器设计问题"的解空间是动态产生的,在任何时刻,算法只保存从根节点到当前扩展节点的路径,

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

“最小重量机器设计问题“的解空间是一棵子集树,因为要求解的是满足“总价值不超过d的最小重量机器设计”这个条件的解

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

 

1.4 如何利用限界函数进行剪枝

只有当当前价格小于目标价格且当前重量小于最小重量时,才继续遍历,否则不再继续深度遍历,这样就剔除了不能得到最优解的结点                                                            

2. 你对回溯算法的理解

用回溯法解决问题,最重要的就是记住他的整体框架,然后根据题意写出剪枝函数和限界函数,再写一个回溯函数

void backtrack (int t){

    if(t > n)//到达叶子结点

        output(x);

    else

        for (int i = f(n, t); i <= g(n, t); i++){//分别表示扩展节点的子树的其实编号和终止编号

            x[t] = h(i);H(i)//表示第i个可选值

            if(constratint(t)&&bound(t))//表示约束函数和衔接函数

                backtrack(t + 1);
        }
}

 

...全文
19 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

434

社区成员

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

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