图论(16)匈牙利算法与最优匹配算法

目录

(一)匈牙利算法

M交错树

匈牙利算法-偶图完美匹配算法

偶图中找最大匹配

(二)、最优匹配算法-库恩算法

可行顶点标号

相等子图

定理及其证明要求掌握

例题:


(一)匈牙利算法

扎根于M非饱和点u,即以u为树根来构造M交错树,u是偶图中X点集中的点

M交错树

以非饱和点为根节点的树

S是M交错树上的属于点集X的点的集合,T是M交错树上的属于点集Y上的点的集合。

在情形1的时候,可以看到除了点u外,其他点是配对的,即一个X中的点,连上一个Y中的点。所以T包含于S的邻点集合。

不是因为多了一个u,而是因为树上属于X的点的邻点除了在T中有,可能还有一部分不在T中,但T中的点肯定在S的邻点集合中

这里再看看Hall定理

当邻点集合严格小于子集中元素个数,则偶图中不存在饱和每个顶点的匹配,即不存在完美匹配

两种情况都有xy不属于匹配M,第一种情况,因为u是非饱和点,所以uy不属于匹配M,第二种情况,因为匹配中的边不能有公共的顶点,所以xy也不属于匹配M

匈牙利算法-偶图完美匹配算法

例题:

偶图中找最大匹配

(二)、最优匹配算法-库恩算法

可行顶点标号

相等子图

定理及其证明要求掌握

可行顶点标号法中两个端点的标号值之和是大于等于对应边的权值的。所以任一完美匹配的边的权值小于等于对应点的标号值之和。但是在相等子图中,里边的点的标号值之和已经认为设定成了等于边的权值。注意完美匹配的边要覆盖所有的点,所以在两个式子的右边是相等的。都是G中所有顶点的标号值之和。即M*中的边的权值之和是等于所有顶点的标号值之和的,而M中的边的权值之和是小于等于所有顶点的标号值之和的。所以推出相等子图中的完美匹配就是最优匹配。

例题:

例题

偶数阶完全图可一因子分解,即K2n可分解成2n-1个一因子,所以K2(3n-1),可分解成2*(3n-1)-1=6n-3个一因子

即2n-1个3因子的和

 

 

 

 

 

 

 

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于A*算法最优路径规划系统可以帮助用户在给定的地图上找到两个指定地点之间的最优路径。该系统可以广泛应用于导航系统、物流规划等领域。 A*算法是一种启发式搜索算法,通过综合考虑当前节点的实际代价和启发式评估函数的预测代价来选择下一个要探索的节点。该算法基于图论中的迪杰斯特拉算法和启发式算法,具有高效、准确的特点。 首先,用户需要输入起始和目标地点的坐标,在地图上标记出起始和目标节点。然后,系统将启动A*算法来寻找最优路径。算法从起始节点开始,逐步探索其周围的节点,并计算每个节点的代价和预测代价。根据代价和预测代价,选择下一个要探索的节点,并将其加入到已访问节点集合中。系统会不断重复这个过程,直到找到目标节点或无法继续拓展节点为止。 在寻找路径的过程中,系统会使用启发式评估函数来估计当前节点到目标节点的代价。这个函数可以根据具体需求来选择,例如欧氏距离、曼哈顿距离等。通过启发式函数的引导,A*算法可以尽可能地快速找到最优路径,减少不必要的搜索。 最终,系统会根据A*算法找到的最优路径,将路径上的节点以直线或曲线的方式连接起来,并在地图上显示出来。用户可以通过地图查看路径,同时系统还可以提供路径长度、预计时间等相关信息。 总之,基于A*算法最优路径规划系统通过启发式搜索算法来寻找最优路径,具有高效、准确的特点。它能够帮助用户快速找到起始和目标地点之间的最优路径,并在地图上直观显示出来,帮助用户有效导航和规划行程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值