图与网络分析

图的矩阵表示

在这里插入图片描述

  1. 邻接矩阵。
    v i v_i vi v j v_j vj有点,则第i行第j列是1,否则是0。
    在这里插入图片描述
  2. 关联矩阵
    行数等于点的个数,列数等于边的个数。
    每一列只有两个非0元素,出发点是1,终止点是-1。
    在这里插入图片描述

图的特性

  1. 任何图中,顶点的次数总和等于边数的两倍,则顶点的次数永远是偶数。
  2. 任何图中,奇点的个数为偶数个
    奇点的次数+偶点的次数=偶数
    由于偶点的次数是偶数,则奇点的次数可以表示为两个偶数之差。

树的概念与特性

  1. 树的定义:联通且不含圈的无向图。
  2. 树的特性
    (1)边的个数是点的个数减1。
    (2)树中任意两点有唯一的链相连。
    (3)树是连通的,但是任意去掉一条边就不连通。
    (4)树中无圈,但是每增加一条新边,就得到唯一的一个圈。
  3. 每棵树至少有两个次为1 的点。
    树中次为1的点的个数有偶数个,假设上述定理不成立,则次为1的点有0个。又因为树是联通的,则不存在次为0的点,那么每个点的次至少是2。假设点的个数是n,则次的个数至少是2n,则边的个数至少是2n,矛盾!
    特别的,如果每个点的次都是2,则该树退化为一条链。
  4. 森林:不含圈的无向图。
  5. 支撑子图:子图中包含了全部的点,边没有要求。
  6. 图的支撑树:如果图G的支撑子图是树,则将其称为G的支撑树。
  7. 图G=(V,E)有支撑子图的充要条件是G是连通图
  8. 最小支撑树
    这个概念针对赋权图,即假设每个边上有一个非负权值。称支撑树上每个树枝的权值之和为树的权。
    具有最小权的支撑树成为最小支撑树。

避圈法求最小支撑树

  1. 将所有的边按照权值升序排列,从权值最小的边开始选树枝,如果可能形成圈,则跳过,知道选够顶点数-1的边数。

Dijkstra求最小支撑树

  1. 从任一点开始逐渐增加某个点集,记为S,每次从不在S的点集中选择距离S一步距离最小的点加入S,将相应的点选取为树枝,知道包含所有的点。
  2. 例子:红色的点是S集合,每次标出S到S补集中一步距离最小的点。
    在这里插入图片描述
    在这里插入图片描述

边割与割集

  1. 边割:对于图G=(V,E),任取S∈V,其补集为 S ‾ \overline{S} S。假设二者都不是空集,则端点分属两个集合的边构成的集合称为边割。
  2. 割集:除去边割后,连通性丧失。除去边割的真子集后,连通性保持。
  3. 推论:被割集分开的两部分是是分别连通的。

不定期问题的Dijkstra问题

问题:求一个赋权图中任意一点到别的所有点的最短距离,如求 v 1 v_1 v1到所有点的最短路径。
在这里插入图片描述
其实这是动态规划的问题,其核心就是下面的优化方程
f 1 ( v j ) = l 1 j f k + 1 ( v j ) = m i n { f k ( v i ) + l i j } f_1(v_j)=l_1j \\ f_{k+1} (v_j)=min\{f_k(v_i)+l_ij\} f1(vj)=l1jfk+1(vj)=min{fk(vi)+lij}
k表示迭代次数,即当前S集合中点的个数。每多迭代一步,S中就增加一个点,还要更新与这个点关联的所有距离。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值