Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
国考题答案2013.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.39 Mб
Скачать

Вопрос 10. Модель транспортной задачи линейного программирования

Транспортная задача (задача Монжа — Канторовича) — математическая задача линейного программирования специального вида о поиске оптимального распределения однородных объектов из аккумулятора к приемникам с минимизацией затрат на перемещение. Для простоты понимания рассматривается как задача об оптимальном плане перевозок грузов из пунктов отправления в пункты потребления, с минимальными затратами на перевозки. Транспортная задача является по теории сложности вычислений NP-сложной и входит в класс сложности NP. Когда суммарный объём предложений (грузов, имеющихся в пунктах отправления) не равен общему объёму спроса на товары (грузы), запрашиваемые пунктами потребления, транспортная задача называется несбалансированной (открытой).

Постановка задачи

Транспортная задача (классическая) — задача об оптимальном плане перевозок однородного продукта из однородных пунктов наличия в однородные пункты потребления на однородных транспортных средствах (предопределённом количестве) со статичными данными и линеарном подходе (это основные условия задачи).

Для классической транспортной задачи выделяют два типа задач: критерий стоимости (достижение минимума затрат на перевозку) или расстояний и критерий времени (затрачивается минимум времени на перевозку). Под названием транспортная задача, определяется широкий круг задач с единой математической моделью, эти задачи относятся к задачам линейного программирования и могут быть решены оптимальным методом. Однако, спец.метод решения транспортной задачи позволяет существенно упростить её решение, поскольку транспортная задача разрабатывалась для минимизации стоимости перевозок.

История поиска методов решения

Проблема была впервые формализована французским математиком Гаспаром Монжем в 1781 году[3]. Основное продвижение было сделано на полях во время Великой Отечественной войны советским математиком и экономистом Леонидом Канторовичем[4]. Поэтому иногда эта проблема называется транспортной задачей Монжа — Канторовича.

Методы решения

Классическую транспортную задачу можно решить симплекс-методом, но в силу ряда особенностей её можно решить проще (для задач малой размерности).

Условия задачи располагают в таблице, вписывая в ячейки количество перевозимого груза из в груза , а в маленькие клетки — соответствующие тарифы .

Итерационное улучшение плана перевозок

Нахождение опорного плана

Требуется определить опорный план и путём последовательных операций найти оптимальное решение. Опорный план можно найти следующими методами: «северо-западного угла», «наименьшего элемента», двойного предпочтения и аппроксимации Фогеля.

Метод северо-западного угла (диагональный)

На каждом этапе максимально возможным числом заполняют левую верхнюю клетку оставшейся части таблицы. Заполнение таким образом, что полностью выносится груз из или полностью удовлетворяется потребность .

Метод наименьшего элемента

Одним из способов решения задачи является метод минимального (наименьшего) элемента. Его суть заключается в сведении к минимуму побочных перераспределений товаров между потребителями.

Алгоритм:

Из таблицы стоимостей выбирают наименьшую стоимость и в клетку, которая ей соответствует, вписывают большее из чисел.

Проверяются строки поставщиков на наличии строки с израсходованными запасами и столбцы потребителей на наличие столбца, потребности которого полностью удовлетворены. Такие столбцы и строки далее не рассматриваются.

Если не все потребители удовлетворены и не все поставщики израсходовали товары, возврат к п. 1, в противном случае задача решена.

Итерации

После нахождения опорного плана перевозок, нужно применить один из алгоритмов его улучшения, приближения к оптимальному.

Метод падающего камня. Метод потенциалов.

Решение с помощью теории графов

Рассматривается двудольный граф, в котором пункты производства находятся в верхней доле, а пункты потребления — в нижней. Пункты производства и потребления попарно соединяются рёбрами бесконечной пропускной способности и цены за единицу потока .

К верхней доле искусственно присоединяется исток. Пропускная способность рёбер из истока в каждый пункт производства равна запасу продукта в этом пункте. Цена за единицу потока у этих рёбер равна 0.

