Метод Фогеля_Басалай.ppt
- Количество слайдов: 12
Решение транспортных задач методом аппроксимации Фогеля.
Транспортная задача (задача Монжа — Канторовича) — математическая задача линейного программирования специального вида о поиске оптимального распределения однородных объектов из аккумулятора к приемникам с минимизацией затрат на перемещение. Для простоты понимания рассматривается как задача об оптимальном плане перевозок грузов из пунктов отправления в пункты потребления, с минимальными затратами на перевозки. Когда суммарный объём предложений (грузов, имеющихся в пунктах отправления) не равен общему объёму спроса на товары (грузы), запрашиваемые пунктами потребления, транспортная задача называется несбалансированной.
Условия задачи: A 1=200 B 1=500 A 2=400 B 2=100 A 3=250 B 3=200 A 4=150 B 4=200 A 1 A 2 A 3 A 4 B 1 9 28 7 6 B 2 23 16 15 4 B 3 21 5 4 21 B 4 19 7 5 3 Требуется найти оптимальное решение доставки продукции от поставщиков к потребителям, минизирующее стоимость доставки. Для разрешимости транспортной задачи необходимо, чтобы суммарные запасы продукции у поставщиков равнялись суммарной потребности потребителей. Проверим это условие. A 1+A 2+A 3+A 4=200+400+250+150=1000 B 1+B 2+B 3+B 4=500+100+200=1000 В нашем случае, потребность всех потребителей - 1000 единиц продукции равна запасам всех поставщиков. В противном случае, надо ввести фиктивный склад или фиктивного поставщика с тарифом доставки равным 0.
Суть метода Фогеля: Для каждого определенного условия создается таблица в которой: 1) По строкам и столбцам определяется разность между двумя наименьшими тарифами. Среди указанных разностей выбирают максимальную 2) Далее в строке (столбце) с наибольшей разностью заполняется клетка с наименьшим тарифом. 3) Если минимальный тариф одинаков для нескольких клеток данной строки (столбца), то для заполнения выбирают ту клетку, которая расположена в строке (столбце), соответствующем наибольшей разности между двумя минимальными тарифами, находящимися в данной строке (столбце). 4) Строки (столбцы) с нулевым остатком груза в дальнейшем в расчет не принимаются. На каждом этапе загружается только одна клетка.
Согласно условию задачи составим таблицу. (тарифы располагаются в нижних правых углах ячеек) Потребитель Поставщик A 1 B 2 - - - 28 A 3 - A 4 - 500 - - 250 5 21 200 400 7 4 4 100 - - - 200 19 5 15 6 Потребность - 7 21 16 Запас B 4 23 9 A 2 B 3 150 3 200
В каждой строке, найдем разность между двумя ячейками (доступными для выбора) с наименьшими тарифами. Потребитель Поставщик A 1 B 2 - - 9 A 2 - - 7 A 4 - - 6 - - - 7 - 4 19 5 15 10 21 16 Разность (строки) B 4 23 28 A 3 B 3 5 - 21 3 2 1 1
Аналогично в каждом столбце, найдем разность между двумя ячейками (доступными для выбора) с наименьшими тарифами. Потребитель Поставщик A 1 B 2 - - - 28 A 3 - A 4 - Разность (столбцы) 7 6 1 21 - - 11 15 4 10 - 5 16 - B 4 23 9 A 2 B 3 Разность (строки) - 4 - 19 2 7 - 5 - 3 21 1 2 1 1
o Почему? Стоимость доставки единицы продукции от поставщика A 4 к потребителю B 2, как минимум, на 11 усл. ед. меньше чем от остальных поставщиков к потребителю B 2.
Запасы поставщика A 4 составляют 150 единиц продукции. Потребность потребителя B 2 составляет 100 единиц продукции. От поставщика A 4 к потребителю B 2 будем доставлять min = { 150 , 100 } = 100 единиц продукции. Разместим в ячейку A 4 B 2 значение равное 100. Мы полностью удовлетворили потребность потребителя B 2. Вычеркиваем столбец 2 таблицы, т. е исключаем его из дальнейшего рассмотрения. Потребитель Поставщик A 1 B 2 - - - 28 A 3 - A 4 500 - - 250 5 21 200 400 7 4 4 100 - - 100 - 200 19 5 15 6 Потребность - 7 21 16 Запас B 4 23 9 A 2 B 3 150 3 200
Повторяем все те же действия аналогично не затрагивая вычеркнутые столбцы (строки). В итоге получим следующее: Потребитель Поставщик A 1 B 2 200 - 50 28 A 3 250 A 4 - 6 Потребность 500 - 250 5 50 21 200 400 7 4 4 100 19 5 15 200 - 100 - 21 16 7 - 150 - Запас B 4 23 9 A 2 B 3 150 3 200
Итог: Заполненные нами ячейки будем называть базисными, остальные - свободными. Для решения задачи методом потенциалов, количество базисных ячеек (задействованных маршрутов) должно равняться m + n - 1, где m - количество строк в таблице, n - количество столбцов в таблице. Количество базисных ячеек (задействованных маршрутов) равно 7, что и требовалось. Мы нашли начальное решение, т. е израсходовали все запасы поставщиков и удовлетворили все потребности потребителей. S 0 = 9 * 200 + 28 * 50 + 5 * 200 + 7 * 150 + 7 * 250 + 4 * 100 + 3 * 50 = 7550 усл. ед. Общие затраты на доставку всей продукции, для начального решения , составляют 7550 ден. ед. Как правило, применение метода аппроксимации Фогеля позволяет получить либо опорный план, близкий к оптимальному, либо сам оптимальный план. В нашем случае, решив задачу дальше методом потенциалов получим ответ равные 6650 усл. ед.
Оптимальный план решения задачи: Потребитель Поставщик A 1 B 2 200 - 28 A 3 250 A 4 - 50 500 - - 250 5 21 200 400 7 4 4 100 200 - 100 200 19 5 15 6 Потребность 21 16 7 - 200 - Запас B 4 23 9 A 2 B 3 150 3 200


