
Karmazin_-_Teoria_Igr_Uchebnik / P11_3
.DOCТема 11. РЕШЕНИЕ ЗАДАЧИ О НАЗНАЧЕНИЯХ
Имеется
лиц с номерами
,
способных выполнить
работ с номерами
.
На выполнение
-й
работы
-м
лицом требуется
единиц времени. Как следует распределить
работы между людьми, чтобы минимизировать
суммарное время их выполнения.
Пусть
время участия
-го
человека в выполнении
-й
работы. Все величины
неотрицательны, и, поскольку каждый
человек должен быть полностью задействован,
а каждое задание полностью выполнено,
величина
должна удовлетворять следующим
ограничениям:
. (1)
(2)
При этих ограничениях надо минимизировать суммарное время выполнения всех работ
. (3)
Очевидно, что эта
задача соответствует частному случаю
транспортной задачи при
.
Так как все
и
целые, то опорное решение задачи состоит
из целочисленных значений
,
принимающих значения 0 или 1. Ранг системы
ограничений равен
,
а любое опорное решение задачи содержит
ровно
ненулевых компонент
.
Следовательно, все опорные планы задачи
о назначениях вырожденные.
Сведение задачи
о назначениях к транспортной задаче с
невырожденными опорными планами.
Вместо задачи
о назначениях рассмотрим транспортную
задачу с объемами предложений:
и объемами потребностей:
.
Все опорные планы такой транспортной
задачи будут невырожденными. Решив эту
транспортную задачу и положив затем
,
получим оптимальное решение задачи о
назначениях.
Пример 1.
Дана матрица
затрат времени работниками на выполнение
каждого из пяти заданий:
.
Оптимальное назначение работников на выполнение заданий можно найти, решив следующую транспортную задачу:
Таблица 1
|
1+ |
|
1+ |
|
1+ |
|
1+ |
|
1+ |
|
|
|
8 |
|
1 |
|
4 |
|
8 |
|
9 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
11 |
|
5 |
|
8 |
|
12 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
2 |
|
10 |
|
11 |
|
14 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
1 |
|
8 |
|
3 |
|
9 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
3 |
|
1 |
|
2 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
Методы решения транспортной задачи описаны в десятом разделе.
Существует ряд методов решения задачи о назначениях, учитывающих конкретный вид ограничений (1), (2). Метод Мака наиболее простой из них.
Метод Мака для
задачи о назначениях.
В каждой строке матрицы затрат ищем
минимальный элемент и подчеркиваем
его. Если в матрице существуют строки,
содержащие более одного минимального
элемента, то в первую очередь следует
подчеркивать минимальные элементы в
строках с одним минимальным элементом.
Затем в строках с несколькими минимальными
элементами стараемся расставить
подчеркивания так, чтобы в каждом столбце
находился только один подчеркнутый
элемент. Если удалось расставить
подчеркивания так, что в каждом столбце
присутствует ровно один подчеркнутый
элемент, то задача решена: полагаем
для подчеркнутых элементов, и
для остальных элементов - это и будет
оптимальный план назначений работников
на задания.
Шаг 1. Отмечаем знаком «+» столбцы, содержащие более одного подчеркнутого элемента.
Шаг 2. Просматриваем строки, содержащие подчеркнутые элементы в столбцах, отмеченных знаком «+», и вычисляем
,
где
подчеркнутый элемент
-й
строки, находящийся среди столбцов
отмеченных знаком «+», а
наименьший из элементов
-й
строки, находящихся в столбцах, не
отмеченных знаком «+». Пусть
.
Шаг 3.
Увеличиваем все элементы столбцов,
отмеченных знаком «+», на
.
Отмечаем штрихом элемент
.
Если таких элементов несколько, то
отмечаем все.
Шаг 4. Столбцы, содержащие подчеркнутый и штрихованный элементы, отмечаем знаком «+». Если есть столбец, содержащий только штрихованный элемент, то переходим к следующему шагу. В противном случае переходим к шагу 2.
Шаг 5.
В столбце, содержащем только штрихованный
элемент, подчеркиваем этот элемент и
убираем штрих. Это
новый подчеркнутый элемент. Находим
исходный подчеркнутый элемент в той же
строке, в которой находился штрихованный
элемент, и убираем подчеркивание.
Обозначим столбец, в котором находился
этот подчеркнутый элемент, через
.
Шаг 6.
Если
не содержит подчеркнутых элементов, то
он должен содержать штрихованный
элемент, возвращаемся в этом случае к
шагу 5.
Шаг 7. Если есть еще столбцы без подчеркнутых элементов, то убираем все пометки кроме подчеркиваний и переходим к шагу 1. Если в каждом столбце имеется подчеркнутый элемент, работа алгоритма закончена.
Пример 2.
Решим методом Мака задачу о назначениях
с матрицей затрат
из примера 1.
На предварительном этапе отыскиваем
минимальный элемент каждой строки и
подчеркиваем его. Результат этой операции
виден из табл.2. Есть столбцы, не содержащие
подчеркнутых элементов, поэтому переходим
к шагу 1: отмечаем знаком «+» столбцы 2 и
3. Шаг 2
находим
,
.
Шаг 3
увеличиваем на
элементы столбцов 2 и 3, отмечаем штрихом
элемент, равный 2, в 5-й строке.
Таблица 2. Шаги 1 и 2 Таблица 3. Шаг 3
На 4-м шаге видим,
что столбец 4 содержит только штрихованный
элемент
переходим к следующему шагу. Шаг 5
подчеркиваем штрихованный элемент в
4-м столбце и убираем подчеркивание
элемента 5-й строки и 4-го столбца. Шаг 6
4-й столбец ()
содержит подчеркнутый элемент, поэтому
переходим к следующему шагу. На 7-м шаге
видим, что в преобразованной таблице
столбцы 1 и 5 не содержат подчеркнутых
элементов, т.е. решение еще не найдено,
переходим к шагу 1.
В табл. 5 13 представлены результаты пошагового выполнения следующих двух итераций.
Таблица 4. Шаги 4-7 Таблица 5. Шаги 1 и 2
Таблица 6. Шаги 3,4,2 Таблица 7. Шаги 3,4,2
Таблица 8. Шаги 36 Таблица 9. Шаги 5,6
Таблица 10. Шаги 5-7 Таблица 11. Шаги 1,2
Таблица 12. Шаги 3,4,2 Таблица 13. Шаги 37
В результате получаем оптимальный план назначения работников на задания:
Время выполнения
работ составит:
.
Задание.
В задачах 11.1
11.104 для пяти работников и пяти видов
работ заданы матрицы
затрат на выполнение каждым работником
всех видов работ. Найти оптимальный
план назначений на работы.
11.1 C=
|
|
11.2 C=
|
||
11.3 C=
|
|
11.4 C=
|
||
11.5 C= |
|
11.6 C= |
11.7 C=
|
|
11.8 C=
|
11.9 C=
|
|
11.10 C=
|
11.11 C=
|
|
11.12 C=
|
11.13 C=
|
|
11.14 C=
|
11.15 C=
|
|
11.16 C=
|
11.17 C=
|
|
11.18 C=
|
11.19 C= |
|
11.20 C= |
11.21 C=
|
|
11.22 C=
|
11.23 C=
|
|
11.24 C=
|
11.25 C=
|
|
11.26 C=
|
11.27 C=
|
|
11.28 C=
|
11.29 C=
|
|
11.30 C=
|
11.31 C= |
|
11.32 C=
|
11.33 C= |
|
11.34 C= |
11.35 C=
|
|
11.36 C=
|
11.37 C=
|
|
11.38 C=
|
11.39 C=
|
|
11.40 C=
|
11.41 C=
|
|
11.42 C=
|
11.43 C=
|
|
11.44 C=
|
11.45 C= |
|
11.46 C=
|
11.47 C= |
|
11.48 C= |
11.49 C=
|
|
11.50 C=
|
11.51 C=
|
|
11.52 C=
|
11.53 C=
|
|
11.54 C=
|
11.55 C=
|
|
11.56 C=
|
11.57 C=
|
|
11.58 C=
|
11.59 C= |
|
11.60 C=
|
11.61 C= |
|
11.62 C= |
11.63 C=
|
|
11.64 C=
|
11.65 C=
|
|
11.66 C=
|
11.67 C=
|
|
11.68 C=
|
11.69 C=
|
|
11.70 C=
|
11.71 C=
|
|
11.72 C=
|
11.73 C= |
|
11.74 C=
|
11.75 C= |
|
11.76 C= |
11.77 C=
|
|
11.78 C=
|
11.79 C=
|
|
11.80 C=
|
11.81 C=
|
|
11.82 C=
|
11.83 C=
|
|
11.84 C=
|
11.85 C=
|
|
11.86 C=
|
11.87 C= |
|
11.88 C=
|
11.89 C= |
|
11.90 C= |
11.91 C=
|
|
11.92 C=
|
11.93 C=
|
|
11.94 C=
|
11.95 C=
|
|
11.96 C=
|
11.97 C=
|
|
11.98 C=
|
11.99 C=
|
|
11.100 C=
|
11.101 C= |
|
11.102 C=
|
11.103 C=. |
|
11.104 C=. |