23
аросочетания и задача о назначениях аросочетания и задача о назначениях

Паросочетания и задача о назначениях

  • Upload
    farren

  • View
    68

  • Download
    7

Embed Size (px)

DESCRIPTION

Паросочетания и задача о назначениях. Определения. Задан граф G = ( V , E ). Подмн. ребер M  E является паросочетанием в G , если  v  V инцидентно  1 ребра из M . П., покрывающее все вер. графа, наз. совершенным . - PowerPoint PPT Presentation

Citation preview

Page 1: Паросочетания и задача о назначениях

Паросочетания и задача о назначениях Паросочетания и задача о назначениях

Page 2: Паросочетания и задача о назначениях

ОпределенияОпределения

Задан граф G = (V, E).

Подмн. ребер M E является паросочетанием в G, если v V инцидентно 1 ребра из M.П., покрывающее все вер. графа, наз. совершенным.

Вершинным покрытием графа наз. такое подмн. вершин R V: ребро e E инцидентно 1 вершине из R.

Двойственная взаимосвязь: пар. M и вер. п. R |M| |R|.

Действительно, пусть M = {(i1, j1), …, (ik, jk)} паросочетание. Тогда в вер. покрытии R должна быть хотя бы одна из вершин каждой пары {is, js}, s = 1, …, k. |R| k = |M|.

Page 3: Паросочетания и задача о назначениях

ПримерПример

Page 4: Паросочетания и задача о назначениях

Постановка задачи и определенияПостановка задачи и определения

max{|M| : M паросочетание в G} (1)

Назовем путь P=v0,e1,v1,e2,...,ep,vp (viV, ejE) чередующимся относительно паросочетания M, если:1) нечетные ребра e1,e3,...,eodd M;2) четные ребра e2,e4,...,eevenM;3) вершина v0 не инцидентна () паросочетанию M.

Чередующийся путь наз. аугментальным (увеличивающим), если для него доп.:4) количество ребер p нечетно, и вершина vp M

v0 v1 v2 v3 v4 v5

Page 5: Паросочетания и задача о назначениях

Аугментальный путьАугментальный путь

Лемма. Пусть задано п. M и аугментальный путь P. Тогда симметричная разность M =(MP)\(MP) является паросочетанием мощности |M |>|M|.

Доказательство. Т.к. v0,vpM и путь P чередующийся, то M паросочетание. А т.к. p нечетно, то |P(E\M)|=|PM|+1. |M |=|M|+1.

Page 6: Паросочетания и задача о назначениях

MaxMax паросочетания паросочетания

Лемма. Если в графе не аугментального относительно M пути, то M является max паросочетанием.Доказательство. Предположим противное: M не max п. Тогда п. M : |M |>|M|. Рассмотрим граф с ребрами (MM )\(MM ). Степень каждой вершины этого графа может быть равна 0,1,2. любая связная компонента этого графа путь или цикл. В любом цикле ребра из M и M чередуются и, , цикл имеет четное количество ребер и содержит одинаковое количество ребер из M и M. Т.к. |M |>|M|, то путь, содержащий > ребер из M , чем из M, причем этот путь содержит нечетное число ребер и потому является аугментальным.

M M (MM )\(MM )

Page 7: Паросочетания и задача о назначениях

MaxMax паросочетание в двудольном графе паросочетание в двудольном графе

G=(V1,V2,E), V=V1V2. Имеется нек. п. M. Нужно найти либо ауг. путь, либо показать, что такого пути нет, и значит, M max.

Алг. начинает работу с пометки в-н в V1 M. 1-е ребро чер. пути M, и все ребра, инц. помеченным в. из V1, включаются в строящиеся пути. Конечные в. таких ребер, V2, получают метки. 2-е ребро чер. пути M, и все ребра из M, инц. помеченным в. из V2, включаются в чер. пути. Непом. в. из V1, кот. являются конц. для чет. ребер, также помечаются. И т.д.

Пометка вершин прекращается, когда либо помеченная вершина из V2 M, значит, найден аугментальный путь, либо ни 1 в. > не может быть помечена, и значит, аугментального пути не .

Page 8: Паросочетания и задача о назначениях

АлгоритмАлгоритм

Шаг 0. Имеем п. M. Все в. не помечены и не просмотрены.Шаг 1. (Пометка вершин). 1.0. Приписать метку “” каж. непом. и M в. из V1. 1.1. Если нет не просм. в., то - на шаг 3. Иначе, выбрать пом. и не просм. в. i. Если iV1, то - на шаг 1.2. Если iV2, то - на шаг 1.3. 1.2. (Просмотр помеч. в. iV1). (i,j) M если jV2 не помеч., то приписать j метку “i”. Теперь i просмотрена. На шаг 1.1. 1.3. (Просмотр помеч. в. iV2). Если i M, то - на шаг 2. В прот. сл., (j,i)M если jV1 не помеч., то приписать j метку “i”. Теперь i просмотрена. На шаг 1.1.Шаг 2. (Аугментация). Аугм. путь P найден. Использовать метки, начиная с jV2, для восстановления этого пути. Положить M=(MP)\(MP). Удалить все метки. На шаг 1.Шаг 3. (Не аугм. пути). Стоп.

