Методы оптимальных решений. Часть 3. Задача о назначениях
.pdf11
+ |
+ |
(+) |
+ |
|
|
|
|
|
|
|
|
0* |
10 |
24 |
50 |
12 |
|
|
|
|
|
|
|
52 |
8 |
6 |
0* |
26 |
|
|
|
|
|
|
|
32 |
8 |
52 |
0 |
70 |
|
|
|
|
|
|
|
0 |
0* |
58 |
70 |
72 |
|
|
|
|
|
|
|
20 |
10 |
0* |
56 |
0' |
+ |
|
|
|
|
|
|
Среди элементов матрицы снова ищем невыделенный 0 , имея в виду, что элементы третьего столбца (за исключением 0* ) являются теперь невыделенными. Оказывается, что такого нуля нет, поэтому переходим к шагу 8.
8. Среди невыделенных элементов находим минимальный:
h min 24,6,52,58,12,26,70,72 6 . Добавляем h ко всем элементам выделенных
столбцов: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
+ |
|
+ |
|
|
|
|
|
|
|
|
|
|
6 |
16 |
24 |
56 |
12 |
|
|
|
|
|
|
|
|
|
58 |
14 |
6 |
6 |
26 |
|
|
|
|
|
|
|
|
|
38 |
14 |
52 |
6 |
70 |
|
|
|
|
|
|
|
|
|
6 |
6 |
58 |
76 |
72 |
|
|
|
|
|
|
|
|
|
26 |
16 |
0 |
62 |
0 |
+ |
|
|
|
|
|
|
|
Вычитаем h из всех элементов невыделенных строк:
+ |
+ |
|
+ |
|
|
|
|
|
|
|
|
0 |
10 |
18 |
50 |
6 |
|
|
|
|
|
|
|
52 |
8 |
0 |
0 |
20 |
|
|
|
|
|
|
|
32 |
8 |
46 |
0 |
64 |
|
|
|
|
|
|
|
0 |
0 |
52 |
70 |
66 |
|
|
|
|
|
|
|
26 |
16 |
0 |
62 |
0 |
+ |
|
|
|
|
|
|
12
Восстанавливаем все знаки выделения:
+ |
+ |
|
+ |
|
|
|
|
|
|
|
|
0* |
10 |
18 |
50 |
6 |
|
|
|
|
|
|
|
52 |
8 |
0 |
0* |
20 |
|
|
|
|
|
|
|
32 |
8 |
46 |
0 |
64 |
|
|
|
|
|
|
|
0 |
0* |
52 |
70 |
66 |
|
|
|
|
|
|
|
26 |
16 |
0* |
62 |
0′ |
+ |
|
|
|
|
|
|
Переходим к шагу 3 – находим невыделенный 0 . Это 0 , стоящий на пересечении второй строки и третьего столбца. Отмечаем его как 0 . В строке, содержащей этот 0 (третий столбец), есть 0* (четвертый столбец). Поэтому вторую строку помечаем знаком «+»,
знак выделения с четвертого столбца снимаем:
+ |
+ |
|
(+) |
|
|
|
|
|
|
|
|
0* |
10 |
18 |
50 |
6 |
|
|
|
|
|
|
|
52 |
8 |
0′ |
0* |
20 |
+ |
|
|
|
|
|
|
32 |
8 |
46 |
0 |
64 |
|
|
|
|
|
|
|
0 |
0* |
52 |
70 |
66 |
|
|
|
|
|
|
|
26 |
16 |
0* |
62 |
0′ |
+ |
|
|
|
|
|
|
Переходим к шагу 3. Ищем нуль среди невыделенных элементов, имея в виду, что четвертый столбец теперь невыделен. Это нуль, стоящий на пересечении третьей строки и четвертого столбца. Помечаем его как 0 :
+ |
+ |
|
|
|
|
|
|
|
|
|
|
0* |
10 |
18 |
50 |
6 |
|
|
|
|
|
|
|
52 |
8 |
0′ |
0* |
20 |
+ |
|
|
|
|
|
|
32 |
8 |
46 |
0′ |
64 |
|
|
|
|
|
|
|
0 |
0* |
52 |
70 |
66 |
|
|
|
|
|
|
|
26 |
16 |
0* |
62 |
0′ |
+ |
|
|
|
|
|
|
13
В строке у этого 0 нет 0* . Поэтому переходим к шагу 6 – строим L -цепочку. От последнего отмеченного 0 по четвертому столбцу к 0* . От 0* по второй строке к 0 . От
0 по третьему столбцу к 0* . От 0* по пятой строке к 0 . В столбце (пятом) у этого 0
нет 0* , поэтому построение цепочки закончено.
++
0* |
10 |
18 |
50 |
6 |
|
|
|
|
|
|
|
52 |
8 |
0′ |
0* |
20 |
+ |
|
|
|
|
|
|
32 |
8 |
46 |
0′ |
64 |
|
|
|
|
|
|
|
0 |
0* |
52 |
70 |
66 |
|
|
|
|
|
|
|
26 |
16 |
0* |
62 |
0′ |
+ |
Все 0* , вошедшие в цепочку, становятся просто нулями (без индексов). Все 0 ,
вошедшие в цепочку, меняем на 0* . Все 0* , не вошедшие в цепочку, остаются 0* . Все остальные знаки выделения снимаем:
|
|
|
|
|
0* |
10 |
18 |
50 |
6 |
|
|
|
|
|
52 |
8 |
0* |
0 |
20 |
|
|
|
|
|
32 |
8 |
46 |
0* |
64 |
|
|
|
|
|
0 |
0* |
52 |
70 |
66 |
|
|
|
|
|
26 |
16 |
0 |
62 |
0* |
|
|
|
|
|
Итерация закончена.
Новую итерацию начинаем с подсчета 0* . Их оказывается пять. Так как 5=5, то задача решена. Положение 0* (независимых нулей) определяет максимальный выбор:
с11,c42 ,c23,c34 ,c55 . Оптимальная эффективность:
L c11 c42 c23 c34 c55 57 20 54 69 76 276
14
6. Задачи для самостоятельного решения
Вариант 1
57 |
65 |
47 |
|
37 |
25 |
|
|
|
|
|
|
10 |
32 |
42 |
|
40 |
40 |
|
|
|
|
|
|
49 |
61 |
37 |
|
55 |
67 |
|
|
|
|
|
|
64 |
62 |
30 |
|
74 |
12 |
|
|
|
|
|
|
60 |
72 |
50 |
|
10 |
12 |
|
|
|
|
|
|
|
Вариант 2 |
|
|
||
|
|
|
|
|
|
35 |
0 |
74 |
|
55 |
64 |
|
|
|
|
|
|
37 |
18 |
30 |
|
15 |
0 |
|
|
|
|
|
|
57 |
18 |
42 |
|
63 |
62 |
|
|
|
|
|
|
55 |
0 |
10 |
|
65 |
60 |
|
|
|
|
|
|
47 |
60 |
60 |
|
59 |
54 |
|
|
|
|
|
|
|
Вариант 3 |
|
|
||
|
|
|
|
|
|
50 |
70 |
44 |
|
76 |
46 |
|
|
|
|
|
|
6 |
48 |
16 |
|
38 |
30 |
|
|
|
|
|
|
0 |
18 |
0 |
|
32 |
52 |
|
|
|
|
|
|
26 |
0 |
62 |
|
36 |
64 |
|
|
|
|
|
|
8 |
72 |
22 |
|
70 |
10 |
|
|
|
|
|
|
|
Вариант 4 |
|
|
||
|
|
|
|
|
|
64 |
62 |
30 |
|
74 |
12 |
|
|
|
|
|
|
0 |
22 |
32 |
|
30 |
30 |
|
|
|
|
|
|
62 |
70 |
52 |
|
42 |
30 |
|
|
|
|
|
|
60 |
72 |
50 |
|
10 |
12 |
|
|
|
|
|
|
54 |
66 |
42 |
|
60 |
72 |
|
|
|
|
|
|
15
Вариант 5
57 |
10 |
36 |
|
25 |
64 |
|
|
|
|
|
|
5 |
12 |
54 |
|
75 |
50 |
|
|
|
|
|
|
19 |
6 |
2 |
|
69 |
0 |
|
|
|
|
|
|
57 |
20 |
2 |
|
5 |
4 |
|
|
|
|
|
|
37 |
10 |
60 |
|
19 |
76 |
|
|
|
|
|
|
|
Вариант 6 |
|
|
||
|
|
|
|
|
|
50 |
22 |
10 |
|
4 |
66 |
|
|
|
|
|
|
7 |
57 |
35 |
|
5 |
9 |
|
|
|
|
|
|
36 |
52 |
20 |
|
20 |
64 |
|
|
|
|
|
|
59 |
5 |
27 |
|
75 |
55 |
|
|
|
|
|
|
2 |
14 |
16 |
|
64 |
0 |
|
|
|
|
|
|
|
Вариант 7 |
|
|
||
|
|
|
|
|
|
36 |
52 |
20 |
|
20 |
64 |
|
|
|
|
|
|
54 |
0 |
22 |
|
70 |
50 |
|
|
|
|
|
|
2 |
14 |
16 |
|
64 |
0 |
|
|
|
|
|
|
2 |
52 |
30 |
|
0 |
4 |
|
|
|
|
|
|
60 |
32 |
20 |
|
14 |
76 |
|
|
|
|
|
|
|
Вариант 8 |
|
|
||
|
|
|
|
|
|
31 |
47 |
15 |
|
15 |
59 |
|
|
|
|
|
|
55 |
27 |
15 |
|
9 |
4 |
|
|
|
|
|
|
54 |
0 |
22 |
|
70 |
50 |
|
|
|
|
|
|
12 |
24 |
26 |
|
74 |
10 |
|
|
|
|
|
|
2 |
52 |
30 |
|
0 |
71 |
|
|
|
|
|
|
16
Вариант 9
59 |
45 |
37 |
19 |
25 |
|
|
|
|
|
9 |
31 |
19 |
35 |
57 |
|
|
|
|
|
44 |
40 |
30 |
6 |
62 |
|
|
|
|
|
60 |
24 |
42 |
30 |
70 |
|
|
|
|
|
74 |
60 |
52 |
34 |
40 |
|
|
|
|
|
|
Вариант 10 |
|
||
|
|
|
|
|
44 |
40 |
30 |
6 |
62 |
|
|
|
|
|
60 |
24 |
42 |
30 |
70 |
|
|
|
|
|
64 |
24 |
42 |
24 |
30 |
|
|
|
|
|
66 |
4 |
60 |
72 |
0 |
|
|
|
|
|
14 |
36 |
24 |
40 |
62 |
|
|
|
|
|
Ответы
Вар. 1 |
c |
, c |
|
|
, c |
, c |
44 |
, c |
L* 312 |
|||||||
|
11 |
|
|
23 |
|
35 |
|
|
|
|
52 |
|
|
|||
Вар. 2 |
c |
,c |
21 |
,c |
,c |
44 |
,c |
|
L* 298 |
|||||||
|
13 |
|
|
|
35 |
|
|
|
52 |
|
|
|||||
Вар. 3 |
c |
,c |
22 |
,c |
,c |
43 |
,c |
|
L* 282 |
|||||||
|
11 |
|
|
|
35 |
|
|
|
54 |
|
|
|||||
Вар. 4 |
c |
, c |
|
, c |
, c |
42 |
, c |
L* 312 |
||||||||
|
14 |
|
|
23 |
|
31 |
|
|
|
|
55 |
|
|
|||
Вар. 5 |
c |
,c |
23 |
,c |
,c |
42 |
,c |
55 |
L* 276 |
|||||||
|
11 |
|
|
|
34 |
|
|
|
|
|
|
|||||
Вар. 6 |
c |
,c |
23 |
,c |
,c |
41 |
,c |
|
L* 276 |
|||||||
|
15 |
|
|
|
32 |
|
|
|
54 |
|
|
|||||
Вар. 7 |
c |
,c |
21 |
,c |
,c |
43 |
,c |
55 |
L* 276 |
|||||||
|
12 |
|
|
|
34 |
|
|
|
|
|
|
|||||
Вар. 8 |
c |
,c |
21 |
,c |
,c |
44 |
,c |
55 |
L* 269 |
|||||||
|
12 |
|
|
|
33 |
|
|
|
|
|
|
|||||
|
c |
|
, c |
|
, c |
|
, c |
|
, c |
|
L* 269 |
|||||
|
12 |
|
|
21 |
34 |
|
|
43 |
|
55 |
|
|||||
Вар. 9 |
c |
, c |
|
|
, c |
, c |
|
, c |
L* 258 |
|||||||
|
11 |
|
|
24 |
|
35 |
|
|
43 |
|
|
52 |
|
|
||
|
c |
|
,c |
24 |
,c |
|
,c |
43 |
,c |
|
L* 258 |
|||||
|
12 |
|
|
35 |
|
|
|
51 |
|
|||||||
Вар. 10 c12 ,c23 ,c31,c44 ,c55 L* 280
17
Литература
1. Исследование операций в экономике: Учебн. пособие для вузов/ Н. Ш. Кремер, Б, А.
Путко, И. М. Тришин, М. Н. Фридман; Под ред. Н. Ш. Кремера. – М.: Банки и биржи,
ЮНИТИ, 1999. – 407 с.
2. Фролькис В. А. Введение в теорию и методы оптимизации для экономистов. – СПб:
Питер, 2002. – 320 с.
3.Методы оптимизации в примерах и задачах: Учебн. пособие/ Пантелеев А. В., Летова Т. А. – М.: Высш. шк., 2002. – 544 с.
4.Волков И.К., Загоруйко Е.А. Исследование операций: Учеб. для вузов/ Под ред. В. С.
Зарубина, А. П. Крищенко.. – М.: Изд-во МГТУ им. Н. Э. Баумана, 2000. – 436 с.
5.Harold W. Kuhn, «The Hungarian Method for the assignment problem», Naval Research Logistics Quarterly, 2:83—97, 1955. Kuhn’s original publication.
6.Harold W. Kuhn, «Variants of the Hungarian method for assignment problems», Naval Research Logistics Quarterly, 3: 253—258, 1956.
7.R.E. Burkard, M. Dell’Amico, S. Martello: Assignment Problems. SIAM, Philadelphia (PA.) 2009. ISBN 978-0-89871-663-4
8.e-maxx.ru/algo/assignment_hungary
