Решение транспортной задачи линейного программирования
Рассмотрение экономико-математической модели транспортной задачи. Алгоритм решения транспортной задачи методом потенциалов. Проверка плана на оптимальность и расчет потенциалов. Проверка небазисных клеток на соответствие их условию оптимальности.
Рубрика | Математика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 18.12.2015 |
Размер файла | 181,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Международный банковский институт
Решение транспортной задачи линейного программирования
Выполнил студент 3 курса группы 22-ФБ-21
Седлов Сергей Анатольевич
Принял: Профессор
Рождественский Юрий Владимирович
Санкт-Петербург 2015
1. Сущность транспортной задачи линейного программирования
В различных местах оправки имеется однородный груз, который требуется доставить в несколько пунктов назначения. Известно, сколько груза отправляется из каждого пункта и сколько груза должно поступить в пункт назначения. Причём безразлично, какой именно отправитель будет доставлять груз тому или иному получателю. Требуется так организовать перевозки, чтобы обеспечить минимальный общий пробег груза, т. е. минимизировать затраты на транспортировку. Экономико-математическая модель транспортной задачи представляется обычно в виде транспортной таблицы или матрицы.
Таблица 2.1
Экономико-математическая модель транспортной задачи
Примечание. Аi - название пункта отправления; Вj - название пункта назначения; ai - производственная мощность поставщиков; bj - спрос потребителей; m - число поставщиков; n - число потребителей; i - номер строки (i-й поставщик) i = 1…m; j - номер столбца (j-й потребитель) j = 1…n; cij - показатель критерия оптимальности, удельные затраты на транспортировку единицы продукции (себестоимость перевозок) от поставщика i до потребителя j; xij - количество продукции, перевозимое от поставщика i до потребителя j, план перевозок, распределение поставок, корреспонденция грузов.
Условия задачи в принятых обозначениях следующие.
1. Каждый поставщик должен дать ровно столько продукции, столько у него есть, т. е. сумма поставок по каждой строке должна будет равна мощности ai этой строки:
. (2.1)
2. Каждый потребитель должен получить ровно столько продукции, сколько ему требуется, т. е. сумма поставок по каждому столбцу должна будет равна спросу bi этого столбца:
. (2.2)
3. Из вышеприведённых условий (2.1) и (2.2) следует:
. (2.3)
В случае если , то транспортная задача линейного программирования называется открытой. Если , то это несбалансированная задача с дефицитом. Если , то это несбалансированная задача с избытком.
Чтобы определить суммарные затраты на перевозки, достаточно просуммировать произведения объёмов каждой поставки на соответствующие им удельные затраты на транспортировку. План будет оптимальным, если эта сумма (целевая функция F) будет сведена к минимуму:
. (2.4)
Транспортная задача является закрытой, если соблюдается условие (2.3). Если данное условие не соблюдается, то для приведения открытой транспортной задачи к закрытому виду вводится фиктивный потребитель ФВ или фиктивный поставщик ФА. Разница между производственной мощностью и спросом относится на его счёт. Расходы по доставке груза до фиктивного потребителя или фиктивного поставщика равны нулю, так как груз фактически не перевозится.
2. Алгоритм решения транспортной задачи методом потенциалов
Метод потенциалов относится к группе методов последовательного приближения. Вначале отыскивается исходный допустимый план перевозок, который, как плавило, не является оптимальным, а затем по определенной итеративной процедуре этот план доводится до оптимального варианта.
Для описания алгоритма используем формульно-словесный способ. Рассмотрим пример транспортной задачи (табл. 2.2).
Таблица 2.2
Исходная транспортная матрица
В табл. 2.2 по строкам матрицы представлены пункты (станции) отправления от А1 до А4 и объемы погрузки в тоннах - 100, 150, 90, 30 т, а по столбцам - пункты (станции) назначения от В1 до В5 и объемы выгрузки - 40, 80, 110, 50, 90 т. Данная транспортная задача является сбалансированной (ai = bj = 370 т), поэтому добавлять фиктивного потребителя ФВ или фиктивного поставщика ФА не требуется. На пересечении строк и столбцов в клетках матрицы в маленьких квадратиках записаны показатели критерия оптимальности транспортной задачи, например, затраты на перевозку единицы груза или кратчайшие расстояния между соответствующими пунктами (станциями) погрузки и выгрузки. Расстояние между станцией погрузки А1 и станцией выгрузки В1, как следует из матрицы, равно 10 (или 100, 1000 и т. д.) км, потом - 9, 8, 5 км и т. д. Тогда целью, решения задачи явится отыскание совокупности объемов перевозок между всеми пунктами (станциями) погрузки и выгрузки (корреспонденций), обеспечивающей минимальный объем перевозочной работы (грузооборота) в тонно-километрах. Любую совокупность корреспонденций, обеспечивающую весь объем перевозок, будем называть планом, а совокупность, обеспечивающую минимум грузооборота, - оптимальным планом перевозок.
Алгоритм решения транспортной задачи линейного программирования будем описывать по операциям с присвоением номера и названия.
Операция 1. Построение опорного плана.
Опорным, называется любой допустимый, как правило, не оптимальный план, который является исходным для последующего решения. Для построения опорного плана существует ряд методов. Самый простой из них - метод северо-западного угла (табл. 2.3).
Метод северо-западного угла
Берем «северо-западную» клетку матрицы - это клетка А1В1 и записываем в нее максимально возможную поставку - 40 т (объем выгрузки 40 т, ресурсы станции погрузки 100 т). Поскольку ресурсы станции погрузки А1 не исчерпаны, следуем по первой строке вправо и записываем в клетку А1В2 корреспонденцию равную максимально возможной величине - 60 т. Таким образом получается, что ресурсы станции А1полностью использованы, однако спрос станции выгрузки В2 не удовлетворен. Тогда от клетки А1В2 опускаемся вниз до клетки А2В2 и записываем в нее поставку равную 20 т. Описанным способом следуем далее до последней «юго-западной» клетки матрицы. В результате получаем допустимый план перевозок груза. Грузооборот или функционал транспортной задачи (сумма произведений корреспонденций на расстояние, рассчитанная по табл. 2.3) составит:
Fсев-зап. = 40 • 10 + 60 • 9 + 20 • 7 + 110 • 13 + 20 • 6 + 30 • 7 + 60 • 1 + + 30 • 2 = 2960 ткм [см. формулу (2.4)].
После расстановки корреспонденции матрица проверяется на вырождение, т. е. должно выполняться условие
, (2.5)
где m - количество строк, n - количество столбцов, Nбаз - количество базисных клеток.
Другими словами, количество клеток матрицы, содержащих корреспонденции, должно быть равно сумме строк и столбцов без единицы. В нашем случае это условие соблюдается: 8 = 4 + 5 - 1. План транспортной задачи, отвечающий условию (n + m - 1) называют базисным. Базисными также называются клетки матрицы, содержащие поставки. Клетки, в которых поставки отсутствуют, называются небазисными.
Метод северо-западного угла имеет существенный недостаток. При его использовании не учитываются значения показателей критерия оптимальности в клетках матрицы. Поэтому поставки могут попасть в «дорогие» клетки с заведомо высокой ценой или большим расстоянием. Опорный план, полученный с использованием данного метода, как правило, далек от оптимального, что обусловливает большой объем последующих расчетов для доведения его до оптимального. Описанный метод обычно не применяется.
Наиболее предпочтительным при ручном решении транспортных задач считается метод минимальной стоимости или, как его еще называют, метод наименьшего элемента в матрице. Суть его в следующем. В транспортной матрице выбирается клетка с минимальной стоимостью (расстоянием). В нашем случае это клетка А3В5. В нее записывается максимально возможная поставка - это 90 т (табл. 2.4).
Таблица 2.4
Метод наименьшего элемента в матрице
Далее отыскиваются клетка, имеющая следующее по величине расстояние. В нашей матрице это две клетки с расстоянием 2 км в пятом столбце. Однако в эти клетки поставки корреспонденцию грузов ставить нельзя, поскольку спрос станции В5 полностью удовлетворен со станции А3. Поэтому столбец 5 из дальнейшего построения плана исключаем. Следующие по величине показателя критерия оптимальности клетки с расстоянием 4 км это клетки А2В1 и А4В2. Выбираем одну из них, например, А2В1 и записываем в нее поставку 40 т. Далее идет клетка А4В2 - поставка 30 т, потом А1В4 - 50 т, А2В2 - 50 т. Все оставшиеся ресурсы по станциям погрузки распределяем между клетками третьего столбца в клетки А1В3 и А2В3. После составления опорного плана во избежание ошибок целесообразно проверить балансы погрузки, выгрузки и суммы корреспонденций по строкам и по столбцам матрицы. Функционал F плана, составленного методом наименьшей стоимости, равен 2150 ткм. Таким образом, построенный план значительно лучше плана, построенного методом северо-западного угла. Однако число базисных клеток в плане - 7. Это не соответствует условию (2.5), т. е. меньше требуемого на единицу. Такой план математики назвали вырожденным (случай вырождения). Случай вырождения «лечат» путем введения в матрицу недостающего количества базисных клеток с нулевыми поставками. Нулевую поставку необходимо вводить в матрицу рядом с базисной клеткой, которая обусловила «пропажу» базисной клетки.
Для того чтобы понять, почему «пропадают» поставки, обратимся к методу северо-западного угла. Из табл. 2.3 следует, что как только была заполнена «северо-западная» клетка, рядом с ней сразу появляется соседняя базисная клетка, потом еще одна и т.д. Цепочка базисных клеток без разрыва следует до «юго-восточного угла» матрицы. Однако если бы в этой цепочке появилась клетка, связывающая поставщика и потребителя с равными объемами погрузки и выгрузки, и в нее была бы записана такая же поставка, то это привело бы к пропаже базисной клетки. Описанная ситуация имела место в табл. 2.4, когда в клетку А3В5была введена корреспонденция объемом 90 т, равная объемам погрузки и выгрузки по соответствующим станциям. Поэтому необходимо ввести в план дополнительную базисную клетку с нулевой поставкой. Эта клетка должна стоять рядом с клеткой А3В5. Из трех соседних клеток следует выбрать клетку с минимальным расстоянием, например, А2В5. Записываем в нее корреспонденцию, равную «0» (табл. 2.5).
Таблица 2.5
Добавление нулевой поставки
Таким образом, причиной вырождения плана транспортной задачи является наличие поставщиков и потребителей с равными объемами погрузки и выгрузки или равными объемами сумм погрузки и выгрузки по нескольким станциям в разнообразных комбинациях. Такие случаи необходимо уметь находить для того, чтобы правильно определять места для нулевых поставок. В процессе решения задачи возможны случаи, когда число базисных клеток превышает величину «n + m - 1». Это означает появление ошибки вследствие того, что при построении опорного плана в какую-то клетку была введена не максимально возможная поставка.
Операция 2. Проверка плана на оптимальность.
Операция 2.1. Расчет потенциалов.
Проверка плана транспортной задачи в описываемом методе на оптимальность осуществляется с помощью потенциалов. Потенциалы - это такие числа, которые по определенным правилам назначаются каждой строке и каждому столбцу. Потенциалы строк обозначим ui, потенциалы столбцов - vj. Они могут принимать любые значения. Однако удобнее работать с положительными, целыми и относительно небольшими числами. Такой потенциал первоначально назначается любой строке или столбцу. Рекомендуем поступать следующим образом. Выберем базисную клетку с максимальным расстоянием. В нашей матрице это клетка А2В3. Присвоим строке, в которой находится эта клетка, потенциал, равный 0 (u3 = 0). Далее можно рассчитать потенциалы столбцов по базисным клеткам строки 3 по формуле
. (2.6)
Потенциал первого столбца
v1 = u2 + c21 = 0 + 4 = 4;
второго: v2 = u2 + c22 = 0 + 7 = 7;
третьего: v3 = u2 + c23 = 0 + 13 = 13;
пятого: v5 = u2 + c25 = 0 + 2 = 2.
Рассчитанные потенциалы записываем напротив соответствующих столбцов ниже матрицы. Поскольку по всем базисным клеткам строки 2 потенциалы столбов найдены, переходим к расчету потенциалов строк.
Потенциал строки 1 рассчитываем по найденному потенциалу столбца 3 и базисной клетке А1В3 по формуле
, (2.7)
где u1 = v3 - c31 = 13 - 8 = 5.
Для строки 3 потенциал будет равен:
транспортный задача потенциал оптимальность
u3 = v5 - c35 = 2 - 1 = 1.
Также рассчитываем потенциалы для всех строк и столбцов (табл. 2.6).
Таблица 2.6
Расстановка потенциалов и перераспределение поставок
Операция 2.2. Проверка небазисных клеток на соответствие их условию оптимальности.
Оптимальный план транспортной задачи должен отвечать критерию оптимальности, который выражается в том, соответствуют ли небазисные клетки матрицы условию, формулируемому следующим выражением:
. (2.8)
Если это условие для всех небазисных клеток выполняется, то план является оптимальным, а если нет, хотя бы для одной клетки, то план не оптимален. Иначе говоря, существует некоторый план с меньшим функционалом. Разность потенциалов может интерпретироваться как некоторая условная цена перевозки единицы продукции по маршруту, связывающему соответствующие станции «i» и «j». Если она ниже cij, значит, использование данного маршрута не улучшит план, а если cij ниже разности потенциалов, т. е. условие (2.8) не выполняется, следовательно, существует план лучше рассчитанного, который необходимо отыскать.
Проверим условие (2.8) для табл. 2.6.
Клетка А1В1: 4 - 5 < 10, условие выполняется.
Клетка А1В2: 7 - 5 < 9, условие выполняется и т. д.
Если для всех небазисных клеток условие 3 выполняется, то рассматриваемый план будет оптимален. Дальнейшие действия переходят по алгоритму к операции 4.
Однако для нашего примера это не так. Не выполняется условие для клетки А2В4 (10 - 0> 6), клетки А3В3 (13 - 1 > 9), а также для клеток А3В4, А4В3, из чего следует, что разработанный опорный план не оптимален. Отметим эти клетки.
Операция 3. Улучшение плана.
Поскольку полученный план не оптимален, дальнейшие действия алгоритма состоят в его преобразовании в лучшую сторону или просто улучшения.
Операция 3.1. Построение цепи (контура, цикла) перераспределения поставок.
Улучшение плана осуществляется по одной из небазисных клеток, для которой условие оптимальности оказалось невыполненным. В нашем плане имеется четыре такие клетки. Выбираем одну из них, для которой условие оптимальности не выполняется в наибольшей степени. В нашем плане это клетка А2В4. Для нее условие оптимальности не выполнено на 4 единицы (10 - 0 - 6 = 4). Для этой клетки строим цепь перераспределения поставок. Цепь перераспределения поставок - это такая замкнутая ломаная линия, которая проходит по клеткам матрицы ходом шахматной ладьи. В вершинах контура обязательно лежит одна небазисная клетка (несоответствующая условию оптимальности, найденная ранее), а остальные соответствуют только базисным клеткам. Линии контура могут пересекаться. Для небазисной клетки А2В4 цепь будет проходить по клеткам А1В4, А1В3, А2В3 (табл. 2.7).
Таблица 2.7
Возможные варианты построения цикла перераспределения
В нашем случае форма цепи простая. Однако цепь может иметь любую форму, в том числе и причудливую (см. табл. 2.7). Её нужно научиться отыскивать, используя эвристические подходы. При этом необходимо учитывать, что каждая небазисная клетка транспортной матрицы обязательно имеет одну цепь перераспределения поставок.
Операция 3.2. Перераспределение поставок.
Перераспределение поставок (см. табл. 2.6) производится по цепи. Вначале определим объем перераспределения поставок. Для этого присвоим клеткам - вершинам цепи - знаки. В небазисную клетку А2В4 ставим «+», поскольку в нее будет вводиться поставка. Далее, чередуя «+» с «-», расставляем знаки по остальным вершинам контура. Величина объема перераспределения поставок принимается равной минимальной поставке в отрицательной клетке. Для нашего случая это 50 единиц груза. Перераспределение заключается в том, что к поставкам в положительных клетках найденный объем прибавляется, а для отрицательных клеток отнимается. Результат представлен в табл. 2.6.
Функционал F' нового плана, представленного в табл. 2.6 (выделенные поставки), составляет 1950 ткм, что на 200 ткм меньше значения функционала F предыдущего плана.
Полученный улучшенный план, представленный в табл. 2.6, в свою очередь, требует проверки на оптимальность, поэтому необходимо вернуться к операции 2.
Совокупность действий, описанных в операциях 2 и 3, в процессе решения задачи повторяется до тех пор, пока не будет получен оптимальный план. Эта совокупность носит итеративный (циклический) характер, поэтому она называется итерацией. Через определенное число итераций план становится оптимальным. После этого осуществляется переход от второй операции к четвертой (табл. 2.8).
Таблица 2.8
Повторение операций 2, 3
От матрицы к матрице грузооборот (затраты на транспортировку) должны снижаться. Если план не оптимален, то необходимо произвести повторный расчёт потенциалов, проверить небазисные клетки на соответствие условию оптимальности.
Покажем дальнейшее решение задачи, основываясь на данных табл. 2.6. Результат действий второй и третьей итераций приведен в табл. 2.8.
Проверка плана на оптимальность свидетельствует о том, что для двух клеток условия оптимальности не выполняются. После перераспределения поставок по клетке А4В3, получаем новый план (табл. 2.9).
Таблица 2.9
Оптимальный план поставок
Проверка плана перевозок на оптимальность по условию (2.8) показала, что для всех небазисных клеток матрицы условия оптимальности выполняются. Функционал F'' оптимального плана равен 1920 ткм. Таким образом, получен план перевозок, обеспечивающий минимальный объем перевозочной работы для транспортировки всего груза между станциями погрузки и выгрузки.
Размещено на Allbest.ru
Подобные документы
Составление математической модели задачи. Приведение ее к стандартной транспортной задаче с балансом запасов и потребностей. Построение начального опорного плана задачи методом минимального элемента, решение методом потенциалов. Анализ результатов.
задача [58,6 K], добавлен 16.02.2016Описание метода потенциалов Математическая постановка задачи об оптимальных перевозках. Метод решения задачи об оптимальных перевозках средствами Ms Excel. Постановка параметрической транспортной задачи, ее математическое и компьютерное моделирование.
курсовая работа [802,5 K], добавлен 21.10.2014Решение систем уравнений по правилу Крамера, матричным способом, с использованием метода Гаусса. Графическое решение задачи линейного программирования. Составление математической модели закрытой транспортной задачи, решение задачи средствами Excel.
контрольная работа [551,9 K], добавлен 27.08.2009Математическая модель задачи. Решение транспортной задачи методом потенциалов. Значение целевой функции. Система, состоящая из 7 уравнений с 8-ю неизвестными. Решение задач графическим методом. Выделение полуплоскости, соответствующей неравенству.
контрольная работа [23,5 K], добавлен 12.06.2011Применение математических и вычислительных методов в планировании перевозок. Понятие и виды транспортных задач, способы их решения. Особенности постановки задачи по критерию времени. Решение транспортной задачи в Excel, настройка параметров решателя.
курсовая работа [1,0 M], добавлен 12.01.2011Решение двойственной задачи с помощью первой основной теоремы теории двойственности, графическим и симплексным методом. Математическая модель транспортной задачи, расчет опорного плана перевозок методами северо-западного угла и минимального элемента.
контрольная работа [333,3 K], добавлен 27.11.2011Постановка задачи коммивояжера и основные алгоритмы решения. Маршруты и пути. Понятия транспортной сети. Понятие увеличивающая дуга, цепь, разрез. Алгоритм Флойда-Уоршелл. Решение задачи аналитическим методом. Создание приложения для решения задачи.
курсовая работа [541,3 K], добавлен 08.10.2015История зарождения и создания линейного программирования. Транспортная задача. Общая постановка, цели, задачи. Основные типы, виды моделей. Методы составления начального опорного плана. Понятие потенциала и цикла. Задача, двойственная к транспортной.
курсовая работа [166,7 K], добавлен 17.07.2002Методы определения объемов выпуска изделий каждой модели, при которых прибыль будет максимальна Составление математической модели задачи целочисленного программирования. Решение задачи симплекс-методом. Поиск целочисленного решения методом отсечения.
контрольная работа [156,9 K], добавлен 30.01.2011Составление математической модели задачи. Определение всевозможных способов распила 5-метровых бревен на брусья 1,5, 2,4, 3,2 в отношении 1:2:3 так, чтобы минимизировать общую величину отходов. Решение задачи линейного программирования симплекс-методом.
задача [26,1 K], добавлен 27.11.2015