码迷,mamicode.com
首页 > 编程语言 > 详细

朱 - 刘算法

时间:2018-09-27 01:53:32      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:相加   size   一个   生成树   16px   算法   not   上进   最小树形图   

· 定义

  对于有向无环图G (V, E),类似最小生成树的定义,有向图最小树形图即在有向图上查找总权值和最小的树形图(即有向边的树)。

· 朱 - 刘算法

  对于每个点先选取到达它的最小的边,这样可组成一个边集E1,显然,该边集权值和最小,但不一定是树。

  在该边集上进行缩点,并判断是否有解(是否有点无入度),在融会G中,记为G1

  当然,若此时没有找到有向环且有解,说明在当前图上已找到最小树形图,那么将原来的缩点解开,即除了当前树形图上的弧之外,将缩点内没有与已知弧有相同终点的边选出,如此构成了G的最小树形图。

  反之,则进行改边:先省去缩点内边;对于由缩点内出去的边,保持原权值即可;对于进入缩点的边,令Vs表示缩点点集,对于v ∈ Vs,u ∉ Vs,有<u, V> = <u, v> - v的最小入权边,是因为这样将权值相加的话,就相当于删去了缩点中拥有相同终点的边。

  这样更改完点集与边集,进行重复运算即可。

  其中,复杂度O (nm)。

· 代码

  (改代码仅求最小权值总和,这样是不需解开缩点的)

 

  

朱 - 刘算法

标签:相加   size   一个   生成树   16px   算法   not   上进   最小树形图   

原文地址:https://www.cnblogs.com/Colythme/p/9710789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!