第三章图算法(扩展版).pptVIP

  • 4
  • 0
  • 约2.2万字
  • 约 129页
  • 2020-07-21 发布于湖北
  • 举报
图论及其应用 第一章 图的基本概念 第二章 树 第三章 图的算法 第六章 网络流图问题 第七章 匹配理论、色数问题及其他 第三章 图的算法 §1 最短路径问题及算法 §2 任意两点间最短距离及其算法 §3 图的遍历算法 §4 图的划分 §5 关键路径 ? 什么是算法 “算法”一词最早来自公元9世纪波斯数学家比阿勒·霍瓦里松的一本影响深远的著作《代数对话录》。20世纪的英国数学家图灵提出了著名的图灵论点,并抽象出了一台机器,这台机器被我们称之为图灵机。图灵的思想对算法的发展起到了重要的作用。 算法是一种有穷规则,它规定何时应该做何种操作。 应该把算法理解成一种有穷的行为规则,算法不一定就是+-×÷或者微积分运算等计算过程。 图灵论点 1936年,图灵作出了他一生最重要的科学贡献,他在其著名的论文《论计算数在判定问题中的应用(On Computer numbers with an Application to the Entscheidungs problem)》一文中,将算法用一种通用的抽象机器来表示。并且证明了算法可计算的函数一定是这种抽象机器可计算的函数,换言之,算法是否存在,可以用是否能够找到一台等价的抽象机器来判断。这就是著名的图灵论点。后来,人们把论点中那个抽象机器称为“图灵机”。 图灵生平 阿伦·图灵(Alan Mathison Turing 1912.6.23~1954.6.7 )在伦敦出生,从小父母不在身边,1931年中学毕业想进剑桥大学最负盛名的三圣学院(Trinty College),两次未被录取,后来进了国王学院(King’s College)攻读数学。 §1 最短路径问题及算法 若干城市被铁路网连通,任意指定其中甲、乙两座城市,试求从甲到乙最近的铁路路线。 把上述转换为图论模型如下: 城市设为顶点,当两城间有铁路相通且中途无其他城市,在两点间连一边,如此构成一个图G;对每条边e∈E赋以权值w(e)表示铁路长度,如此得到带权图。 设P(u,v)是图中以u,v为两端点的路径,用W(P(u,v))表示路径P(u,v)上边权之和,即: W(P(u,v))= 我们的目标是求一条P(u,v),使得W(P(u,v))最小。 单点到各点的最佳路径算法有两个: Bellman-Ford算法 Dijkstra算法(狄克斯特拉算法) 一、Bellman-Ford算法 算法描述如下: (1)任取一棵以v0为根的生成树,在每个顶点标出v0到该点的长度li; (2)设树枝之外的边vij的长度为dij,依次检查每条树外的边,若对其中一对邻接点vi, vj出现:lj>li+ dij,则去掉以vj为终点的树枝,用vij代替; (3)重复(2),直到所有树外的边都比较过为止。 求下图v0到其余各点的最短路径: 任取图以v0为根的一棵外向树如下: 最后得到的解如下: 二、Dijkstra算法 Dijkstra算法是1959年荷兰的计算机科学家Dijkstra给出的解决最短问题的方法。 基本思想: 按照最短路径长度不减的次序求解各点的解。 即按由近到远的次序求解各顶点的解 Dijkstra算法描述(起点为v0): (1)初始化: 若(v0,vi)存在,则li=w (v0,vi),否则li=∞; (2)从未解的顶点中选择一个l值最小的顶点vk,则vk是已解顶点; (3)修改vk的直接后继顶点的l值 ——如果经过vk路径长度可以更近 (4)重复(2)、(3),直到所有顶点求解完毕。 (1)初始化: (2)从未解的顶点中选择一个l值最小的顶点vk; (3)修改vk的直接后继顶点的l值 ——如果经过vk路径长度可以更近 (2)从未解的顶点中选择一个l值最小的顶点vk; (3)修改vk的直接后继顶点的l值 ——如果经过vk路径长度可以更近 (2)从未解的顶点中选择一个l值最小的顶点vk; (3)修改vk的直接后继顶点的l值 ——如果经过vk路径长度可以更近 (2)从未解的顶点中选择一个l值最小的顶点vk; (3)修改vk的直接后继顶点的l值 ——如果经过vk路径长度可以更近 (2)从未解的顶点中选择一个l值最小的顶点vk; (3)修改vk的直接后继顶点的l值 ——如果经过vk路径长度可以更近 (2)从未解的顶点中选择一

文档评论(0)

1亿VIP精品文档

相关文档