![](/user_photo/2706_HbeT2.jpg)
Уч.пособие-по-ОДМ-2012
.pdf![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr211x1.jpg)
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr212x1.jpg)
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr213x1.jpg)
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr215x1.jpg)
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr216x1.jpg)
v1 sHHH sw1 |
v1 sHHH sw1 |
v1 s |
|
sw1 |
||||
|
HH |
H |
v2 s |
HH |
Hsw2 |
v2 s |
sw2 |
|
v2 sHHH sw2 |
|
|
||||||
v3 s HHHsw3 |
v3 s |
|
sw3 |
v3 s |
sw3 |
|||
|
G |
|
|
П1 |
|
. |
П2 |
|
|
|
|
|
|
|
П1 и П2 являются максимальными паросочетаниями, но не являют-
|
|
В |
. |
ся совершенными, так как |П| = 2 (в паросочетание.Пвходят 2 ребра), а |
|||
|V | = 3 (левая доля графа состоит из 3 вершин). |
А |
||
|
Барашев |
|
|
|
. |
||
12.2 |
Венгерский алгоритм |
С |
|
12.2.1 |
Постановка задачи |
|
|
|
|
Задача 12.1. ПустьУнучекимеется n работников и m работ. Известно,
какие работы может выполнять каждый из рабочих. Требуется распределить работу между МИРЭАработниками так, чтобы наибольшее ко-
личество людей получило работу, которую они могут выполнять. Все ли работники получат работу?
Решим эту задачу при помощи графов. Работникам соответствуют вершины vi двудольного графа G =< (V, W ), E > (vi V ); работам - вершины wj (wj W ).
Если i-тый рабочий выполняет j-тую работу, то в графе существует
ребро {vi, wj}. Если i-тый рабочий не может выполнять j-тую работу,
то ребра {vi, wj} в графе нет .
Таким образом, на языке графов задача формулируется следующим образом: найти максимальное паросочетание в двудольном графе. Существует ли в графе совершенное сочетание?
Решение этой задачи удобно находить, используя алгоритм отыскания максимального паросочетания, так называемый
217
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr219x1.jpg)
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr220x1.jpg)