Составить математическую модель и найти оптимальный план назначенный в задаче о назначениях, заданной таблицей. Прибыль от назначения i-кандидата на j-должность
Должности
J=1 J=2 J=3
i=1 3 7 5
i=2 2 4 4
I=3 4 7 2
Решение
Составим математическую модель задачи.
Введем переменные – факт назначения -го исполнителя на -ую работу (, если назначается и , если не назначается).
Цель задачи – максимальная прибыль при назначении исполнителей на работы, следовательно, целевая функция будет иметь вид:
Система ограничений задачи:
Решим задачу венгерским методом
Умножаем всех элементов на (-1) и затем сложением их с максимальным элементом матрицы (7) так, чтобы матрица не содержала бы отрицательных элементов:
4 0 2
5 3 3
3 0 5
Во вновь полученной матрице в каждой строке будет как минимум один ноль.
4 0 2 0
2 0 0 3
3 0 5 0
Затем такую же операцию проводим по столбцам, для чего в каждом столбце находим минимальный элемент.
2 0 2
0 0 0
1 0 5
2 0 0
После проводим поиск допустимого решения, для которого все назначения имеют нулевую стоимость. Фиксируем нулевое значение в клетке (1, 2)
. Другие нули в строке 1 и столбце 2 вычеркиваем. Для данной клетки вычеркиваем нули в клетках (2; 1). Фиксируем нулевое значение в клетке (2, 3). Другие нули в строке 2 и столбце 3 вычеркиваем. Для данной клетки вычеркиваем нули в клетках (2; 1).
2 [0] 2
[-0-] [-0-] [0]
1 [-0-] 5
Поскольку расположение нулевых элементов в матрице не позволяет образовать систему из 3-х независимых нулей (в матрице их только 2), то решение недопустимое. Вычеркиваем строки и столбцы с возможно большим количеством нулевых элементов: строку 2, столбец 2
2 0 2
0 0 0
1 0 5
Минимальный элемент сокращенной матрицы (min(2, 2, 1, 5) = 1) вычитаем из всех ее элементов:
1 0 1
0 0 0
0 0 4
Затем складываем минимальный элемент с элементами, расположенными на пересечениях вычеркнутых строк и столбцов:
1 0 1
0 1 0
0 0 4
В связи с этим во вновь полученной матрице в каждой строке будет как минимум один ноль. Затем такую же операцию проводим по столбцам, для чего в каждом столбце находим минимальный элемент. После поиск допустимого решения, для которого все назначения имеют нулевую стоимость. Фиксируем нулевое значение в клетке (1, 2)