美文网首页数学建模艺术【散人】数学建模
【数学建模算法】(10)图的应用:匹配问题

【数学建模算法】(10)图的应用:匹配问题

作者: 热爱学习的高老板 | 来源:发表于2019-08-12 16:31 被阅读1次

定义:若M \subset E(G), \quad \forall e_{j}, e_{j} \in Me_{i}e_{j}无公共端点(i \neq j)则称M为图G中的一个对集M中的一条边的两个端点叫做在对集M中相匹配;M中的端点称为被M许配G中每个顶点皆被M许配时,M称为完美对集;若G中已没有\left|M^{\prime}\right| \gt|M|的对集M,则称M最大对集;若G中有一轨,其边交替地在对集M内外出现,则称此轨为M交错轨,此交错轨的起止顶点都未被许配时,此交错轨成为増广轨

示意图

如上图所示,红线所标的三条边即是一个对集,由于只剩一个顶点没在这个对集的顶点中,所以不可能找到起止顶点都未能许配的増广轨,所以这个对集是它的最大对集,但是不是完美对集。

1957年,贝尔热(Berge)得到最大对集的充要条件:

定理1 M是图G的最大对集当且仅当G中无M可増广轨。

定理2 G为二分图,XY是顶点集的划分,G中存在把X中的顶点都许配的对集的充要条件是:\forall S \subset X,则|N(S)| \geq|S|其中N(S)S的邻集。

由以上定理可推得:

推论1Gk次(k>0)正则2分图,则G有完美对集。
k次正则图:每顶点都有k度的图)

由以上定理,可得婚配定理:

定理3 每个姑娘都结识k(k\geq1)个小伙子,每个小伙子都结识k(k\geq1)个小姑娘,那么每个小伙子都能找到一个小姑娘结婚,每个小姑娘都能找到一个小伙子结婚。

下面提出一个利用对集概念解决的问题:人员分派问题

例1 工作人员x_{1}, x_{2}, \cdots, x_{n}去做n件工作y_{1}, y_{2}, \cdots, y_{n},每人适合做其中的一件或几件,问是否每人都有一份适合的工作?如果不能,最多几人可以有适合的工作?

解决这个问题可以用1965年爱得门兹(Edmonds)提出的匈牙利算法。

匈牙利算法

1.从G中任意取定一个初始对集M
2.若MX中的顶点皆许配,停止,M即是完美对集;否则取X中未被M许配的一顶点u,记S=\{u\}, \quad T=\Phi
3.若N(S)=T,停止,无完美对集;否则取y \in N(S)-T
4.若y是被M许配的,设y z \in M, \quad S=S \cup\{z\}, \quad T=T \cup\{y\},转回3继续。否则,取可増广轨P(u, y),令M=(M-E(P)) \cup(E(P)-M),转回2。

最优分派问题

在人员分派问题中,工作人员适合做的各项工作当中,效益未必一致,我们需要制定一个分派方案,使公司总效益最大

这个问题的数学模型是:在人员分派问题的模型中,图G的每边加了权w\left(x_{i} y_{i}\right) \geq 0,表示x_{i}y_{j}工作的效益,求加权图G上的权最大完美对集。

解决这个问题可以用库恩—曼克莱斯(Kuhn-Munkres)算法。为此,我们要引入可行顶点标号相等子图的概念。

定义:若映射I : V(G) \rightarrow R,满足\forall x \in X, y \in Y
l(x)+l(y) \geq w(x y)
则称l是二分图G的可行顶点标号。令:
E_{l}=\{x y | x y \in E(G), l(x)+l(y)=w(x y)\}
称为以E_{I}为边集的G的生成子图为相等子图,记做G_{I}

可行顶点标号举例:
\begin{array}{ll}{l(x)=\max _{y \in Y} w(x y),} & {x \in X} \\ {l(y)=0,} & {y \in Y}\end{array}

必然是一组可行顶点标号。

定理4 G_{I}的完美对集即是G的权最大完美对集。

kuhn-Munkres算法

1.选定初始可行顶点标号l,确定G_{I},在G_{I}中选取一个对集M
2.若X中顶点皆被M许配,停止,M即为G的权最大的完美对集,否则,取G_{I}中未被M许配的顶点u,令S=\{u\}, \quad T=\Phi
3.若\mathrm{N}_{G_{I}}(S) \supset T,转4,若N_{G_{i}}(S)=T,取\alpha_{l}=\min _{x \in S, y \in T}\{l(x)+l(y)-w(x y)\}
\tilde{l}(v)=\left\{\begin{array}{l}{l(v)-\alpha_{l}, v \in S} \\ {l(v)+\alpha_{l}, v \in T\\l(v),其他}\end{array}\right.
l=\overline{l}, \quad G_{l}=G_{i}
4.选N_{G_{I}}(S)-T中选一顶点y,若y已被M许配,且y z \in M,则S=S \cup\{z\}T=T \cup\{y\}转3,否则,取G_{I}M可増广轨P(u, y),令M=(M-E(P)) \cup(E(P)-M)
转2
其中N_{G_{l}}(S)G_{I}S的相邻顶点集。

相关文章

网友评论

    本文标题:【数学建模算法】(10)图的应用:匹配问题

    本文链接:https://www.haomeiwen.com/subject/kixujctx.html