Chapter17分支定界.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter17分支定界.ppt

活节点的 重量上限 当前E节点的 重量 * * 算法的改进思想 【问题】bestw表示当前所有可行节点的重量的最大值,而优先队列中可能有许多其uweight不超过bestw的活节点,因此这些节点不可能帮助我们找到最优的叶节点,所以可以将这些节点删除 【解决】bestw在算法执行过程中是不断增大的,在每次bestw增大时,删除队列中所有uweight bestw的节点。这种策略要求删除具有最小uweight的节点。 【可引入】双端优先队列(第9章的参考文献) * * (2)旅行商问题 解空间是排列树 方法一:只使用一个优先队列,队列中的每个元素中都包含到达根的路径 方法二:是保留一个部分解空间树和一个优先队列,优先队列中的元素并不包含到达根的路径 * * MinHeapNode templateclass T class MinHeapNode { friend AdjacencyWDigraphT; public: operator T () const {return lcost;} private: T lcost, //该节点子树中任意叶节点中的最小耗费 cc, //解空间树中从根节点到当前节点的耗费 rcost; //从顶点x[s:n-1]出发的所有边的最小耗费之和 int s, //当前旅行路径x[0:s], //剩余待访问的节点是x[s+1: n-1] *x; //从1到n 的整数排列,其中x[0]=1 }; * * 计算有向图中从每个顶点出发的边中耗费最小的边所具有的耗费MinOut 如果有向图中存在某些顶点没有出边,则搜索停止,说明图中没有旅行路径 * * BBTSP(续1) MinSum:累计所有顶点发出边的最小耗费之和 初始E节点为根的孩子,x[0]=1 * * s=n-2的E-节点,这时E-节点是某个单独叶节点的父节点 当某个叶节点成为 E-节点 后,搜索过程即终止 边(x[n-2],x[n-1]) 边(x[n-1],x[1]) * * 待检查边(x[s],x[i]) x[i]是x[s+1..n-1]上顶点 cc表示当前孩子节点的路径 前缀(x[0:s],x[i])的耗费 后续孩子节点筛选标准: cc+各剩余顶点的出边耗费 的最小值之和。 * * BBTSP(续3) 返回最优旅行路径的耗费bestc,及最优路径顶点序列数组v * * 本章小结 与回溯算法的比较 分支定界的思想 分支定界的应用 货箱装船:FIFO分支、最大收益 旅行商问题:最小耗费 * * 课后练习 Page519:练习2的1)、2)、4) 提高篇: Page535:练习23,FIFO分支定界实现 8-皇后问题 * * * 注意:回溯算法是活节点和E节点 * 使用FIFO搜索,总能找出从迷宫入口到出口的最短路径。 需要注意的是:利用回溯法找到的路径却不一定是最短路径! * 不可行的解:D【1,1,1】 J【1,0,1】 * 注意:书上是采用堆,这里演示中队列是按照元素耗费,所以队列的元素排列可能与堆的情况不一致! 但为了演示,只是体现取队列首元素(耗费最小)即可! 耗费表: 1)【4,6,30】 2)【6,14,24,30】 3)【11,14,24,26,30】 * 在找到最优装载所对应的叶节点之后,就可以利用所记录的路径返回到根节点来设置 x 的值 把 A d d L i v e N o d e和M a x L o a d i n g定义成类成员函数,这样,它们就可以共享诸如Q , i , n , b e s t w, E , b e s t E * * 这些节点浪费了珍贵的队列空间,并且它们的插入/删除动作也浪费了时间! 队列必须支持如下的操作:插入、删除最大节点、删除最小节点。 这种优先队列也被称作双端优先队列(double-ended priority queue ) 与回溯算法的比较 17.1 分支定界的思想 17.2 算法的应用 货箱装船:FIFO、最大收益 旅行商问题:最小耗费 Chapter17 分支定界 * * 分支定界 VS. 回溯算法 相同点: 都使用树形结构(子集树或排列树)来组织解空间 不同点: 回溯算法使用DFS方法来搜索树; 分支定界使用BFS方法或最小耗费方法来搜索树 分支定界的解空间比回溯算法要大得多 当内存容量有限时,回溯法更易成功! 但有时候,分支定界能够找到最优解。 * * 1、算法的思想 对E-节点的扩充方式:引入活节点表 【思想】

文档评论(0)

ailuojue2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档