• 图(二)


    4. 最小生成树

    4.1 生成树

    (1)定义:所有顶点均由边连接在一起,但不存在回路的图叫该图的生成树
    (2)深度优先生成树与广度优先生成树

    (3)

        一个图可以有许多棵不同的生成树
        所有生成树具有以下共同特点:
               生成树的顶点个数与图的顶点个数相同
               生成树是图的极小连通子图

    4.2 最小生成树

    生成树的每条边上的权值之和最小。

    实例:在N个城市之间修路,总路线的总和最小问题。

    4.2.1 Prim方法

    设N=(V,{E})是连通网,TE是N上最小生成树中边的集合:
    (1)初始令U={u0},(u0属于V), TE=NULL
    (2)在所有u属于U,v属于V-U的边(u,v)属于E中,找一条代价最小的边(u0,v0)
    (3)将(u0,v0)并入集合TE,同时v0并入U
    (4)重复上述操作直至U=V为止,则T=(V,{TE})为N的最小生成树

    4.2.2 Kruskal算法

    设连通网N=(V,{E}),令最小生成树
    (1)初始状态为只有n个顶点而无边的非连通图T=(V,{NULL}),每个顶点自成一个连通分量
    (2)在E中选取代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中;否则,舍去此边,选取下一条代价最小的边
    (3)依此类推,直至T中所有顶点都在同一连通分量上为止

    5.拓扑排序和 关键路径

    5.1 拓扑排序

    拓扑排序的基础:有向无环图,它是描述一项工程进度的有效工具。

    5.1.1 AOV网

    用顶点表示活动,用弧表示活动间优先关系的有向图称为顶点表示活动的网(Activity On Vertex network),简称AOV网

    5.1.2 拓扑排序算法

    (1)在有向图中选一个没有前驱的顶点且输出之
    (2)从图中删除该顶点和所有以它为尾的弧
    (3)重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止

    5.2 关键路径

    在AOV网中,完成工程的最短时间:从开始点到完成点的最长路径长度——关键路径。

    Ve(j)——表示事件Vj的最早发生时间
    Vl(j)——表示事件Vj的最迟发生时间
    e(i)——表示活动ai的最早开始时间
    l(i)——表示活动ai的最迟开始时间
    l(i)-e(i)——表示完成活动ai的时间余量

    6. 最短路径

    最短路径:路径上所有边的权值之和最小。

    6.1 某顶点到其它个点的最短路径

    Dijkstra算法:

    (1)初使时令 S={V0},T={其余顶点},T中顶点对应的距离值
    (2)若存在<V0,Vi>,为<V0,Vi>弧上的权值
    (3)若不存在<V0,Vi>,为无穷
    (4)从T中选取一个其距离值为最小的顶点W,加入S
    (5)对T中顶点的距离值进行修改:若加进W作中间顶点,从V0到Vi的距离值比不加W的路径要短,则修改此距离值
    (6)重复上述步骤,直到S中包含所有顶点,即S=V为止

    6.2 每对顶点之间的最短路径

    Floyd算法:

    (1)初始时设置一个n阶方阵,令其对角线元素为0,若存在弧<Vi,Vj>,则对应元素为权值;否则为无穷
    (2)逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值
    (3)所有顶点试探完毕,算法结束

    http://blog.csdn.net/matrix_laboratory/article/details/11879127

  • 相关阅读:
    矩阵树定理
    随机乱搞算法
    数学
    BZOJ——3412: [Usaco2009 Dec]Music Notes乐谱
    BZOJ—— 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
    洛谷—— P2884 [USACO07MAR]每月的费用Monthly Expense
    洛谷—— P2417 课程
    洛谷—— P1577 切绳子
    COGS 2598. 美丽的感觉
    10.23 模拟赛
  • 原文地址:https://www.cnblogs.com/wuyuankun/p/3754615.html
Copyright © 2020-2023  润新知