
- •4.3. Методы решения транспортной задачи
- •Постановка транспортной задачи линейного программирования
- •Алгоритм метода северо-западного угла
- •Алгоритм метода наименьшей стоимости
- •Алгоритм метода Фогеля
- •Данный метод последовательно улучшает план перевозок и состоит в том, что
- •Понятие модели назначения. Разновидности моделей назначения.
- •Постановка задачи о назначениях
- •Разновидности моделей назначения [8]
- •Алгоритм венгерского метода решения задач о назначениях [8]
Алгоритм метода Фогеля
Шаг 1. Для каждой строки (столбца), которой соответствует строго положительное значение предложения (спроса), вычисляется штраф путем вычитания наименьшей стоимости из следующей по величине стоимости в данной строке (столбце).
Шаг 2. Выделяется строка или столбец с наибольшим штрафом. Если таковых несколько, то выбор произволен. Из выделенной строки или столбца выбирается переменная, которой соответствует минимальная стоимость, и ей присваивается наибольшее значение, позволяемое ограничениями. Затем в соответствии с присвоенным значением переменной корректируются величины оставшегося неудовлетворенным спроса и нереализованного предложения. Строка (или столбец), соответствующая выполненному ограничению, вычеркивается из таблицы. Если одновременно выполняются ограничения и по спросу, и по предложению, вычеркивается только строка или только столбец, причем оставшейся строке (столбцу) приписывается нулевое предложение (спрос).
Шаг 3.
a) Если не вычеркнута только одна строка или только один столбец с нулевым спросом или предложением, вычисления заканчиваются.
b) Если не вычеркнута только одна строка (столбец) с положительным предложением (спросом), в этой строке (столбце) методом наименьшей стоимости находятся базисные переменные, и вычисления заканчиваются.
c) Если всем не вычеркнутым строкам и столбцам соответствуют нулевые объемы предложения и спроса, методом наименьшей стоимости находятся нулевые базисные переменные, и вычисления заканчиваются.
d) Во всех остальных случаях необходимо перейти к шагу 1.
Пример 4. Заполним транспортную таблицу из примера 2 методом Фогеля.
П ПО |
B1 |
B2 |
B3 |
Запасы ai |
Оставшиеся запасы |
Штрафы |
A1 |
1 7 |
2
|
6
|
7 |
7/7/0 |
1/1/1 |
A2 |
0 2 |
4
|
2 10 |
12 |
2/0 |
2/4 |
A3 |
3 1 |
1 10 |
5
|
11 |
11/11/11/10/0 |
2/2/2/2/4 |
Заявки bj |
10 |
10 |
10 |
30 |
|
|
Не выполненные заявки |
10/8/1/0 |
10/10/10/10/0 |
0 |
|
|
|
Штрафы |
1/1/2/0 |
1/1/1/1/1 |
3 |
|
|
|
Стоимость перевозок С = 7 + 0 + 3 + 10 + 20 = 40.
Однако, заполняя начальную транспортную таблицу, можно получить вырожденный план, в котором количество ненулевых перевозок меньше, чем m + n - 1. В этом случае следует заполнить одну недостающую базисную клетку малой искусственной величиной , увеличивая и уменьшая запасы и заявки в соответствующих строках и столбцах на эту величину и пересчитывая значения перевозок в других базисных клетках транспортной таблицы.
Пример 5. Заполним транспортную таблицу в соответствии с методом северо-западного угла, не обращая внимания на стоимость ячеек.
П ПО |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы ai |
A1 |
10 |
10 |
|
|
|
20 |
A2 |
|
|
20 |
10 |
|
30 |
A3 |
|
|
|
25 |
|
25 |
A4 |
|
|
|
|
20 |
20 |
Заявки bj |
10 |
10 |
20 |
35 |
20 |
95 |
В данном примере
заполнено 6 базисных клеток, хотя их
должно быть
5+4-1=8.
Поскольку не заполнено две базисные клетки увеличим на запасы в каждом из двух пунктов отправления (пусть это будет пункт A1 и A3) и, для того чтобы сохранить баланс уменьшим на 2 запасы в другом пункте отправления (пусть это будет пункт A4). Затем для новой транспортной таблицы построим опорный план методом северо-западного угла.
П ПО |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы ai |
A1 |
10 |
10 |
|
|
|
20+ |
A2 |
|
|
20- |
10+ |
|
30 |
A3 |
|
|
|
25- |
2 |
25+ |
A4 |
|
|
|
|
20-2 |
20-2 |
Заявки bj |
10 |
10 |
20 |
35 |
20 |
95 |
Теперь в транспортной
таблице содержится столько базисных
переменных, сколько требуется
5+4-1=8.
В дальнейшем, после оптимизации плана, можно будет положить =0.
Распределительный метод решения транспортной задачи
линейного программирования [8, 19]