Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория графов. Лекция 10

.pdf
Скачиваний:
0
Добавлен:
15.03.2025
Размер:
545.58 Кб
Скачать

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 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

 

 

X (xij )

Иванова А.П. ТЕОРИЯ ГРАФОВ. Лекция 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