美文网首页算法设计与 分析
分支限界法---单源最短路径

分支限界法---单源最短路径

作者: cp_insist | 来源:发表于2016-11-22 16:33 被阅读465次
引言:单源最短路径问题,是算法问题里面最最常提到的一问题,今天我们我们讲解的是通过分支限界法来求解单源最短路径问题,本文主要讲解求解思想,具体实现代码,之后补充;

一:什么是分支限界法

分支限界法和我们之前讲的回溯法有一定相似的地方,他们都是在问题的解空间中搜索我们的解,和回溯法有所不同的是,
 1:分支限界法采用的广度优先遍历或者以最小消耗优先的方式搜素解空间,而回溯法则是以深度优先策略搜索解空间;
 2:回溯法求解目标是要所有出问题的所有解,而分支限界法则是找出满足约束条件的一个解或者,满足某一约束条件的最优解;
 3:他们对当前节点所采用的扩展方式页不同;分支限界法每一个活节点只有一次成为扩展节点的机会;活节点一旦成为扩展节点,就一次性产生所有儿子节点;在这些儿子结点中,导致不可行的或者非最优解的儿子节点都会被舍弃,其余儿子节点被加入到活节点表中而回溯法按照深度优先策略,每次只从儿子结点中选择一个最好的;
从活节点表中选择扩展节点的方式不同又将其分为:
  A:队列式(FIFO)分支限界法
  B:优先队列式分支限界法
根据具体情况选择最大优先队列还是最小优先队列;

二:例题:

如下图:

例图.png
求从节点S到节点t的最短路径长度;
  1:使用队列式分支限界法求解:
    a:当前扩展节点S生成全部儿子节点{a,b,c}入堆;按照队列先进先出原则;
    b:节点a称为当前扩展节点生成{b,c,d,e};
    c:节点b称为当前扩展节点生成{c,d,e,f};
    d:节点c成为当前扩展节点此时{d,e,f}
    e:节点d成为当前扩展节点此时{e,f,g,h}
    f:节点e称为当前节点扩展节点{f,g,h}
    j:节点f成为当前节点扩展节点{g,h,i}
    h:节点g成为当前节点扩展节点节点t当前路径为:s-a-d-g-t(长度为13}此时活节点{h,i}
    i:节点h路径为:{s-a-e-h-t}路径长度为:10;
    g:节点扩展:{s-b-f-i-t}路径长度为:8;
  综上所述:最短路径长度为:8路线为:{s-b-f-i-t}
  2:我们使用优先队列式的分支限界法
    a:当前扩展节点S生成全部儿子节点{a,b,c}入堆;按照最小队列原则;
    b:节点a称为当前扩展节点生成{b,c,d,e};
    c:节点b称为当前扩展节点生成{c,d,e,f};
    d:节点c成为当前扩展节点此时{d,e,f}
    e:节点e成为当前扩展节点此时{d,f,h}
    f:节点f称为当前节点扩展节点{d,h,i}
    j:节点i成为当前节点扩展节点{d,h,t}
此时已经到达t点了最终得出一条路径为:(s-b-f-i-t)路径长度为8;
或者{s-a-e-f-i-t}长度也是8;
  综上所述:最短路径长度为:8路线为:{s-b-f-i-t}
如下图: 分支限界法求单源最短路径 (1).png

相关文章

  • 分支限界法---单源最短路径

    引言:单源最短路径问题,是算法问题里面最最常提到的一问题,今天我们我们讲解的是通过分支限界法来求解单源最短路径问题...

  • 最短路径问题

    无权图单源最短路径 有权图单源最短路径 有权图单源最短路径和无权图最短路径不一样,不能单从节点数来看,比如上图中,...

  • 算法理论 | 分支限界法

    分支限界法 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树 分支限界法与回溯法的区别 ...

  • Dijkstra算法 C++实现

    单源最短路径 对于图G =(V,E),给定源点 s 属于 V ,单源路径是指从 s 到图中其他各顶点的最短路径. ...

  • 第七讲-图(中)

    最短路径 问题分类:单源,多源 无权图的单源最短路径用bfs就可以解决。按照递增(非递减)的顺序找出从源到各个定点...

  • 最短路径 之 Dijkstra 算法

    • 最短路径 之 Floyd 算法• 最短路径 之 Bellman 算法 Dijkstra算法是用于求解单源最短路...

  • 最短路径算法

    最短路径算法可以分为两类:单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径。多源最短路径问题:求任...

  • 图 求解最短路径 时间复杂度 空间复杂度 单源最短路径 多源最短路径 条数最短(点权为1) 边权之和最小或最大(花...

  • 2019-11-05

    今天做了单源最短路径的算法

  • Floyd-Warshall 全源最短路径算法

    前言 全源最短路径是相对单源最短路径而言的,用于查找图中所有点对其它点的最短路径。 Floyd-Warshall算...

网友评论

    本文标题:分支限界法---单源最短路径

    本文链接:https://www.haomeiwen.com/subject/cagppttx.html