Page 9: Паросочетания и задача о назначениях

Корректность алгоритмаКорректность алгоритма

Пусть после остановки алгоритма:

iV

iV мн. помеченных вершин мн. не помеченных вершин

Теорема. После остановки алгоритма 1) мн.

21 VVR является вер. покрытием гр. G;

2) |M| = |R|, и п. M max.

Доказательство. 1) Т.к. на шаге 1.2 не удается пометить ни 1 в.

мн. V2, то не ребер из 1V в

2V 21 VVмн. покрываетвсе ребра графа.2) Т.к. аугм. пути нет, то каж. в. из мн.

2V инц. ребру eM

с другим концом в вершине из множества .1V Каж. в. мн.

1Vинц. р. eM, т.к. иначе она была бы помечена на шаге 1.0 сим. “”. Др. в. р. e ,2

V т.к. в прот. сл. она была бы помечена на шаге 1.2.

.21 MVV Но |R| |M| |R| = |M|

доли Vi

Page 10: Паросочетания и задача о назначениях

ПримерПример

Начальное п. M = {(3, 8), (5, 10)} (жирные ребра)

1

2

3

4

5

6

7

8

9

10

*

*

*

1

4

8

3

10

5

1

2

3

4

5

6

7

8

9

10

*

2

8

M’={(1,8),(3,7),(4,10),(5,9)}R = {3,4,5,8}

M={(,8),(5,10)}}

Page 11: Паросочетания и задача о назначениях

Паросочетание Паросочетание maxmax веса веса

Взвешенный граф G=(V1,V2,E), каж. р. e E приписан вес ce. Требуется найти паросочетание max веса. Из свойства абсолютной унимодулярности для построения паросочетания max веса достаточно решить след. задачу ЛП

;max,0 EexEe

eee

xc

,,1 21)(

VVixie

e

где (i)={eE : e=(i, j), jV} – мн. ребер, инц. в. i.

Page 12: Паросочетания и задача о назначениях

Задача о назначенияхЗадача о назначениях

Если |V1|=|V2|=n и требуется найти совершенное паросочетание max веса, то получаем задачу о назначениях:

;max1 1

0

n

i

n

jijij

xxcz

ij

;...,,1,11

nixn

jij

;...,,1,11

njxn

iij

;min11

,

n

jj

n

ii

vuvuw

ui+vj cij, i,j = 1, …, n.

Двойственная задача:

ПЗ

ДЗ

Page 13: Паросочетания и задача о назначениях

Свойства задачиСвойства задачи

Лемма. n

iiu 1}{ n

jjv 1}{ и зн. ц.ф. z ПЗ с весами cij отличается от

зн. функционала этой задачи с весами jiijij vucc напостоянную величину. Доказательство. доп. решения ПЗ имеем:

n

i

n

jijjiij

n

i

n

jijij xvucxc

1 11 1

)(

n

iij

n

jj

n

jij

n

iiij

n

i

n

jij xvxuxc

11111 1

.111 1

n

jj

n

ii

n

i

n

jijij vuxc

разница функционалов равна константе .11

n

jj

n

ii vu

Следствие. Решение ПЗ с весами cij opt оно opt для з. с весами

jiijij vucc

Page 14: Паросочетания и задача о назначениях

Свойства задачиСвойства задачи

Лемма. Если для u,vRn и xBnn выполняются условия:

0 jiijij vucc i,j = 1, …, n; 1)

2) xij=1 только в случае, когда ,0ijc

то решение x opt для ПЗ, и opt зн. ц.ф. равно .11

n

jj

n

ii vuz

Доказательство. Т.к. ,0ijc i,j, то .0)( cz

По условию 2) зн. функционала на решении x равно 01 1

n

i

n

jijij xc

оно opt. Из следствия opt решения x и для задачи с весами

.11

n

jj

n

ii vucij, и функционал на нем равен

Замечание. В лемме представлена связь решений двойственных задач. 1) – это требование доп. двойственных переменных u и v.2) – это условие дополняющей нежесткости.

Page 15: Паросочетания и задача о назначениях

Прямо-двойственный методПрямо-двойственный метод

Полный 2-дольный графа G=(V1,V2,E), V1={1,...,n} и V2={1,...,n}. Во время работы алг., двойственные переменные u и v всегдаостаются допустимыми, т.е. 21,0 VjVicij

