博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数学:匈牙利算法
阅读量:7101 次
发布时间:2019-06-28

本文共 531 字,大约阅读时间需要 1 分钟。

hot3.png

匈牙利算法:它由匈牙利数学家Edmonds于1965年提出,因而得名。此算法的核心就是寻找增广路径,通过增广路径来求二分图最大匹配的一种算法。

   通过这个图片来讲述一下。黑色代表A\B\C\D四只小狗,红色代表四种口味的骨头,每一条线表示的是小狗喜欢吃这个口味的骨头。

我们按照顺序给小狗们分配骨头,先给A分配,很明显a无人占用并且小A狗很喜欢,分配,博主最喜欢成人之美。(????)

现在给小B狗分配,小B喜欢b,前提b无人占用并且小B心仪很久,又成全一只小狗,哇哈哈~~

轮到小C狗了,小C等了好久了,但是小C喜欢的骨头全都被占了,好可怜有木有,但是没关系,我们想办法来帮助他。如下图。

 

通过这张图,我们可以很清晰的知道,我们把A的先拿掉,但是还是要给找一个,不然岂不是太偏心,给A找到b,但是b被占了,同理,也先拿掉,这样A满足了,在给B继续找, 这样我们就找到c,ok大家都可以找到后备胎了,那么小C可以吃a!!!同理对d一样,但是发现如果满足d,其他的都会被破坏,综上,得到最大的匹配值为3。

 

匈牙利算法的流程就是上述的方案。

 

  这个地址有精确描述,附加代码

转载于:https://my.oschina.net/u/2400412/blog/505407

你可能感兴趣的文章
npm 模块安装机制简介
查看>>
Linux 关于Transparent Hugepages的介绍
查看>>
上层建筑——DOM元素的特性与属性(dojo/dom-prop)
查看>>
设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
查看>>
Android开发之旅:android架构
查看>>
新闻发布系统,真正了解了么?
查看>>
使用Github的高级搜索功能
查看>>
信息系统开发平台OpenExpressApp - ClickOnce智能部署
查看>>
Android APK自动化测试
查看>>
ZooKeeper编程指导
查看>>
Top 5 open source Q&A systems
查看>>
Android固定头部sticky-headers RecycleView
查看>>
【Android开发】网路编程及Internet应用-使用WebView显示网页
查看>>
学生党如何拿到阿里技术offer:《阿里面试经历-2014.4.18研发实习生面试经历(失败)》...
查看>>
iOS开发证书"此证书的签发者无效"解决方法
查看>>
Java集合-List
查看>>
zfs 快照发送与接收
查看>>
mymysql与go-mysql-driver的一个区别
查看>>
为什么大批的JAVA程序员都是在转大数据
查看>>
elasticsearch 使用指南
查看>>