- •1.3.1 Правила и особенности перехода к двойственной задаче.
- •2.6. Использование искусственной переменной в программировании симплекс-методом.
- •2.7.3.Алгоритм модифицированного симплекс-метода.
- •4.2.3. Пример решения задачи о назначении венгерским методом.
- •4.3.2.1. Пример решения задачи о назначении венгерским методом.
- •4.4.1. Алгоритм метода Мака
- •4.4.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 |
|
||
|
Получаем допустимое решение |
|
Максимизация