




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分支限界法旅行售货员问题 TSP 小燕子 6 1分支限界法的基本思想 1 分支限界法与回溯法的不同 1 求解目标 回溯法的求解目标是找出解空间树中满足约束条件的所有解 而分支限界法的求解目标则是找出满足约束条件的一个解 或是在满足约束条件的解中找出在某种意义下的最优解 2 搜索方式的不同 回溯法以深度优先的方式搜索解空间树 而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树 6 1分支限界法的基本思想 2 分支限界法基本思想分支限界法常以广度优先或以最小耗费 最大效益 优先的方式搜索问题的解空间树 在分支限界法中 每一个活结点只有一次机会成为扩展结点 活结点一旦成为扩展结点 就一次性产生其所有儿子结点 在这些儿子结点中 导致不可行解或导致非最优解的儿子结点被舍弃 其余儿子结点被加入活结点表中 此后 从活结点表中取下一结点成为当前扩展结点 并重复上述结点扩展过程 这个过程一直持续到找到所需的解或活结点表为空时为止 6 1分支限界法的基本思想 3 常见的两种分支限界法 1 队列式 FIFO 分支限界法按照队列先进先出 FIFO 原则选取下一个节点为扩展节点 2 优先队列式分支限界法按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点 最大优先队列 使用最大堆 体现最大效益优先最小优先队列 使用最小堆 体现最小费用优先 旅行售货员问题 TSP 某售货员要到若干城市去推销商品 一直各城市之间的路程 他要选定一条从驻地出发 经过每个城市一遍 最后回到住地的路线 使总的路程最短 该问题是一个NP完全问题 有 n 1 条可选路线 路线是一个带权图 图中各边的费用 权 为正数 图的一条周游路线是包括V中的每个顶点在内的一条回路 周游路线的费用是这条路线上所有边的费用之和 问题陈述 旅行售货员问题的解空间可以组织成一棵树 从树的根结点到任一叶结点的路径定义了图的一条周游路线 旅行售货员问题要在图G中找出费用最小的周游路线 即 设G V E 是一带权有向图 V 1 2 n 其耗费矩阵C ci j 当 i j E时 记ci j 且ci j 问如何选择周游路线使耗费最小 TSP问题 算法思路 设周游路线从结点1开始 解为等长数组X 1 x2 xn xi 2 n 则解空间树为排列树 在树中做广度优先搜索 约束条件 xi xj i j 目标函数 解向量对应的边权之和 Cij目标函数限界初值 U 活结点队列 队列式分支限界法 初始扩展结点为B 活结点队列为空 C 30 11 4 26 6 25 14 59 25 24 算法描述 算法开始时创建一个最小堆 用于表示活结点优先队列 堆中每个结点的子树费用的下界lcost值是优先队列的优先级 接着算法计算出图中每个顶点的最小费用出边并用minout记录 如果所给的有向图中某个顶点没有出边 则该图不可能有回路 算法即告结束 如果每个顶点都有出边 则根据计算出的minout作算法初始化 优先队列式分支限界法用极小堆存储活结点表 B被扩展后 它的三个儿子结点C D E被依次插入堆中 E被扩展后 它的儿子结点J K被依次插入当前堆中 D被扩展后 它的儿子结点H I被依次插入当前堆中 初始扩展结点为B 优先队列为空 B E D C E D J K C D H J K I C H J K I C J K I C K I C I C C K被扩展后 得到可行解费用为59 高于当前最优解25 算法的while循环体完成对排列树内部结点的扩展 对于当前扩展结点 算法分2种情况进行处理 首先考虑s n 2的情形 此时当前扩展结点是排列树中某个叶结点的父结点 如果该叶结点相应一条可行回路且费用小于当前最小费用 则将该叶结点插入到优先队列中 否则舍去该叶结点 当s n 2时 算法依次产生当前扩展结点的所有儿子结点 由于当前扩展结点所相应的路径是x 0 s 其可行儿子结点是从剩余顶点x s 1 n 1 中选取的顶点x i 且 x s x i 是所给有向图G中的一条边 对于当前扩展结点的每一个可行儿子结点 计算出其前缀 x 0 s x i 的费用cc和相应的下界lcost 当lcost bestc时 将这个可行儿子结点插入到活结点优先队列中 算法中while循环的终止条件是排列树的一个叶结点成为当前扩展结点 当s n 1时 已找到的回路前缀是x 0 n 1 它已包含图G的所有n个顶点 因此 当s n 1时 相应的扩展结点表示一个叶结点 此时该叶结点所相应的回路的费用等于cc和lcost的值 剩余的活结点的lcost值不小于已找到的回路的费用 它们都不可能导致费用更小的回路 因此已找到叶结点所相应的回路是一个最小费用旅行售货员回路 算法可结束 算法结束时返回找到的最小费用 相应的最优解由数组v给出 while E s n 1 非叶结点if E s n 2 当前扩展结点是叶结点的父结点 再加2条边构成回路所构成回路是否优于当前最优解if a E x n 2 E n 1 NoEdge 下界 if bN N x newint n for intj 0 j n j N x j E x j N x E s 1 E x i N x i E x E s 1 N cc cc N s E s 1 N lcost b N rcost rcost H Insert N delete E x 完成结点扩展 取下一扩展结点 try H DeleteMin E catch OutOfBounds break 堆已空 if bestc NoEdge returnNoEdge 无回路for i 0 i n i v i 1 E x i 将最优解复制到v 1 n while true 释放最小堆中所有结点delete E x try H DeleteMin E catch OutOfBounds break returnbestc 面试题1 有一根27厘米长的细木杆 在第3厘米 7厘米 11厘米 17厘米 23厘米这五个位置上各有一只蚂蚁 木杆很细 不能同时通过两只蚂蚁 开始时 蚂蚁的头朝向左还是右是任意的 他们只会朝前走或掉头 但不会后退 当两只蚂蚁相遇后 蚂蚁会同时掉头朝反方向走 假设蚂蚁们每秒钟可以走1厘米的距离 求所有蚂蚁都离开木杆的最小时间和最大时间 问题分析 1 最小时间肯定是各自朝最近的一端跑 27 11 14 1123 所以最长时间是24 算法 1 找出中间的蚂蚁离两端的距离中较小的 a 2 11a 2 27 11 14 因为a 2 a 2 所以最小距离是11 时间11 1 112 找出两端的蚂蚁距两端的距离中较大的 a 0 3a 0 27 3 24a 4 23a 4 27 23 4这四个数中最大的是243 所以 最大时间24 最小时间11 程序 publicclassAnt privatestaticintLONG 27 privateint a 3 7 11 17 23 privateintmin 0 max 0 publicvoidgogogo for inti 0 i a length i min Math max min Math min a i LONG a i max Math max max Math max a i LONG a i publicintgetMax returnmax publicintgetMin returnmin publicstaticvoidmain String args Antclient newAnt client gogogo System out println client getMax System out println client getMin 面试题2 猴子分桃有5只猴子在海边发现一堆桃子 决定第二天来平分 第二天清晨 第一只猴子最早来到 它左分右分分不开 就朝海里扔了一只 恰好可以分成5份 它拿上自己的一份走了 第2 3 4 5只猴子也遇到同样的问题 采用了同样的方法 都是扔掉一只后 恰好可以分成5份 问这堆桃子至少有多少只 分析题目 只要能求出每一个猴子当前桃子总数 最后就能求出最终结果 还有一个问题就是从什么地方入手 是知道第一只猴子面前的总数还是最后一只猴子面前的总数 再次假设 1 知道第一只猴子面前的总数n 那么下一只猴子面前应该有 n n 1 5 个桃子 可以利用一个循环来实现n的值是否满足要求 这是算法1 2 如果知道最后一只猴子面前的总数n 那么上一只猴子面前应该有n 4 5 1个桃子 同样 也可以利用一个循环来验证满足条件的n值 这是算法2 下面发算法2的代码 结果为3121 includevoidmain intCount 1 while true inti 0 intTemp C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁中医面试题库及答案
- 粮管所保安面试题库及答案
- 乐清城投面试题库及答案
- 快运客服面试题库及答案
- 考护士长面试题目及答案
- 康缘集团面试题库及答案
- 安全教育培训课件细化
- 垃圾焚烧发电行业2025年技术创新与新能源补贴政策协同发展模式创新报告
- 公司周年庆典致辞模式
- 农业科技创新项目计划
- 附合导线坐标计算表(EXCEL)
- 方案评审表-技术方案评估
- 《人工智能通识基础》全套教学课件
- 劳动教育读本中职版专题一崇尚劳动学习资料
- 教学查房流程
- 《建筑材料与构造》课件-3.建筑材料的基本要求与选用
- 《员工行为准则培训》课件
- 仓管员晋升组长述职报告
- 《慢性乙型肝炎防治指南(2022年版)-》解读
- 《厨房安全操作培训》课件
- 第七讲推动构建新时代的大国关系格局-2024年形势与政策(课件)
评论
0/150
提交评论