Аналогично к нижней доле присоединяется сток. Пропускная способность рёбер из каждого пункта потребления в сток равна потребности в продукте в этом пункте. Цена за единицу потока у этих рёбер тоже равна 0.

Дальше решается задача нахождения максимального потока минимальной стоимости (mincostmaxflow). Её решение аналогично нахождению максимального потока в алгоритме Форда — Фалкерсона. Только вместо кратчайшего дополняющего потока ищется самый дешёвый. Соответственно, в этой подзадаче используется не поиск в ширину, а алгоритм Беллмана — Форда. При возврате потока стоимость считается отрицательной.

Алгоритм «mincostmaxflow» можно запускать и сразу — без нахождения опорного плана. Но в этом случае процесс решения будет несколько более долгим. Выполнение алгоритма «mincostmaxflow» происходит не более чем заопераций. ( — количество рёбер, — количество вершин.) При случайно подобраных данных обычно требуется гораздо меньше — порядка операций.

При решении несбалансированной транспортной задачи применяют приём, позволяющий сделать ее сбалансированной. Для этого вводят фиктивные пункты назначения или отправления. Выполнение баланса транспортной задачи необходимо для того, чтобы иметь возможность применить алгоритм решения, построенный на использовании транспортных таблиц.

Сущность транспортной задачи заключается в нахождениинаиболее рационального плана перевозки однородного продуктаиз пунктов нахождения в пункты потребления. В общем видетранспортная задача формулируется следующим образом. Имеется m пунктов отправления А1, А2,…, Аm однородного продукта, на которых сосредоточено соответственно а1, а2,…, аm количествопродукта. Имеется n пунктов потребления1, В2, …, Вn, потребность которых в этом продукте b1, b2,…, bn соответственно. Известны также транспортные издержки на перевозку единицы груза из пункта Аi в пункт Вj, которые обозначены через сij. Еслиобщая сумма продукта в пунктах отправления равна общей потребности в нем всех пунктов потребленияа1+а2+…+аm=b1+b2+…+bn, то такая модель называется закрытой, аесли не равна, то модель называется открытой. При решении задачи открытая модель всегда приводится к закрытой путем введения фиктивного поставщика, или фиктивного потребителя. Требуется найти такое неотрицательное решение системы изm+n уравнений

x11+x12+…+x1n=a1

x21+x22+…+x2n=a2

xm1+xm2+…+xmn=аm

x11+x21+…+xm1=b1

x12+x22+…+xm2=b2

x1n+x2n+…+xmn=bn

при котором линейная форма достигнет минимума

Z(min)=c11x11+c12x12+…+c1nx1n+c21x21+c22x22+…+c2nx2n+…+cm1xm1+c

m2xm2+…cmnxmn.

Обозначим через хij объем перевозок продукта от i-го поставщика к j-ому потребителю. Потребность в грузах b1 b2 … bn. Для построения опорного плана транспортной задачи существуют различные методы. Рассмотрим наиболее простой из них– метод северо-западного угла. Этот метод получил свое названиепотому, что распределение поставок начинается с левой верхнейклетки, что соответствует северо-западу на географической карте.

Рассматривая алгоритм записи исходного опорного решенияметодом северо-западного угла, можно установить следующее: 1. В таблицу всегда заносятся неотрицательные числа. 2. Из рассмотрения исключается строка или столбец лишь тогда, когда соответствующее ограничение превращается в тождество. Следовательно, после заполнения таблицы все ограничения

– тождества. 3. Так как при записи базисной переменной исключается или

строка, или столбец, и лишь при записи последней базисной переменной исключаются одновременно и строка, и столбец, товсего в таблицу вносятся (m+n-1) базисных переменных. Послезаписи опорного плана всегда проверяем соответствует ли количество заполненных клеток величине (m+n-1).