算法分析与设计实验五分枝—限界算法
更新时间:2024-05-25 08:46:01 阅读量: 综合文库 文档下载
- 算法分析与设计实验一推荐度:
- 相关推荐
1、实现0/1背包问题的LC分枝—限界算法,要求使用大小固定的元组表示动态状态空间树,与0/1背包问题回溯算法做复杂性比较。 2、实现货郎担问题的分枝—限界算法并与货郎担问 题的动态规划算法做复杂性比较比较。
3、实现带有期限的作业排序的分枝—限界算法并与 带有期限的作业排序贪心算法做复杂性比较。 (任选一个完成)
实验六 分枝—限界算法
实验目的
1. 掌握分枝—限界的基本思想方法;
2. 了解适用于用分枝—限界方法求解的问题类型,并能设计相应动态规划算法; 3. 掌握分枝—限界算法复杂性分析方法,分析问题复杂性。
预习与实验要求
1. 预习实验指导书及教材的有关内容,掌握分枝—限界的基本思想; 2. 严格按照实验内容进行实验,培养良好的算法设计和编程的习惯; 3. 认真听讲,服从安排,独立思考并完成实验。
实验设备与器材
硬件:PC机
软件:C++或Java等编程环境
实验原理
分枝—限界算法类似于回溯法,也是一种在问题的解空间树上搜索问题解的算法。但两者求解方法有两点不同:第一,回溯法只通过约束条件剪去非可行解,而分枝—限界法不仅通过约束条件,而且通过目标函数的限界来减少无效搜索,也就是剪掉了某些不包含最优解的可行解;第二,在解空间树上,回溯法以深度优先搜索,而分枝—限界法则以广度优先或最小耗费优先的方式搜索。分枝—限界的搜索策略是,在扩展节点处,首先生成其所有的儿子结点(分支),然后再从当前的活结点表中选择下一个扩展结点。为了有效地选择下一扩展结点,以加速搜索进程,在每一活结点处,计算一个函数值(限界),并根据这些已计算出的函数值从当前活结点表中选择一个最有利的结点做为扩展,使搜索朝着解空间树上最优解的分支推进,以便尽快找出一个最优解。
分枝—限界法常以广度优先或以最小耗费优先的方式搜索问题的解空间树(问题的解空间树是表示问题皆空间的一颗有序树,常见的有子集树和排序树)。在搜索问题的解空间树时,分枝—限界法的每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,那些导致不可行解或非最优解的儿子结点将被舍弃,其余儿子结点被加入活结点表中。此后,从活结点表取出下一结点成为当前扩展结点,并重复上述扩展过程,直到找到最优解或活结点表为空时停止。
实验内容
以下三个问题选做一项:
1. 实现0-1背包问题的分枝—限界算法。
(1) 选择合适的数据结构来表示问题,其中要求使用大小固定的元组表示动态状态
空间树;
(2) 确定限界函数;
(3) 根据分枝—限界法的基本原理,写出求解0-1背包问题的伪码算法; (4) 编制C++或JAVA等高级语言程序实现伪码算法; (5) 上机运行程序,验证算法的正确性;
(6) 作时空复杂性分析,并与用回溯法解0-1背包问题作比较。
2. 实现货郎担问题的分枝—限界算法。 (1) 选择合适的数据结构来表示问题; (2) 确定限界函数;
(3) 根据分枝—限界法的基本原理,写出求解货郎担问题的伪码算法; (4) 编制C++或JAVA等高级语言程序实现伪码算法; (5) 上机运行程序,验证算法的正确性;
(6) 作时空复杂性分析,并与用动态规划法解货郎担问题作比较。
3. 实现带有期限的作业排序问题的分枝—限界算法。 (1) 选择合适的数据结构来表示问题; (2) 确定限界函数;
(3) 根据分枝—限界法的基本原理,写出求解带有期限的作业排序问题的伪码算
法;
(4) 编制C++或JAVA等高级语言程序实现伪码算法; (5) 上机运行程序,验证算法的正确性;
(6) 作时空复杂性分析,并与用贪心法解带有期限的作业排序问题作比较。
实验报告
1. 2.
描述分枝—限界法的基本原理;
写出用分枝—限界法实现0-1背包问题、货郎担问题或带有期限的作业排序问题的伪码算法,写出算法所用到的主要数据结构,简要画出各问题的解空间树以及搜索过程,写出限界函数;
3. 4.
得出结果,并写出算法的时间复杂性和空间复杂性,并与其他算法解题作比较。 详细填写完成实验的收获和得失,实验过程中遇到的问题、解决的办法、实验心得以及对该实验的建议和意见。
思考题
1. 2.
分枝—限界法适合解决哪些问题?
怎样确定限界函数?限界函数是固定不变的吗?
正在阅读:
算法分析与设计实验五分枝—限界算法05-25
吉首大学数据库系统概论复习资料11-17
砖混施工组织设计 205-28
上外附中面试题汇总04-25
汽车轮模具项目可行性研究报告评审方案设计(2013年发改委标准案04-25
高级机修钳工考试用资料04-25
我心中的乌托邦作文600字06-26
程啸《侵权责任法》知识点梳理05-28
SEC百问百答05-28
雅思6分高频听力 0205-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 限界
- 分枝
- 实验
- 分析
- 设计