
11.5.1.3 Наближений метод Фогеля (нмф)
Цей метод є евристичним і зазвичай приводить до кращого початкового розв’язку, ніж два описаних вище. Насправді НМФ часто дає оптимальний або близький до оптимального початковий розв’язок. Алгоритм складається з наступних кроків.
Крок 1. Обчислити штраф для кожного рядка (стовпця), віднімаючи найменший елемент цього рядка (стовпця) з наступного за ним по величині елементу того ж рядка (стовпця).
Крок 2. Вибрати рядок або стовпець з найбільшим штрафом, а якщо таких декілька, вибрати серед них будь-який рядок або будь-який стовпець. У відміченому рядку або стовпці вибрати змінну з найнижчою вартістю і надати їй найбільше можливе значення. Скоректувати обсяг виробництва і попит і викреслити рядок або стовпець, відповідні виконаному обмеженню. Якщо обмеження по рядку або стовпцю виконуються одночасно, то викреслити або рядок, або стовпець, а стовпцю (рядку), що залишився, приписати нульовий попит (обсяг виробництва). Рядок (або стовпець) з нульовим обсягом виробництва (або попиту) не враховуються в подальших обчисленнях (на кроці 3).
Крок 3.
(А) Якщо невикресленим залишається тільки один рядок і тільки один стовпець (одна клітина) – надати відповідній змінній значення попиту (=обсягу виробництва), закінчити обчислення.
(Б) Якщо залишається невикресленим тільки один рядок (стовпець) з ненульовим обсягом виробництва (попитом), знайти базисні змінні в цьому рядку (стовпці), використовуючи метод найменшої вартості.
(В) Якщо всім невикресленим рядкам і стовпцям відповідають нульові обсяги виробництва і величини попиту, знайти нульові базисні змінні, використовуючи метод найменшої вартості.
(Г) У інших випадках обчислити нові значення штрафів для невикреслених рядків і стовпців і перейти до кроку 2. (Відзначимо, що рядки і стовпці з нульовими значеннями обсягу виробництва і попиту не повинні використовуватися при обчисленні цих штрафів).
Приклад розв'язку задачі НМФ.
Розглянемо ТЗЛП, для якої знайдемо ДБР НМФ.
Ітерація 0 (Умова)
|
11 |
|
3 |
|
6 |
|
9 |
15 |
3 |
|
|
|
|
|
|
|
|
||
|
9 |
|
10 |
|
12 |
|
2 |
25 |
7 |
|
|
|
|
|
|
|
|
||
|
10 |
|
7 |
|
1 |
|
6 |
5 |
5 |
|
|
|
|
|
|
|
|
||
|
7 |
|
11 |
|
3 |
|
23 |
10 |
4 |
|
|
|
|
|
|
|
|
||
15 |
10 |
15 |
15 |
|
|
||||
2 |
4 |
2 |
4 |
|
Штраф |
Ітерація 1
|
11 |
|
3 |
|
6 |
|
9 |
15 |
3 |
|
|
|
|
|
|
|
|
||
|
9 |
|
10 |
|
12 |
|
2 |
|
1 |
|
|
|
|
|
|
15 |
|
||
|
10 |
|
7 |
|
1 |
|
6 |
5 |
6 |
|
|
|
|
|
|
|
|
||
|
7 |
|
11 |
|
3 |
|
23 |
10 |
4 |
|
|
|
|
|
|
|
|
||
15 |
10 |
15 |
-- |
|
|
||||
2 |
4 |
2 |
- |
|
Штрафи |
Ітерація 2
|
11 |
|
3 |
|
6 |
|
9 |
15 |
3 |
|
|
|
|
|
|
|
|
||
|
9 |
|
10 |
|
12 |
|
2 |
|
1 |
|
|
|
|
|
|
15 |
|
||
|
10 |
|
7 |
|
1 |
|
6 |
|
-- |
|
|
|
|
5 |
|
|
|
||
|
7 |
|
11 |
|
3 |
|
23 |
10 |
4 |
|
|
|
|
|
|
|
|
||
15 |
10 |
10 |
-- |
|
|
||||
2 |
7 |
3 |
-- |
|
Штрафи |
Ітерація 3
|
11 |
|
3 |
|
6 |
|
9 |
|
5 |
|
|
10 |
|
|
|
|
|
||
|
9 |
|
10 |
|
12 |
|
2 |
|
3 |
|
|
|
|
|
|
15 |
|
||
|
10 |
|
7 |
|
1 |
|
6 |
|
-- |
|
|
|
|
5 |
|
|
|
||
|
7 |
|
11 |
|
3 |
|
23 |
10 |
4 |
|
|
|
|
|
|
|
|
||
15 |
|
10 |
-- |
|
|
||||
2 |
-- |
3 |
-- |
|
Штрафи |
Ітерація 4
|
11 |
|
3 |
|
6 |
|
9 |
|
-- |
|
|
10 |
|
5 |
|
|
|
||
|
9 |
|
10 |
|
12 |
|
2 |
|
3 |
|
|
|
|
|
|
15 |
|
||
|
10 |
|
7 |
|
1 |
|
6 |
|
-- |
|
|
|
|
5 |
|
|
|
||
|
7 |
|
11 |
|
3 |
|
23 |
10 |
4 |
|
|
|
|
|
|
|
|
||
15 |
|
5 |
|
|
|
||||
2 |
-- |
9 |
-- |
|
Штрафи |
Ітерація 5
|
11 |
|
3 |
|
6 |
|
9 |
|
- |
|
|
10 |
|
5 |
|
|
|
||
|
9 |
|
10 |
|
12 |
|
2 |
|
- |
|
|
|
|
|
|
15 |
|
||
|
10 |
|
7 |
|
1 |
|
6 |
|
- |
|
|
|
|
5 |
|
|
|
||
|
7 |
|
11 |
|
3 |
|
23 |
|
- |
|
|
|
|
5 |
|
|
|
||
15 |
|
|
|
|
|
||||
2 |
- |
- |
- |
|
Штрафи |
Ітерація 6
Залишається невикресленим тільки один стовпець з ненульовим попитом, знайдемо базисні змінні в цьому стовпці, використовуючи метод найменшої вартості.
|
11 |
|
3 |
|
6 |
|
9 |
|
|
|
10 |
|
5 |
|
|
|
|
|
9 |
|
10 |
|
12 |
|
2 |
|
|
|
|
|
5 |
|
15 |
|
|
|
10 |
|
7 |
|
1 |
|
6 |
|
|
|
|
|
5 |
|
|
|
|
|
7 |
|
11 |
|
3 |
|
23 |
|
5 |
|
|
|
5 |
|
|
|
|
10 |
|
|
|
|
Ітерація 7
Невикресленим залишається тільки одна клітина – надамо відповідній змінній значення попиту (=обсягу виробництва), та закінчимо обчислення.
|
11 |
|
3 |
|
6 |
|
9 |
|
|
|
10 |
|
5 |
|
|
|
|
|
9 |
|
10 |
|
12 |
|
2 |
|
10 |
|
|
|
|
|
15 |
|
|
|
10 |
|
7 |
|
1 |
|
6 |
|
|
|
|
|
5 |
|
|
|
|
|
7 |
|
11 |
|
3 |
|
23 |
|
5 |
|
|
|
5 |
|
|
|
|
|
|
|
|
|