EcEjiE ij }0:),{(),,,( 21 EVVG В графе

ищем max паросочетание.

Если его мощность = n, то стоп. Иначе, на двойственном шагеменяем значения двойственных переменных.

Page 16: Паросочетания и задача о назначениях

АлгоритмАлгоритм

Шаг 0. Пусть u, v нач. зн. дв. переменных и 21,0 VjVicij Найти max п. M* в графе ).,,( 21 EVVG Если |M*|=n, то M* – opt реш. задачи о назначениях. В прот. сл.запомнить M=M*, а также метки вершин мн. ,1

V 2V и на шаг 2.

Шаг 1. Имеем мн. ,}0:),{( EcEjiE ij п. M и мн. пом.

вершин ,1V .2

V

Используя имеющиеся метки вершин и п. M, построить max п. M*. Если |M*| = n, то M* – opt реш. задачи о назначениях, алгоритм останавливается. В прот. сл. запомнить M=M* и мн. ,1

V .2V

Шаг 2. (Двойственный шаг). Изменить зн. дв. пер., положив:

);(min21 ,

ijVjVi

c

ui=ui – , ;1Vi vj=vj+ , ;2

Vj

На шаг 1.

Page 17: Паросочетания и задача о назначениях

УтвержденияУтверждения

Лемма. После вып. шага 1 справедливо неравенство .21 VV

Лемма. На двойственном шаге > 0.

Лемма. После изменения зн. дв. переменных, получаем:

;, 21 VjVicc ijij

;,, 21 VjVicc ijij

;,, 21 VjVicc ijij ;,, 21

VjVicc ijij и новое решение дв. допустимо.

Page 18: Паросочетания и задача о назначениях

УтвержденияУтверждения

Следствие. Зн. ц.ф. ДЗ в рез. изменения зн. дв. пер-х на шаге 2

уменьшится на |).||(| 21 VV

Следствие. В результате дв. шага величина увеличивается.|| 2V

Лемма. Приведенный алг. построения opt решения для задачи о назначениях имеет трудоемкость O(n4).Доказательство. Т.к. в рез. шага 2 1 ребро добавляется в мн., то общее число дв. шагов величиной O(n2). Трудоемкость шага 2 = O(|E|). Сложность шага 1 также ограничена величиной O(|E|).

Page 19: Паросочетания и задача о назначениях

ПримерПример

27 17 7 8

14 2 10 2( )

12 19 4 4

8 6 12 6

ijc

Пусть 1 доп. дв. решение:

4...,,1,01 iui

4...,,1,max4,...,1

1

jcv ijij

u1=(0,0,0,0), v1=(27,19,12,8) и .664

1

14

1

1 j

ji

i vuw

1

0 2 5 0

13 17 2 6( )

15 0 8 4

19 13 0 2

ijc

Во 2 строке мат. все элементы < 0

2max 1

24,...,1

2

2 jj

cu

u2 = (0, 2, 0, 0), v2 = (27, 19, 12, 8) иw = 64

Page 20: Паросочетания и задача о назначениях

2

0 2 5 0

11 15 0 4( )

15 0 8 4

19 13 0 2

ijc

ПримерПример

}0:),{( 2 ijcEjiE

}4,2{1 V

}3{2V

Page 21: Паросочетания и задача о назначениях

2

0 2 5 0

11 15 0 4( )

15 0 8 4

19 13 0 2

ijc

ПримерПример

2)(min 244

2

, 21

ccijVjVi

u = (0, 4, 0, 2) v = (27, 19, 14, 8) w = 62

3

0 2 7 0

9 13 0 2( )

15 0 10 4

17 11 0 0

ijc

Page 22: Паросочетания и задача о назначениях

Задача о паросочетании Задача о паросочетании maxmax веса в веса в 2-2-дольном графедольном графе

Сведение задачи о паросочетании max веса в 2-дольном графе G = (V1, V2, E) к задаче о назначениях осуществим след. образом. Пусть |V1| = |V2| + a, a > 0. Добавим a вершин в мн. V2 и дополним граф до полного 2-дольного графа G с одинаковым количеством вершин в обеих долях, положив веса добавленных ребер = 0. Применим алг. для решения задачи о назначениях для графа G. Ребра, вошедшие в opt решение и имеющие > 0 веса, определяют паросочетание max веса в исх. 2-дольном графе G.

Page 23: Паросочетания и задача о назначениях

Транспортная задача и Венгерский метод (Harold Kuhn, 1955) One of the first algorithms of CO I heard about was the Hungarian method which has been viewed by many as a prototype of algorithm design and efficiency.Harold Kuhn presented it in 1955 in [3]. Having used ideas and results of J. Egerv´ary and D. K˝onig, he gave his algorithm (generously) the name Hungarian method.