- •4. Задача о назначениях
- •4.1. Общие сведения
- •4.2. Венгерский метод. Минимизация
- •4.2.2. Венгерский метод. Минимизация. Алгоритм решения.
- •4.2.3. Пример решения задачи о назначении венгерским методом.
- •4.3. Венгерский метод. Максимизация
- •4.3.1. Постановка задачи
- •4.3.2. Алгоритм венгерского метода №1
- •4.3.2.1. Пример решения задачи о назначении венгерским методом.
- •4.3.3. Алгоритм венгерского метода №2
- •4.3.4. Пример решения задачи о назначении венгерскими методами №1 и №2
- •4.4. Метод Мака
- •4.4.1. Алгоритм метода Мака
- •4.4.2. Пример решения задачи о назначении методом Мака.
- •Оглавление
4.2.2. Венгерский метод. Минимизация. Алгоритм решения.
В исходной матрице стоимостей определить в каждой строке минимальную стоимость и отнять ее от всех элементов строки.
В полученной матрице найти в каждом столбце минимальную стоимость и отнять ее от всех элементов столбца.
Если допустимое решение получено, то
Оптимальные назначения соответствуют нулевым элементам. Завершить работу.
Иначе:
В последней матрице провести минимальное число горизонтальных и вертикальных прямых, чтобы вычеркнуть все нулевые элементы.
Найти наименьший невычеркнутый элемент и вычесть его из всех невычеркнутых элементов и прибавить к элементам, стоящим на пересечении проведенных прямых.
Если допустимое решение получено, то оптимальные назначения соответствуют нулевым элементам. Завершить работу. Иначе перейти к 2.
4.2.3. Пример решения задачи о назначении венгерским методом.
Пример 1.Данные для задачи представлены в таблице:
-
Работы
Работники
1
2
3
4
1
1
4
6
3
2
9
7
10
9
3
4
5
11
7
4
8
7
8
5
Исходная задача о назначении работников на работы
-
Работы
Работники
1
2
3
4
1
1
4
6
3
2
9
7
10
9
3
4
5
11
7
4
8
7
8
5
Находим в каждой строке минимальную стоимость
-
Работы
Работники
1
2
3
4
1
0
3
5
2
2
2
0
3
2
3
0
1
7
3
4
3
2
3
0
Отняли ее от всех элементов строк
Работы
Работники
1
2
3
4
1
0
3
5
2
2
2
0
3
2
3
0
1
7
3
4
3
2
3
0
Находим в каждом столбце минимальную стоимость
-
Работы
Работники
1
2
3
4
1
0
3
2
2
2
2
0
0
2
3
0
1
4
3
4
3
2
0
0
Вычитаем из всех элементов соответствующих столбцов (реально – только из третьего).
Допустимое решение не получено. Назначив 1-го работника на работу 1 мы лишаем возможности получить работу 3-го работника
-
Работы
Работники
1
2
3
4
1
0
3
2
2
2
2
0
0
2
3
0
1
4
3
4
3
2
0
0
Вычеркиваем все нулевые элементы с помощью наименьшего числа горизонтальных и вертикальных линий
-
Работы
Работники
1
2
3
4
1
0
3
2
2
2
2
0
0
2
3
0
1
4
3
4
3
2
0
0
Находим наименьший невычеркнутый элемент
-
Работы
Работники
1
2
3
4
1
0
2
1
1
2
2
0
0
2
3
0
0
3
2
4
3
2
0
0
Вычитаем его (1) из всех невычеркнутых элементов
-
Работы
Работники
1
2
3
4
1
0
2
1
1
2
3
0
0
2
3
0
0
3
2
4
4
2
0
0
Прибавляем его (1) к элементам на пересечении линий
-
Работы
Работники
1
2
3
4
1
0
2
1
1
2
3
0
0
2
3
0
0
3
2
4
4
2
0
0
Получаем допустимое решение: сначала безальтернативные назначения
-
Работы
Работники
1
2
3
4
1
0
2
1
1
2
3
0
0
2
3
0
0
3
2
4
4
2
0
0
Получаем допустимое решение
