
Теория графов. Лекция 10
.pdfИванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
102 |
|
|
Теория графов. Лекция 10
Задача о назначениях
Пусть имеется n работ и n кандидатов, причём назначение кандидата i на работу j требует затрат cij 0 . Требуется так распределить кандидатов
по работам, чтобы суммарные затраты были минимальными, при этом каждый кандидат может быть назначен только на одну работу и на каждую работу назначается только один кандидат.
Рассмотрим формулировку задачи на языке целочисленного программирования.
Введём булевы переменные:
|
|
|
|
|
1, если кандидат i назначается на работу j, |
x |
|
|
ij |
|
|
|
|
0, если кандидат i не назначается на работу j, |
тогда:
n |
n |
cij xij min, |
|
i 1 |
j 1 |
(10.1)
n |
|
|
|
|
xij |
1, |
|
i 1, 2,..., n , |
|
j 1 |
|
|
|
|
n |
|
|
|
|
xij |
1 |
, |
j 1, 2,...n |
, |
i 1 |
|
|
|
|
(10.2)
(10.3)
xij |
|
0 |
|
|
|
|
|
, |
i 1, 2,..., n , |
j 1, 2,...n . |
|||
|
||||||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
В задаче на узкое место вместо целевой функции (10.1)
max c x |
min . |
|||
x |
1 |
ij |
ij |
|
ij |
|
|
|
|
(10.4)
получаем:
(10.5)
В задаче (10.1)-(10.4) вместо условия (10.4)
Получим транспортную задачу, у которой m
запишем условие xij 0 .
n , ai bj |
1. Эта задача |
имеет оптимальное целочисленное решение, так как все
ai
и bj
целочисленны.
Матрицы X (xij ) , имеющие одну единицу в каждой строке и каждом
столбце, называются перестановочными. Бистохастическими
называются матрицы, удовлетворяющие следующим условиям:
|
xij |
0 , |
n |
|
|
xij |
1, |
j 1, 2,...n , |
i 1 |
|
|

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
103 |
|
|
n
xij j 1
1
,
i
1, 2,..., n
.
Теорема Биркгофа [1] утверждает, что множество бистохастических матриц является выпуклым многогранником в
всех
E |
n |
с |
|
|
перестановочными матрицами в качестве его вершин (крайних точек).
Задача (10.1)-(10.3) с условиями
x |
0 |
ij |
|
является задачей линейного
программирования, минимальное значение целевой функции достигается в крайних точках – т.е. для перестановочных матриц.
Определим циклы в задаче о назначении. Каждой матрице X (x ) , |
||
|
|
ij |
удовлетворяющей |
условиям (10.2)-(10.4) |
поставим в соответствие |
n-вершинный ориентированный граф. В |
этом графе существует |
|
дуга (i, j) , если x |
1. Получим один или несколько циклов. |
|
ij |
|
|
Рассмотрим пример матрицы
X
(xij
)
, удовлетворяющей условиям
(10.2)-( 10.4) при
n
6. |
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
|
1 |
|
|
|
|
2 |
|
|
1 |
|
|
X |
3 |
|
|
|
1 |
|
|
4 |
|
|
|
|
1 |
51
61
Для приведённой здесь матрицы X (xij ) на рис. 10.1 изображены два цикла.
3 |
|
4 |
1 |
2 |
|
|
5 |
6 |
|
Рис. 10.1 |
|
Максимальное количество циклов равно n, если кандидат i назначен на работу i, этому случаю соответствует единичная матрица.
Минимальное количество циклов равно 1, ниже приведён пример матрицы и соответствующего ей графа (рис. 10.2).

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
104 |
|
|
|
1 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
1 |
|
|
|
|
|
|
X |
3 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
6 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
|
1 |
6 |
4 |
|
5 |
|
Рис. 10.2 |
Этот случай соответствует задаче о коммивояжёре, которая рассматривается далее.
Рассмотрим задачу о назначениях1: имеется пять бригад и пять рейсов, требуется назначить одну бригаду на один рейс так, чтобы суммарные потери времени были минимальны. Матрица потерь времени имеет вид:
17,5 |
15 |
9 |
5,5 |
12 |
16 |
16,5 |
10,5 |
5 |
10,5 |
12 |
15,5 |
14,5 |
11 |
5,5 |
4,5 |
8 |
14 |
17,5 |
13 |
13 |
9,5 |
8,5 |
12 |
17,5 |
Решим задачу методом потенциалов. Получим начальное решение методом северо-западного угла. Это решение не является опорным. Введём четыре фиктивные занятые клетки (фиктивных назначения) и расставим
потенциалы. Матрица |
( |
ij |
) |
содержит положительные элементы, |
|
|
максимальный из них 41 25. Построим цикл пересчёта, начиная с клетки (4,1) . Определим минимальное число в клетках со знаком – это единица. Пересчитаем план.
1 Задача взята из книги [8].

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
105 |
|
|
|
|
|
0 |
0 |
0 |
0 |
1 |
||
|
|
|
3 |
0 |
0 |
2 |
2 |
|
|
|
|
|
|
||||||
( |
ij |
) 11 |
5 |
0 |
0 |
11 . |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
25 |
19 |
7 |
0 |
10 |
|
|
|
|
|
|
|
12 |
7 |
0 |
0 |
|
|
|
11 |
|
Полученный план: |
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
0 |
|
|
0 |
1 |
0 |
0 |
0 |
|
|
|
|||||
|
0 |
0 |
1 |
0 |
0 |
|
|
|
|||||
|
0 |
0 |
0 |
1 |
0 |
|
|
0 |
0 |
0 |
0 |
1 |
|
|
|
содержит только пять ненулевых компонент. Введём четыре фиктивных
назначения, заполнив клетки (1,3) , |
(2, 4) , |
(4, 2) и (5,3) . |
Расставим |
||
потенциалы, |
применяя |
формулу |
(9.14) |
и проверим |
критерий |
оптимальности. |
|
|
|
|
|

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
106 |
|
|
них
|
|
|
6 |
0 |
0 |
2 |
6 |
|
|
||
|
|
|
|
3 |
0 |
0 |
0 |
9 |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||
( |
ij |
) |
|
7 |
7 |
2 |
0 |
20 |
|
. |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
12 |
21 |
2 |
|
|||
|
|
|
|
0 |
0 |
|
|
||||
|
|
|
|
2 |
5 |
0 |
9 |
0 |
|
|
|
|
|
|
|
|
|
Матрица |
( |
ij |
) |
содержит положительные элементы, максимальный из |
|||
|
|
||||||
|
35 |
20 . |
Построим цикл пересчёта, начиная с клетки |
(3,5) . |
|||
|
|
|
|
|
|
|
Определим минимальное число в клетках со знаком – это единица. Пересчитаем план.

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
107 |
|
|
|
|
6 |
0 |
0 |
0 |
|
|
|
|
5 |
2 |
2 |
0 |
|
|
|
||||
|
|
|
|
|
|
|
( |
ij |
) |
5 |
5 |
0 |
0 |
|
|
|
|
|
|
|
|
|
0 |
0 |
12 |
20 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
2 |
5 |
0 |
7 |
|
|
|
12 |
|
|
11 |
|
|
|
||
|
||
0 |
|
|
20 |
|
|
|
||
|
||
18 |
|
|
|
.
Полученный план содержит только пять ненулевых компонент.
Введём четыре фиктивных назначения, заполнив клетки |
(1,3) , (1, 4) |
, (3, 4) |
||||
и (4, 2) . Расставим потенциалы и проверим критерий оптимальности. |
||||||
Матрица |
( |
ij |
) |
содержит три одинаковых положительных элемента, |
||
|
|
|||||
равных пяти. Построим цикл пересчёта, начиная |
с клетки |
(5, 2) . |
||||
Пересчитаем план и проверим его на оптимальность. |
|
|
|
11 |
5 |
0 |
0 |
12 |
|
|
|
|
10 |
7 |
2 0 |
11 |
|
|
|
|
|
|||||
( ij |
) |
0 |
0 |
0 |
0 |
0 |
. |
|
|
0 |
0 |
7 |
21 |
15 |
|
|
|
|
|||||
|
|
7 |
0 |
0 |
7 |
18 |
|
|
|
|
Матрица ( ij ) не содержит положительных элементов, полученный план назначений оптимален:

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
108 |
|
|
|
0 |
0 |
1 |
0 |
0 |
|
|
0 |
0 |
0 |
1 |
0 |
|
|
|
|||||
|
0 |
0 |
0 |
0 |
1 |
. |
|
|
|||||
1 |
0 |
0 |
0 |
0 |
|
|
|
0 |
1 |
0 |
0 |
0 |
|
|
|
Первую бригаду следует назначить на третий рейс, вторую – на четвёртый, третью – на пятый, четвёртую – на первый и пятую назначить на второй. Потери времени при этом будут минимальны и составят
9+5+5,5+4,5+9,5=33,5 часа.
Теперь приведём решение этой задачи венгерским методом2.
Шаг 1. Получим нули в каждой строке и столбце исходной матрицы путем вычитания минимальных элементов. Вначале определим минимальные элементы в каждой строке матрицы и разность между текущим элементом строки и ее минимальным элементом. Получим следующую матрицу:
17,5 |
15 |
9 |
5,5 |
12 |
|
вычтем 5,5 |
|||||
16 |
16,5 |
10,5 |
5 |
10,5 |
|
вычтем 5 |
|||||
12 |
15,5 |
14,5 |
11 |
5,5 |
|
вычтем 5,5 |
|||||
4,5 |
8 |
14 |
17,5 |
13 |
|
вычтем 4,5 |
|||||
13 |
9,5 |
8,5 |
12 |
17,5 |
|
вычтем 8,5 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
9,5 |
|
3,5 |
|
0 |
|
6,5 |
|
|
|
11 |
|
11,5 |
|
5,5 |
|
0 |
|
5,5 |
|
|
|
6,5 |
|
10 |
|
9 |
|
5,5 |
|
0 |
|
|
|
0 |
|
3,5 |
|
9,5 |
|
13 |
|
8,5 |
|
|
|
4,5 |
|
1 |
|
0 |
|
3,5 |
|
9 |
|
Затем определим минимальные элементы в каждом столбце полученной матрицы и разность между текущим элементом столбца и его минимальным элементом. Получим следующую матрицу:
12 |
9,5 |
3,5 |
0 |
6,5 |
11 |
11,5 |
5,5 |
0 |
5,5 |
6,5 |
10 |
9 |
5,5 |
0 |
0 |
3,5 |
9,5 |
13 |
8,5 |
4,5 |
1 |
0 |
3,5 |
9 |
Из всех элементов второго столбца вычтем 1:
2 Его создателем был венгерский математик Гарольд Кун (1925-2014) в 1955 году.
Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
109 |
|
|
12 |
8,5 |
3,5 |
0 |
6,5 |
11 |
10,5 |
5,5 |
0 |
5,5 |
6,5 |
9 |
9 |
5,5 |
0 |
0 |
2,5 |
9,5 |
13 |
8,5 |
4,5 |
0 |
0 |
3,5 |
9 |
Шаг 2. Поиск оптимального решения. Для этого выберем в полученной матрице строку с наименьшим количеством нулей. Отметим знаком «+» один из нулей этой строки, а знаком «–» – все остальные нули этой строки и того столбца, в котором находится этот нуль. Повторяем эту процедуру для остальных строк, пока есть неотмеченные нули. Если назначение является полным (число нулей со знаком «+» равно размерности
задачи |
n 5 ), то получено оптимальное решение, в противном случае |
переходим к шагу 3.
В результате выполнения второго шага получим матрицу:
12 |
8,5 |
3,5 |
0+ |
6,5 |
11 |
10,5 |
5,5 |
0– |
5,5 |
6,5 |
9 |
9 |
5,5 |
0+ |
0+ |
2,5 |
9,5 |
13 |
8,5 |
4,5 |
0+ |
0– |
3,5 |
9 |
Поскольку число нулей со знаком «+» в этой матрице меньше 5, то переходим к следующему пункту алгоритма.
Шаг 3. Поиск минимального набора строк и столбцов, содержащих все нули. Для этого необходимо отметить знаком «+»:
а) все строки, в которых нет отмеченного знаком «+» нуля; б) все столбцы, содержащие нуль со знаком «–», хотя бы в одной из
отмеченных знаком «+» строк; в) все строки, содержащие отмеченные знаком «+» нули, хотя бы в
одном из отмеченных знаком «+» столбцов.
г) действия б) и в) повторять поочередно до тех пор, пока есть что отмечать.
Минимальный набор строк и столбцов, содержащих все нули, образуют все непомеченные знаком «+» строки и помеченные знаком «+» столбцы. Все входящие в этот набор строки и столбцы необходимо вычеркнуть.
Врассматриваемом примере знаком «+» необходимо пометить 1-ю и 2-ю строки, а также 4-й столбец. Соответственно, необходимо вычеркнуть 3-ю, 4-ю и 5-ю строки и 4-й столбец.
Витоге получим следующую матрицу:
Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
110 |
|
|
|
|
|
+ |
|
|
12 |
8,5 |
3,5 |
0+ |
6,5 |
+ |
11 |
10,5 |
5,5 |
0- |
5,5 |
+ |
6,5 |
9 |
9 |
5,5 |
0+ |
|
0+ |
2,5 |
9,5 |
13 |
8,5 |
|
4,5 |
0+ |
0- |
3,5 |
9 |
|
Шаг 4. Выбрать среди оставшихся элементов матрицы минимальный элемент (это элемент первой строки, третьего столбца, равный 3,5), затем вычесть его из каждого элемента невычеркнутых столбцов и прибавить его к каждому элементу вычеркнутых строк.
Выполняя указанные действия (сначала вычтем из элементов 1, 2 и 3 столбцов 3,5:
8,5 |
5 |
0 |
0+ |
3 |
7,5 |
7 |
2 |
0- |
2 |
3 |
5,5 |
5,5 |
5,5 |
-3,5 |
-3,5 |
-1 |
6 |
13 |
5 |
1 |
-3,5 |
-3,5 |
3,5 |
5,5 |
затем добавим к элементам 4 и 5 строк 3,5), получим:
8,5 |
5 |
0 |
0 |
3 |
7,5 |
7 |
2 |
0 |
2 |
6,5 |
9 |
9 |
9 |
0 |
0 |
2,5 |
9,5 |
16,5 |
8,5 |
4,5 |
0 |
0 |
7 |
9 |
Переходим к шагу 2 алгоритма, выполняя действия которого получим матрицу:
8,5 |
5 |
0+ |
0– |
3 |
7,5 |
7 |
2 |
0+ |
2 |
6,5 |
9 |
9 |
9 |
0+ |
0+ |
2,5 |
9,5 |
16,5 |
8,5 |
4,5 |
0+ |
0– |
7 |
9 |
Получено оптимальное решение исходной задачи о назначениях:
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Значение целевой функции равно 33,5. Это решение совпадает с решением, полученным методом потенциалов.

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 10 |
111 |
|
|
Решение этой задачи можно получить в Mathcad® (см. рис. 10.3).
Рис. 10.3