最优匹配

更新时间:2022-08-25 18:38

匹配,一般指配合或搭配,也指结婚。“匹配”一词在不同的领域有着不同的意思,它既是数学语言,又是计算机方面的术语,其含义复杂多变。最优匹配是指基于利用匹配算法或一些规则找到最佳匹配结果,一般多用于模式识别、图像处理等领域。此外,Windows 日记本中“查找”功能的一个扩展选项,其中可包括多个匹配项。

定律定义

推导过程设L是完备的二部赋权图G=(X,Y,E,F)的可行点标记,若M*是 的完美匹配,则M*是G的权数最大的匹配。称为最优(或最佳)匹配。

相关概念

1、令M是图G的边子集,若M中任意两条边都没有共同的结点,则称M是G的一个匹配;其中与M的边关联的结点称为饱和点,否则成为非饱和点。

2、设M是G=(V,E)的一个匹配,若对G的任意匹配M'都有|M|>=|M'|,则称M是G的一个最大匹配。

3、给定了G的一个匹配M,G中属于M与不属于M的边交替出现的道路称为交互道路。

4、设P是G中关于匹配M的一条交互道路,若P的两个端点是关于M的非饱和点,则它就称为可增广道路。

5、M是G的最大匹配当且仅当G中不存在关于M的可增广道路。

6、设r是二分图G的最大匹配数,s是其邻接矩阵的最小覆盖数,则有r==s。

实际意义

指派问题:需要完成n1项任务,有n2个人可以承担这些任务。由于每个人的专长不同,完成不同任务的成本与效率也不同。应如何分配任务才能使得总成本最小或者总效益最大。

算法及步骤

使用匈牙利算法求解最佳匹配问题,基于最小成本的问题求解。

时间复杂度O(m×n)。

step1:使效益矩阵经过变换,在各行各列中都出现0元素

(1)效益矩阵每行的元素减去该行的最小元素;

(2)再将所得的效益矩阵每列的元素减去该列的最小元素。

step2:进行指派,寻求最优解

(1)从只有一个0元素的行(列)开始,给这个0元素加圈,这表示对这行所代表 的人而言,只有一种任务可以指派。然后划去该加圈0元素所在列(行)的其他0元素,表示该列所代表的任务已经指派完,无需考虑其他人。

(2)给只有一个0元素的列(行)的0元素加圈,同时划去该0元素所在行(列)的其他0元素。

(3)重复进行(1)、(2)两步,直至所有0元素都被加圈或划去为止。

(4)若仍存在未加圈未划去的0元素,且同行(列)的0元素至少有两个(表示对这个可以从两项任务中指派其一),则对同行同列中其他0元素总数最少的0元素加圈(表示选择性多的要礼让选择性少的),并划去同行同列中的其他0元素。可反复进行,直至所有0元素都被加圈或划去为止。

(5)若加圈的0元素数量m等于矩阵的阶数n(这里矩阵的阶数指成本/效益矩阵行数、列数中的较小值),则指派问题已经得到最优解;若m

step3:作最少的直线覆盖所有的0元素,以确定成本/效益矩阵中的独立0元素

(1)对没有加圈0元素的行打勾;

(2)对已打勾的行中被划去0元素所在列打勾;

(3)对打勾的列中的加圈0元素所在行打勾;

(4)重复(2)、(3)直至找不出新的可打勾的行、列为止;

(5)选取未打勾的行和已打勾的列,即可覆盖全部0元素。

(6)选取的行、列数之和(即所作直线数)为l。若l

step2的(4),另行试探。

step4:增加独立的0元素

在未被直线覆盖的部分中找出最小元素。在打勾的行的各元素减去该最小元素,在打勾的列的各元素加上该最小元素,以保证原来的0元素不变。删除所有打勾、加圈、划去记号,返回step2。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}