首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最大二部匹配(ford-fulkerson)

最大二部匹配(ford-fulkerson)
EN

Stack Overflow用户
提问于 2014-03-30 17:13:44
回答 1查看 5.3K关注 0票数 13

我当时正在读http://www.geeksforgeeks.org/maximum-bipartite-matching/algorithm,并且很难理解。这个例子似乎是假设每个工作只能接受一个人,每个人想要一份工作。我想知道如果v集的容量>1(可以雇用多个人来完成该工作)和u集>1(每个人都想要一个以上的工作),那么算法/代码会发生什么变化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-01 07:53:44

为了允许多个人分配给作业,您只需将边缘容量从Jobs修改为Terminal (类似于Niklas .在his comment中的描述,但不完全是这样)。

如下所示:

SourcePeople的1和从PeopleJobs的1的容量保证了一个人只会为一份工作被选中(因为他们可以贡献的最大流量是1)。但是,从> 1JobsTerminal的容量允许为该工作分配多个人。

如果一个人也能完成1项以上的工作,那么从SourcePerson的最大流量就会增加那么多:

其中,ijkx是值为>= 1的整数的暂存体。

这里需要记住的关键是,People左边的流容量决定了他们可以接受多少个作业,而Jobs右边的流容量决定了分配给这个任务的人有多少。中间的能力不应改变。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22747088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档