Top.Mail.Ru

Задача об оптимальном назначении решается при помощи метода венгерского алгоритма.

Шаги решения задачи:
1. Составляем матрицу эффективности назначений.
2. Находим минимальный элемент в каждом столбце и вычитаем его из всех элементов столбца.
3. Выполняем те же операции для каждой строки: находим минимальный элемент в каждой строке и вычитаем его из всех элементов строки.
4. Построим минимальное количество горизонтальных или вертикальных линий, чтобы покрыть все нулевые элементы. Если количество линий равно размеру матрицы, то получено оптимальное назначение.
5. Если это не так, находим наименьший ненулевой элемент и вычитаем его из всех ненулевых элементов, а прибавляем его к пересечению линий. Затем возвращаемся к Шагу 4.
6. Построив оптимальное назначение, суммируем все элементы матрицы эффективности, находящиеся на пересечении линий. Это будет оптимальное значение задачи.

Применяя алгоритм Венгерского к данной матрице эффективности, получаем следующее оптимальное назначение и его эффективность:

[
begin{pmatrix}
0 & 0 & 2 & 0 & 0 & 2 & 0 & 4 & 0
2 & 1 & 0 & 1 & 0 & 0 & 3 & 0 & 0
0 & 1 & 0 & 0 & 0 & 3 & 0 & 0 & 2
7 & 0 & 1 & 0 & 0 & 0 & 0 & 2 & 0
0 & 0 & 1 & 1 & 0 & 0 & 4 & 0 & 1
end{pmatrix}
]

В данном назначении сумма элементов на пересечении линий равна 12, что является оптимальным значением задачи об оптимальном назначении для данной матрицы эффективности.

   
[metform form_id="1136"]