首页 > 编程语言 >对匈牙利算法的一些解释

对匈牙利算法的一些解释

时间:2023-11-15 22:33:19浏览次数:37  
标签:解释 匹配 增广 匈牙利 dfs 算法 右部 左部 节点

首先看蓝书上的代码

为什么即将开始dfs时,没有一开始就把vis[i]标记了?

其实dfs的流程是从左部的一个节点出发,考察右部的一个节点,如果右部的节点已经匹配了,下次dfs直接从这个右部节点的匹配点开始计算,所以vis的标记都是标记的右部节点,左部节点是不用标记的(因为是匹配二分图,只会被访问到一次)

而且对第i个点的dfs中,从右部节点走到左部节点的这个左部节点一定是之前就已经经历过的左部节点,不会是比i还大的左部节点。因为每一次dfs的结果,要么就是没找到增广路,此时第i个点是非匹配点,要么就是找到了增广路了,此时一定会把第i个点和右部的一个节点变成匹配点(路径上其余点都是之前已经确定了的匹配点)

所以左部节点都经历过dfs后,这个图一定没有增广路了。假设有,那么对于这条增广路,设其从左部非匹配节点x出发,终点是右部非匹配节点y,那么在之前的循环循环到x的时候,肯定也考察了这一条路径的,之所以认为这条路径不是增广路,就是因为不是交错路,此时肯定是这条路径中相邻三个点i,j,k(其中i和k是左部节点,j是右部节点)的两条边都是非匹配边,那么此时j一定是非匹配点,所以这条路径的部分(从x到j)就是一条增广路,就会把x标记成匹配节点,矛盾,所以一定没有增广路了

标签:解释,匹配,增广,匈牙利,dfs,算法,右部,左部,节点
From: https://www.cnblogs.com/dingxingdi/p/17835008.html

相关文章

  • 【路径规划】基于动态窗口法DWA算法的机器人动态避障路径规划研究附Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【iOS逆向与安全】某茅台App算法分析还原
    1.目标某茅台软件的actParam算法分析还原。2.使用工具mac系统frida-ios-dump:砸壳已越狱iOS设备:脱壳及frida调试IDAPro:静态分析Charles:抓包工具ss:小火箭,配合Charles使用3.流程处理启动闪退在IDAPro搜索SVC得到如下函数列表:NOP掉sub_函数的最后一行汇编......
  • 【课程】算法设计与分析——第八周 题解笔记
    第八周算法题解笔记1极值点题目描述给定一个单峰函数f(x)和它的定义域,求它的极值点该单峰函数f(x)保证定义域内有且只有一个极值点,且为极大值点题解本题感觉和dp关系不大,主要思路是三分法,和二分法非常类似,但没有二分法常用,主要用途是用来求单峰函数的极值对于任意一个......
  • 浙江大学数据结构陈越 第一讲 数据结构和算法
    数据结构数据结构是计算机科学中用来组织和存储数据的方式。它可以理解为一种组织数据的方式,能够有效地管理和操作数据,以及提供对数据进行存储、检索、更新和删除等操作的方法。常见的数据结构包括数组、链表、栈、队列、树和图等,它们各自适用于不同的应用场景,并且有着不同的特点和......
  • 检测重叠时间段的算法 [重复]
    内容来自DOChttps://q.houxu6.top/?s=检测重叠时间段的算法[重复]我需要检测两个时间段是否重叠。每个时间段都有一个开始日期和结束日期。我需要检测我的第一个时间段(A)是否与另一个时间段(B/C)重叠。在我的情况下,如果B的开始等于A的结束,则它们不重叠(反之亦然)。我发现了以......
  • cryptography hash 算法使用
    安装pipinstallcryptography使用方法fromcryptography.hazmat.primitivesimporthashesdigest=hashes.Hash(hashes.SHA256())#digest=hashes.Hash(hashes.SHA3_256())#digest=hashes.Hash(hashes.SM3())digest.update(b"abc")print(digest.finalize())......
  • 负载均衡算法
    转载:负载均衡算法居然有这么多种!!!负载均衡算法总结_负载均衡算法有哪些_抓手的博客-CSDN博客负载均衡算法可以分为两类:静态负载均衡算法和动态负载均衡算法,另外还可以自定义负载均衡算法。静态负载均衡算法1、轮询(RoundRobin):服务器按照顺序循环接受请求。2、随机(Random):随机选择......
  • 基于深度学习网络的人员吸烟行为检测算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述        基于FasterR-CNN深度学习网络的人员吸烟行为检测算法是一种利用深度学习技术进行人员吸烟行为检测的方法。该算法主要基于FasterR-CNN网络结构,通过对视频或图像序列中的人员......
  • 基于深度学习网络的火灾检测算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述       火灾检测在许多领域都是一项重要的任务,包括建筑、森林、甚至是太空。近年来,深度学习网络在图像识别和分类上的应用取得了显著的进步,这使得基于深度学习的火灾检测算法变得越来......
  • dfs回溯算法,拨号
    题目电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce",......