Оптимизация транспортных задач.
Цель работы
Приобретение навыков решения транспортных задач с помощью команды «Поиск решений» и метода потенциалов.
Теоретические сведения
Математическая модель транспортной задачи
Практически все задачи линейного программирования можно решить, используя ту или иную модификацию симплексного метода. Однако существуют более эффективные вычислительные процедуры решения некоторых типов задач линейного программирования, основанные на специфике ограничений этих задач. Рассмотрим так называемую транспортную задачу по критерию стоимости, которую можно сформулировать следующим образом.
В т пунктах отправления А1, А2, ..., Аm, которые в дальнейшем будем называть поставщиками, сосредоточено определенное количество единиц некоторого однородного продукта, которое обозначим ai (i=1, 2, .... т). Данный продукт потребляется в n пунктах B1, B2, .... Bn, которые будем называть потребителями; объем потребления обозначим bj (j=1, 2, ..., п). Известны расходы на перевозку единицы продукта из пункта – Ai в пункт Bj, которые равны сij и приведены в матрице транспортных расходов С=(cij).
Требуется составить такой план прикрепления потребителей к поставщикам, т.е. план перевозок, при котором весь продукт вывозится из пунктов Ai в пункты Вj в соответствии с потребностью и общая величина транспортных издержек будет минимальной.
Обозначим количество продукта, перевозимого из пункта Ai в пункт Bj, через хij. Совокупность всех переменных xij, для краткости обозначим , тогда целевая функция задачи будет иметь вид:
(10)
а ограничения выглядят следующим образом:
, (11)
, (12)
.
Условия (11) означают полное удовлетворение спроса во всех пунктах потребления; условия (12) определяют полный вывоз продукции от всех поставщиков.
Необходимым и достаточным условием разрешимости задачи (10) — (12) является условие баланса:
(13)
Транспортная задача, в которой имеет место равенство (13), называется закрытой и может быть решена, как задача линейного программирования с помощью симплексного метода.
Метод потенциалов.
Благодаря особенностям переменных задачи и системы ограничений разработаны специальные, менее громоздкие методы ее решения. Наиболее применяемым методом является метод потенциалов, при котором каждой i-й строке (i-му поставщику) устанавливается потенциал ui который можно интерпретировать как цену продукта в пункте поставщика, а каждому столбцу j (j-му потребителю) устанавливается потенциал Vj, который можно принять условно за цену продукта в пункте потребителя. В простейшем случае цена продукта в пункте потребителя равна его цене в пункте поставщика плюс транспортные расходы на его доставку, т.е.
(14)
Первым этапом алгоритма метода потенциалов для закрытой транспортной задачи является составление начального распределения (начального плана перевозок). Для реализации этого начального этапа имеется в свою очередь ряд методов: северо-западного угла, наименьших стоимостей, аппроксимаций Фогеля и др. Вторым этапом служат построение системы потенциалов на основе равенства (14) и проверка начального плана на оптимальность; в случае его неоптимальности переходят к третьему этапу, содержание которого заключается в реализации так называемых циклов перераспределения (корректировка плана прикрепления потребителей к поставщикам), после чего переходят опять ко второму этапу. Совокупность процедур третьего и второго этапов образует одну итерацию. Эти итерации повторяются, пока план перевозок не окажется оптимальным по критерию (10).
Если баланс (13) не выполняется, то ограничения (11) или (12) имеют вид неравенств типа «меньше или равно». Транспортная задача в таком случае называется открытой. Для решения открытой транспортной задачи методом потенциалов ее сводят к закрытой задаче путем ввода или фиктивного потребителя, если в неравенства превращаются условия (12), или фиктивного поставщика — в случае превращения в неравенства ограничений (11).
Рассмотрим этапы реализации метода потенциалов для закрытой транспортной задачи более подробно. Прежде всего следует отметить, что при условии баланса (13) ранг системы линейных уравнений (11), (12) равен т + п – 1. Таким образом из общего числа т х п неизвестных базисных неизвестных будет т + п - 1. Вследствие этого при любом допустимом базисном распределении в матрице перевозок (таблице поставок), представленной в общем виде в табл. 6, будет занято ровно т + п - 1 клеток, которые будем называть базисными в отличие от остальных свободных клеток. Занятые клетки будем отмечать диагональной чертой.
Таблица 6 – Матрица перевозок
Мощности поставщиков | Мощности потребителей | |||
… | ||||
… | ||||
… | ||||
… | … | … | … | … |
… |
Этап 1.Первоначальное закрепление потребителей за поставщиками. Рассмотрим два метода получения начального распределения (начального опорного плана): метод северо-западного угла и метод наименьших стоимостей. При каждом из этих методов при заполнении некоторой клетки, кроме последней, вычеркивается или только строка матрицы перевозок, или только столбец; лишь при заполнении последней клетки вычеркиваются и строка, и столбец. Такой подход будет гарантировать, что базисных клеток будет ровно т + п - 1. Если при заполнении некоторой (не последней) клетки одновременно удовлетворяются мощности и поставщика, и потребителя, то вычеркивается, например, только строка, а в соответствующем столбце заполняется незанятая клетка так называемой «нулевой поставкой», после чего вычеркивается и столбец. Для идентификации клетки обычно в скобках указываются номера ее строки и столбца. В методе северо-западного угла всегда в первую очередь заполняется клетка (из числа невычеркнутых), стоящая в верхнем левом (северо-западном) углу матрицы перевозок. Пример составления начального распределения данным методом показан в табл. 7: заполняется клетка (1;1) и вычеркивается первый столбец, заполняется клетка (1;2) и вычеркивается первая строка; заполняется клетка (2;2) и вычеркивается второй столбец; заполняется клетка (2;3) и вычеркивается вторая строка; заполняется клетка (3;3) и вычеркивается третий столбец; наконец, заполняется клетка (3:4) и вычеркиваются последние строка и столбец. Число занятых клеток равно m+n-1=3+4-1=6. Суммарные затраты на реализацию данного плана перевозок составят:
Таблица 7 – Пример составления начального распределения методом северо-западного угла
Мощности поставщиков | Мощности потребителей | |||
4 | ||||
Недостатком данного метода является то, что он не учитывает значения элементов сij матрицы транспортных расходов, в результате чего полученное этим методом начальное распределение (начальный опорный план перевозок) может быть достаточно далеко от оптимального.
В различных модификациях метода наименьших стоимостей заполнение клеток матрицы перевозок проводится с учетом значений величин cij. Так, в модификации «двойного предпочтения» отмечают клетки с наименьшими стоимостями перевозок сначала по каждой строке, а затем по каждому столбцу. Клетки, имеющие две отметки, заполняют в первую очередь, затем заполняют клетки с одной отметкой, а данные о нераспределенном грузе записывают в неотмеченные клетки с наименьшими стоимостями. При этом из двух клеток с одинаковой стоимостью перевозок предпочтение отдается клетке, через которую осуществляется больший объем перевозок. Вычеркивание строк и столбцов при заполнении клеток проводится по описанным выше правилам. Пример начального распределения методом наименьших стоимостей для тех же исходных данных, что и ранее, представлен в табл. 8.
Таблица 8 - Пример начального распределения методом наименьших стоимостей
Мощности поставщиков | Мощности потребителей | |||
4 | ||||
Порядок заполнения клеток: (2;1), (3;2), (1;3), (2;4), (1;4), (3;4). Суммарные затраты на перевозки, представленные в табл. 3.7, составляют:
f(X) = 1*30 +2*100 + 2*40 +2*70 + 3*20 +4*20 = 590.
Следовательно, данный план перевозок значительно ближе к оптимальному, чем план, составленный по методу северо-западного угла.
Этап 2. Проверка оптимальности полученного плана перевозок. Введем специальные показатели ui для каждой строки матрицы перевозок (каждого поставщика), где i = 1, т, и показатели Vj для каждого столбца (каждого потребителя), где ,j = 1, n. Эти показатели называются потенциалами поставщиков и потребителей, их удобно интерпретировать как цены продукта в соответствующих пунктах поставщиков и потребителей. Потенциалы подбираются таким образом, чтобы для заполненной клетки (i;j) выполнялось равенство (14). Совокупность уравнений вида (14), составленных для всех заполненных клеток (всех базисных неизвестных), образует систему т + п — 1 линейных уравнений с т+п неизвестными ui и vj. Эта система всегда совместна, причем значение одного из неизвестных можно задавать произвольно (например, u1 = 0), тогда значения остальных неизвестных находятся из системы однозначно.
Рассмотрим процесс нахождения потенциалов для базисного начального распределения по методу северо-западного угла, представленного в табл. 7. Задав и1 = 0 и используя формулу (14) для заполненных клеток (1;1) и (1;2), находим v1= 4 и v2=5. Зная v2, по заполненной клетке (2;2) находим u2 = 2, а зная u2, по заполненной клетке (2;3) находим v3= 8. Зная v3, по заполненной клетке (3;3) находим и3 = 1, а затем по заполненной клетке (3;4) находим v4=5. Результаты представлены в табл. 9, где потенциалы поставщиков приведены в последнем столбце, а потенциалы потребителей — в последней строке.
Таблица 9 - Нахождение потенциалов для базисного начального распределения по методу северо-западного угла
Мощности поставщиков | Мощности потребителей | ||||
30 | |||||
5 - | 2 | ||||
70 | - 30 | ||||
Смысл прямоугольного контура, проведенного пунктиром в табл. 3.8, и знаков при его вершинах пояснен далее при описании этапа 3 метода потенциалов.
Аналогичные результаты для начального распределения по методу наименьших стоимостей, приведенного в табл. 8, представлены в табл. 10.
Таблица 10 - Нахождение потенциалов для базисного начального распределения по методу наименьших стоимостей
Мощности поставщиков | Мощности потребителей | ||||
4 | |||||
-1 | |||||
Чтобы оценить оптимальность распределения, для всех клеток (i;j) матрицы перевозок определяются их оценки, которые обозначим через dij, по формуле:
(15)
Используя ранее принятую интерпретацию, выражение можно трактовать как сумму цены продукта у поставщика и стоимости перевозки; эта сумма путем вычитания сравнивается с ценой продукта у соответствующего потребителя Vj. Очевидно, оценки заполненных клеток равны нулю (цена потребителя покрывает цену поставщика и стоимость перевозок). Таким образом, об оптимальности распределения можно судить по величинам оценок свободных клеток. Если оценка некоторой свободной клетки отрицательна, это можно интерпретировать так: цена, предлагаемая соответствующим потребителем, больше суммы цены поставщика и стоимости перевозки, т.е. если бы эта клетка была занята, то можно было бы получить дополнительный экономический эффект. Следовательно, условием оптимальности распределения служит условие неотрицательности оценок свободных клеток матрицы перевозок.
Оценки клеток по формуле (15) удобно представить в виде матрицы оценок. Для ранее рассматриваемого распределения, полученного методом северо-западного угла (см. табл. 9), матрица оценок клеток имеет вид:
(16)
Наличие большего числа отрицательных оценок свободных клеток свидетельствует о том, что данный план перевозок далек от оптимального (напомним, что суммарные затраты на перевозку по этому плану равны 1170).
Для распределения, полученного методом наименьших стоимостей (табл. 10), матрица оценок клеток имеет вид:
Так как все оценки неотрицательны, то не имеется возможности улучшить данный план перевозок, т.е. он оптимален (суммарные затраты на перевозку по этому плану равны 590). Кроме того, следует отметить, что в данном случае оценки всех свободных клеток строго больше нуля, т.е. любой другой план, предусматривающий занятие хотя бы одной из этих клеток, будет менее оптимален. Это говорит о том, что найденный оптимальный план является единственным. Наличие нулевых оценок свободных клеток в оптимальном плане перевозок, наоборот, свидетельствует о неединственности оптимального плана.
Этап 3.Улучшение неоптимального плана перевозок (циклы перераспределения). Чтобы улучшить неоптимальный план перевозок, выбирается клетка матрицы перевозок с отрицательной оценкой; если таких клеток несколько, то обычно (но необязательно) выбирается клетка с наибольшей по абсолютной величине отрицательной оценкой. Например, для распределения, представленного в табл. 9, такой клеткой может служить клетка (1;3) (см. матрицу оценок (16)).
Для выбранной клетки строится замкнутая линия (контур), начальная вершина которой лежит в выбранной клетке, а все остальные вершины находятся в занятых клетках; при этом направления отдельных отрезков контура могут быть только горизонтальными и вертикальными. Вершиной контура, кроме первой, является занятая клетка, где отрезки контура образуют один прямой угол (нельзя рассматривать как вершины клетки, где горизонтальные и вертикальные отрезки контура пересекаются). Очевидно, число отрезков контура, как и его вершин, будет четным. В вершинах контура расставляются поочередно знаки «+» и «-», начиная со знака «+» в выбранной свободной клетке. Пример простого контура показан пунктиром в табл. 9, хотя вид контура может быть самым разнообразным (например, контур в табл. 12).
Величина перераспределяемой поставки определяется как наименьшая из величин поставок в вершинах контура со знаком «-», и на эту величину увеличиваются поставки в вершинах со знаком «+» и уменьшаются поставки в вершинах со знаком «-». Это правило гарантирует, что в вершинах контура не появится отрицательных поставок, начальная выбранная клетка окажется занятой, в то время как одна из занятых клеток при этом обязательно освободится. Если величина перераспределяемой поставки равна поставкам не в одной, а в нескольких вершинах контура со знаком «-» (это как раз имеет место в контуре перераспределения в табл. 9), то освобождается только одна клетка, обычно с наибольшей стоимостью перевозки, а все другие такие клетки остаются занятыми с нулевой поставкой.
Результат указанных операций для представленного в табл. 9 распределения поставок показан в табл. 11. Суммарные затраты на перевозки по этому плану составляют
f(X) =4*30 +5*0 +2*30 +3*100 +7*10 +4*110 = 990, что значительно меньше предыдущей суммы затрат 1170, хотя план перевозок в табл. 11 еще не является оптимальным. Об этом свидетельствует наличие отрицательных значений в матрице оценок клеток этого плана (соответствующие потенциалы ui и Vj найдены способом, изложенным при описании этапа 2):
Таблица 11 – Результаты решения транспортной задачи методом потенциалов для базисного начального распределения по методу северо-западного угла
Мощности поставщиков | Мощности потребителей | ||||
30 | |||||
-5 | |||||
-1 |
Транспортные задачи, в базисном плане перевозок которых имеют место занятые клетки с нулевой поставкой (или в первоначальном распределении, или в процессе итераций), называются вырожденными; пример такой задачи представлен в табл. 11. В случае вырожденной транспортной задачи существует опасность зацикливания, т.е. бесконечного повторения итераций (бесконечного перебора одних и тех же базисных комбинаций занятых клеток). Как правило, в практических задачах транспортного типа зацикливание не встречается; тем не менее следует знать, что существуют специальные правила, позволяющие выйти из цикла, если зацикливание все же произойдет. При отсутствии вырождения метод потенциалов конечен и приводит к оптимальному плану перевозок за конечное число шагов.