图论算法之KM算法.pptVIP

  • 41
  • 0
  • 约2.41千字
  • 约 22页
  • 2019-10-16 发布于天津
  • 举报
图论算法之KM算法 KM算法的主要用处: 二分图最佳完美匹配。 费用流。 基本概念: 定理 1-1: 若相等子图有完美匹配,则原图有最佳匹配。 证明: 详见训练之南P349。 ...I I I 算法过程: 1.预设一个满足要求的顶标。转2 2.利用匈牙利算法寻找相等子图的最大匹配。转3 3.,若存在完美匹配,算法结束。否则修改顶标,使相等子图扩大。转2 假设X部中在匈牙利树中的点的点集为S,不在的点的点集为S,Y部中在匈牙利树中的点的点集为T,不在的点的点集为T。 a=min({L(x)+L(y)-w(x,y)} | x € S,y € T); void update(){ int a=INF_INT; for (int i=1;i=n;i++) if (S[i]){ for (int j=1;j=n;j++) if (!T[j]) a=min(l(x)+l(y)-w[i][j]); } for (int i=1;i=n;i++){ if (S[i]) lx[i]-=a; if (T[i]) ly[i]+=a; } } bool match(int i) { S[i]=true; for (int j=1;j=n;j++) if (lx(j)+ly(j)==w[i][j] !T[j]) { T[

文档评论(0)

1亿VIP精品文档

相关文档