План реферата
Введение
1. Формулировка транспортной задачи
2. Математическая модель транспортной задачи
3. Необходимое и достаточное условия разрешимости транспортной задачи
4. Свойство системы ограничений транспортной задачи
5. Опорное решение транспортной задачи
6. Методы построения начального опорного решения
6.1 Построение первоначального плана по способу северо-западного угла
6.2 Построение первоначального плана по способу минимального элемента
7. Переход от одного опорного решения к другому
8. Распределительный метод
9. Метод потенциалов
10. Особенности решения транспортных задач с неправильным балансом
11. Алгоритм решения транспортной задачи методом потенциалов
11.1 Предварительный шаг
11.2 Общий повторяющийся шаг
12. Транспортная задача с ограничениями на пропускную способность
13. Транспортная задача по критерию времени
14. Применение транспортной задачи для решения экономических задач
Заключение
Список использованной литературы
Методы линейного программирования применяются для решения многих экстремальных задач, с которыми довольно часто приходится иметь дело в экономике. Решение таких задач сводится к нахождению крайних значений (максимума и минимума) некоторых функций переменных величин.
Линейное программирование основано на решении системы линейных уравнений (с преобразованием в уравнения и неравенства), когда зависимость между изучаемыми явлениями строго функциональна. Для него характерны математическое выражение переменных величин, определенный порядок, последовательность расчетов (алгоритм), логический анализ. Применять его можно только в тех случаях, когда изучаемые переменные величины и факторы имеют математическую определенность и количественную ограниченность, когда в результате известной последовательности расчетов происходит взаимозаменяемость факторов, когда логика в расчетах, математическая логика совмещаются с логически обоснованным пониманием сущности изучаемого явления.
С помощью этого метода в промышленном производстве, например, исчисляется оптимальная общая производительность машин, агрегатов, поточных линий (при заданном ассортименте продукции и иных заданных величинах), решается задача рационального раскроя материалов (с оптимальным выходом заготовок). В сельском хозяйстве он используется для определения минимальной стоимости кормовых рационов при заданном количестве кормов (по видам и содержащимся в них питательным веществам). Задача о смесях может найти применение и в литейном производстве (состав металлургической шихты). Этим же методом решаются транспортная задача, задача рационального прикрепления предприятий-потребителей к предприятиям-производителям.
Все экономические задачи, решаемые с применением линейного программирования, отличаются альтернативностью решения и определенными ограничивающими условиями. Решить такую задачу - значит выбрать из всех допустимо возможных (альтернативных) вариантов лучший, оптимальный. Важность и ценность использования в экономике метода линейного программирования состоят в том, что оптимальный вариант выбирается из весьма значительного количества альтернативных вариантов. При помощи других способов решать такие задачи практически невозможно.
Весьма типичной задачей, решаемой с помощью линейного программирования, является транспортная задача. [1]
Транспортная задача (transportation problem) - одна из наиболее распространенных задач математического программирования (обычно - линейного). В общем виде ее можно представить так: требуется найти такой план доставки грузов от поставщиков к потребителям, чтобы стоимость перевозки (или суммарная дальность, или объем транспортной работы в тонно-километрах) была наименьшей. Следовательно, дело сводится к наиболее рациональному прикреплению производителей к потребителям и наоборот. [2]
В простейшем виде, когда распределяется один вид продукта и потребителям все равно, от кого из поставщиков его получать, задача формулируется следующим образом.
Исходная информация:
Mi -
количество единиц груза в i
-м пункте отправления (i
= 1, 2, …, k
);
Nj
- потребность в j
-м пункте назначения (j
= 1, 2, …, l
) (в единицах груза);
aij
- стоимость перевозки единицы груза из i
-гo пункта в j
-й.
Обозначим через xij
планируемое количество единиц груза для перевозки из i
-ro пункта в j
-й.
В принятых обозначениях:
- общая (суммарная) стоимость перевозок;
- количество груза, вывозимого из i
-ro пункта;
- количество груза, доставляемого в j
-и пункт.
В простейшем случае должны выполняться следующие очевидные условия:
Таким образом, математической формулировкой транспортной задачи будет:
найти
при условиях
;
;
Эта задача носит название замкнутой (закрытой, сбалансированной) транспортной модели.
Заметим, что условие является естественным условием разрешимости замкнутой транспортной задачи.
Более общей транспортной задачей является так называемая открытая (несбалансированная) транспортная модель:
найти
при условиях
Ясно, что в этой задаче не предполагается, что весь груз, накопленный в i
-м пункте, должен быть вывезен. [3]
Простейшими транспортными задачами являются задачи о перевозках некоторого однородного груза из пунктов отправления (от поставщиков) в пункты назначения (к потребителям) при обеспечении минимальных затрат на перевозки.
Обычно начальные условия таких задач записывают в таблицу. Например, для k
поставщиков и l
потребителей такая задача имеет следующий вид:
Здесь показатели aij
означают затраты на перевозку единицы груза от i
-го поставщика (i
=1,2,…,k
) к j
-тому потребителю (j
=1,2,…,l
), Mi
- мощность i
-того поставщика в планируемый период, Nj
- спрос j
-того потребителя на этот же период. Обозначим через xij
поставку (количество груза), которая планируется к перевозке от i
-того поставщика к j
-тому потребителю. Математически задача сводится к нахождению минимума целевой функции, выражающей суммарные затраты на перевозку груза, т.е. функции
при ограничениях
(1)
Если к этим ограничениям добавить еще одно:
,(2)
т.е. суммарная мощность поставщиков равна суммарному спросу потребителей, то соответствующая модель задачи называется закрытой.
Задачам, в которых ограничение (2) отсутствует, т.е.
,
первоначально соответствует открытая модель.
Отметим некоторые особенности экономико-математической модели транспортной задачи.
Система ограничений (1) сразу имеет вид уравнений, поэтому отпадает необходимость вводить добавочные переменные.
Матрица коэффициентов при переменных в системе (1) состоит только из единиц и нулей.
Система ограничений (1) включает k
уравнений, связывающих поставки i
-того поставщика с мощностью Mi
(i
=1,2,…,k
) этого поставщика, и l
уравнений, связывающих поставки j
-тому потребителю со спросом Nj
(j
=1,2,…,l
) этого потребителя. Заметим, что число k
равно числу строк исходной таблицы, а число l
- числу столбцов.
Число переменных xij
, входящих в целевую функцию и в систему уравнений (1), равно произведению kl,
т.е. числу клеток таблицы.
Таким образом, система ограничений (1) есть система из k+l
уравнений с kl
переменными.
Любое решение транспортной задачи (x
11
, x
12
,…, xkl
) называется распределением поставок. Так как поставки не могут быть отрицательными, то речь идет только о допустимых решениях.
Оптимальному решению транспортной задачи соответствует оптимальное распределение поставок, при котором целевая функция достигает своего минимума.
В ходе решения задачи и нужно получить это оптимальное распределение поставок, которому соответствует какое-то допустимое базисное решение системы ограничений (1). [4]
Ограничение (1) и условия неотрицательности переменных, исключающие обратные перевозки xij
>0; i= 1, 2, …, k
; j
= 1, 2,., l
.
Эти условия образуют систему ограничений. Любой план, компоненты которого удовлетворяют этой системе, будет допустимым.
Как видим, система ограничений задана в основном (k
+ l
) уравнениями. Установим условия, при которых эта система будет совместной, т.е. будет иметь решения.
Сложим элементы xij
матрицы перевозок по строкам, каждая строка в сумме дает Mi,
и в итоге получим . Сложим те же элементы по столбцам, каждый столбец дает Nj,
и в сумме получим . Но от перестановки слагаемых сумма не меняется, поэтому для любого допустимого плана обязательно будет выполняться условие
.
Равенство является необходимым условием совместности ограничений задачи.
Докажем и достаточность этого условия: если запасы равны потребностям, то всегда имеется допустимый план.
Действительно, пусть . Рассмотрим такие числа:
Убедимся, что эти числа образуют допустимый план. Для этого достаточно проверить, что они удовлетворяют всем ограничениям задачи.
Просуммируем эти числа по индексу i
:
.
Но величины Nj,
от индекса i
не зависят и их можно вынести за знак суммы. В результате
или
,
Следовательно, взятые числа удовлетворяют группе уравнений (1).
Просуммируем эти числа по индексу j
:
Вынося постоянные Mi
и за знак суммы и имея в виду, что , получаем
или в развернутом виде
Как видим, наши числа удовлетворяют группе уравнений (1). Эти числа неотрицательны, т.е. система ограничений полностью удовлетворяется. Таким образом, допустимый план существует, что и требовалось доказать.
Равенство запасов потребностям есть необходимое и достаточное условие совместности и, следовательно, разрешимости транспортной задачи. [5]
Согласно теореме о структуре координат опорного плана задачи линейного программирования, в невырожденном опорном плане должно содержаться r отличных от нуля координат, где r - ранг системы ограничений
.
В этой системе ограничений уравнений закрытой транспортной задачи имеется k
+l
-1 линейно-независимых уравнений, т.е. ранг системы ограничений равен k
+l
-1. [6]
Опорное решение (опорный план, базисное решение, basic solution) - одно из допустимых решений, находящихся в вершинах области допустимых решений. Оно является решением системы линейных ограничений, которое нельзя представить в виде линейной комбинации никаких других решений.
При решении задачи линейного программирования можно поступить следующим образом: найти любое из таких "вершинных" решений, не обязательно оптимальное, и принять его за исходный пункт расчетов. Такое решение и будет базисным. Если окажется, что оно и оптимальное, расчет на этом закончен, если нет - последовательно проверяют, не будут ли оптимальными соседние вершинные точки. Ту из них, в которой план эффективнее, принимают снова за исходную точку и так, последовательно проверяя на оптимальность аналогичные вершины, приходят к искомому оптимуму. На этом принципе строятся так называемый симплексный метод решения задач линейного программирования, а также ряд других способов, объединенных общим названием "методы последовательного улучшения допустимого решения (МПУ)": метод обратной матрицы, или модифицированный симплекс-метод, метод потенциалов для транспортной задачи и другие. Они отличаются друг от друга вычислительными особенностями перехода от одного базисного решения к другому, улучшенному. [2]
В этом случае не обращают внимания на показатели затрат. Начав заполнение с клетки (1.1) - "северо-западного угла" таблицы, ступенями спускаются вниз до клетки (k
, l
), вычеркивая либо одну строку, либо один столбец. На последнем шаге вычеркиваются последняя (k
-я) строка и последний (l
-й) столбец. При практическом заполнении таблицы, вычеркивание строк и столбцов производится лишь мысленно.
Когда осуществляется первоначальное распределение поставок, то не ставится цель получить оптимальное распределение. Достижению этой цели служат последующие этапы решения задачи. Они заключаются в переходах к новым распределениям поставок, пока не будет найдено оптимальное распределение поставок. [4]
При построении первоначального плана по способу северо-западного угла совершенно не учитываются тарифы, потому план получается весьма далеким от оптимального. Для решения задачи приходится делать много приближений (шагов).
Способ минимального элемента учитывает тарифы и потому позволяет найти план, более близкий к оптимальному.
Этот способ заключается в следующем.
1. Располагаем все клетки таблицы в очередь по мере возрастания тарифов, начиная с минимального.
линейное программирование транспортная задача
2. В клетку с минимальным тарифом записываем наибольшую возможную перевозку (исходя из запасов и потребностей), затем заполняем очередную по порядку клетку и т.д., пока не получим план. При этом должен строго соблюдаться баланс по строкам и столбцам. Пустые клетки прочеркиваем, а не заполняем нулями (чтобы было видно, что они не входят в план).
Полученный план будет ациклическим и будет состоять не более чем из k
+l
-1 компонент. Этот план и принимаем за исходный. Он будет лучше плана, построенного по способу северо-западного угла, и для нахождения оптимума потребуется меньше вычислений. [5]
Числа и называют потенциалами. В распределительную таблицу добавляют строку и столбец . Потенциалы и находят из равенства , справедливого для занятых клеток. Одному из потенциалов дается произвольное значение, а остальные потенциалы определяются однозначно. Если известен потенциал , то , если известен потенциал , то .
Обозначим , которую называют оценкой свободных клеток. Если все оценки свободных клеток , то опорное решение является оптимальным. Если хотя бы одна из оценок , то опорное решение не является оптимальным и его можно улучшить, перейдя от одного опорного решения к другому.
Наличие положительной оценки свободной клетки () при проверке опорного решения на оптимальность свидетельствует о том, что полученное решение не оптимально и для уменьшения значения целевой функции надо перейти к другому опорному решению. При этом надо перераспределить грузы, перемещая их из занятых клеток в свободные. Свободная клетка становится занятой, а одна из ранее занятых клеток - свободной.
Для свободной клетки с строится цикл (цепь, многоугольник), все вершины которого, кроме одной, находятся в занятых клетках; углы прямые, число вершин четное. Около свободной клетки цикла ставится знак (+), затем поочередно проставляют знаки (-) и (+). У вершин со знаком (-) выбирают минимальный груз, его прибавляют к грузам, стоящим у вершин со знаком (+), и отнимают от грузов у вершин со знаком (-). В результате перераспределения груза получим новое опорное решение. Это решение проверяем на оптимальность и т.д. до тех пор, пока не получим оптимальное решение. [7]
Распределительный метод решения транспортной задачи отличается от метода потенциалов некоторым изменением вычислительного процесса и иным (по форме) критерием оптимальности.
Алгоритм распределительного метода заключается в следующем.
1. Отыскиваем первоначальный ациклический план, содержащий (k
+l
-1) компонент (при недостатке компонент дописываем нули).
2. Включаем в набор свободную клетку, строим для нее цикл, означиваем его, приписывая свободной клетке знак плюс, и вычисляем по этим знакам алгебраическую сумму тарифов, стоящих во всех вершинах цикла. Полученное число с его знаком записываем внутри свободной клетки.
3. Проделываем указанную в п.2 операцию для каждой свободной клетки, строя всякий раз свой цикл пересчета. В результате в каждой свободной клетке появится число (положительное, отрицательное или нуль).
4. Если все полученные числа неотрицательны, то найдено оптимальное решение, минимизирующее функционал. Если эти числа неположительны, достигнут максимум функционала. При наличии чисел разных знаков включаем в план свободную клетку, в которой стоит наибольшее по модулю отрицательное число для минимума и положительное - для максимума.
5. В отрицательной полуцепи того цикла, который соответствует выбранной клетке, отыскиваем наименьшую перевозку и делаем сдвиг по циклу на это число. Находим новый допустимый план.
6. Испытываем этот план на оптимальность, т.е. для каждой свободной клетки строим цикл пересчета и вычисляем алгебраическую сумму тарифов. При неоптимальности плана снова включаем свободную клетку в план и делаем сдвиг по соответствующему циклу. Так продолжаем до тех пор, пока план не будет оптимальным.
Для ручного счета более удобен метод потенциалов. Однако на распределительном методе основаны некоторые другие способы решения задач, что и вызывает необходимость его изучения. [5]
Решение транспортной задачи любым способом производится на макете. Макет для применения метода потенциалов имеет следующий вид.
Основная часть макета выделена двойными линиями. Она содержит k
×l
клеток. Каждая клетка в этой части обозначается символом (i
, j
). Например, клетка, стоящая во второй строке и первом столбце, будет обозначена (2, 1). Макет содержит в себе матрицу тарифов. Назначение строки vj
и столбца ui
будет выяснено в дальнейшем.
Прежде чем приступить к изложению метода, рассмотрим некоторые предварительные понятия.
Произвольную совокупность клеток в макете называют набором. Цепью называется последовательный набор клеток, в котором каждые две соседние клетки расположены в одном ряду (строке, столбце), причем никакие три клетки в одном ряду не располагаются.
Пример цепи приведен в табл.2.
Прямые, соединяющие взятые клетки, пересеклись, но так как клетку в пересечении мы не берем, правило цепи не нарушается.
Если последняя клетка цепи расположена в одном ряду с первой, то такая замкнутая цепь называется циклом. Некоторые разновидности циклов показаны в табл.3.
Теорема. Пусть в макете (или матрице) из k
строк и l
столбцов произвольно отмечено k+l
клеток, причем k+l
£ kl
. В этом случае всегда можно построить цикл, вершины которого лежат в отмеченных клетках (может быть не во всех).
Замечание. Числа k
и l
целые, и для них не всегда будет выполнено неравенство k+l
£ kl
. Если одно из этих чисел - единица, это неравенство не выполняется. Например, при k
=3, l
=1 имеем 3 + 1 > 3·1. Однако при k
=2 и l
=2 будет 2+2 = 2·2, а при k
и l
, одновременно больших двух, неравенство всегда выполняется.
Условие k+l
£ kl
исключает случаи матриц с одной строкой или одним столбцом, в которых вообще цикла построить нельзя.
Доказательство. Рассмотрим минимальный возможный случай: k
=2, l
=2 (табл.4).
В макете надо выбрать k+l
= 4, т.е. все 4 клетки. Для этого случая теорема справедлива: выбранные клетки образуют цикл.
Возьмем теперь любые k
>2, l
>2. Доказательство будем вести методом математической индукции.
Допустим, теорема справедлива для макета, у которого сумма строк и столбцов на единицу меньше взятых нами (k
+l
). Докажем, что при этом предположении теорема будет справедлива для принятых (k
+l
).
Первый случай. Среди отмеченных клеток имеется одна клетка, единственная в ряду (строке или столбце) (табл.5).
Откажемся от этой клетки, исключим эту строку из рассмотрения. Тогда придем к таблице, у которой строк на единицу меньше, а число столбцов сохранилось. Число строк в сумме с числом столбцов будет меньше (k
+l
) на одну единицу, но и число отмеченных клеток уменьшится на одну. Для этого случая можно построить цикл по принятому допущению. Этот цикл возьмем и для нашей таблицы, так как в соответствии с оговоркой вершины цикла могут быть и не вo всex отмеченных клетках.
Второй случай. Нет таких ситуаций, когда клетка одна. В каждой строке (столбце) больше чем одна клетка (или нет ни одной) (табл.6).
Отметим одну клетку знаком плюс, пойдем от нее по строке, попадем в клетку, которая в другом столбце и неединственная в нем; по столбцу перейдем в другую строку, по этой строке в другой столбец и т.д. Это можно было бы продолжать до бесконечности, если бы не было конечным число отмеченных клеток. На каком-то этапе придем в строку (столбец), в которой уже были, чем будет замкнута цепь, т.е. получен цикл.
Выше было показано, что теорема справедлива для k
=2, l
=2, т.е. для k
+l
=4. По доказанному она справедлива для случаев: k
+l
=5, т.е. k
+l
>4; k
+l
=6, т.е. k
+l
>5; k
+l
>6 и т.д., т.е. для любого макета.
Допустимый план Х
(xij
) называется ациклическим (нециклическим), если набор клеток с отличными от нуля компонентами плана xij
>0 не содержит ни одного цикла.
Пример ациклического плана приведен в табл.7,
где точки обозначают клетки, в которых xij
>0 (xij
<0 недопустимы по смыслу задачи). Как покажем ниже, среди ациклических планов есть оптимальный.
Если в ациклическом плане Х
(xij
) число положительных компонентов
N
= k
+ l -
1 (остальные компоненты - нули), то элементы aij
матрицы тарифов из набора клеток, в которых расположены xij
>0, будем называть Х
-отмеченными.
Если же число положительных компонент плана N
< k
+ l -
l, то к клеткам, занятым положительными xij
добавляем недостающие до (k
+l
-1) из нулевых клеток, лишь бы присоединенные клетки вместе с уже взятыми не допускали циклов. Тарифы aij
всех взятых клеток, равно как и сами клетки, включаются в число Х
-отмеченных.
Больше (k
+ l
- 1) число компонент ациклического плана не может быть: , так как уже при N=k+l
по доказанной выше теореме всегда из выбранных клеток можно построить цикл.
Теорема 2 (основная теорема). Если для некоторого плана Х= (xij
) kl
транспортной задачи можно подобрать систему из k+l
чисел u1
, u2
,…, ui,
…, uk
; vl
, v2
,…, vj
,…, vl
, удовлетворяющую следующим условиям: vj
- ui
£ aij
для всех i
= 1, 2,., k
; j
= 1, 2,., l
, а для xij
>0 (xij
(-X
)) vj
- ui
= aij
, то план Х
будет оптимальным.
Числа ui
,
vj
называются потенциалами пунктов отправления и пунктов назначения; условия vj
- ui
£ aij
и vj
- ui
= aij
называют условиями потенциальности плана Х
.
К каждой клетке (i
, j
) относятся два потенциала: i
-ro пункта отправления ui
и j
-ro пункта назначения vj
.
Условия потенциальности словесно можно сформулировать так: разность потенциалов для всех без исключения клеток должна быть меньше или равна тарифу, а для занятых (Х
-отмеченных) клеток она должна быть точно равна тарифу. План, удовлетворяющий этим условиям, называется потенциальным.
С учетом такой терминологии основную теорему можно изложить короче: если некоторый план транспортной задачи потенциален, то он оптимален.
Доказательство. Допустим, что для некоторого плана Х
(xij
) условия потенциальности выполнены, т.е. существует такая система чисел ui
и vj
, которая удовлетворяет условиям vj
- ui
= aij
и vj
- ui
£ aij
(табл.8).
Иными словами, пусть план Х
потенциален. Докажем, что этот план будет оптимальным. План Х
дает значение функционалу
.
Так как мы еще не знаем, оптимален план Х
или нет, то возьмем заведомо оптимальный план Х' (x
¢ij
)
и посмотрим, какое значение он доставляет функционалу:
(транспортные расходы минимальны). Выполняются ли условия потенциальности для плана Х'
- неизвестно, но каждой клетке (i
, j
) макета 8, исходя из потенциальности плана Х
, соответствует неравенство vj
- ui
£ aij
или, наоборот, aij
≥ vj
- ui.
Возьмем из каждой клетки макета соответствующий х'ij
, умножим его на левую и правую части последнего неравенства и сложим. Получим неравенство
.
Двойную сумму в правой части обозначим для краткости буквой S:
,
ее можно переписать в виде разности двух двойных сумм:
.
Преобразуем эти суммы следующим образом. Первая из них в развернутом виде дает
или
.
Аналогично вторую двойную сумму можно записать так:
.
Тогда равенство запишется в иной форме:
.
Но есть сумма компонент плана по j
-му столбцу, она
равна потребности j
-ro пункта назначения
.
Аналогично есть сумма компонент плана, взятая по i
-й строке, она равна запасам в i
-м пункте отправления
.
Эти равенства сумм компонент по строке и столбцу соответственно запасам и потребностям будут выполняться для любого допустимого плана, в том числе и для взятого в самом начале плана Х
(xij
):
Поэтому для любых допустимых планов будем иметь
и в написанном выше равенстве суммы x
¢ij
можно заменить соответствующими суммами xij
:
Теперь вернемся к форме записи
.
В плане Х
(xij
) по условию его потенциальности для каждой положительной компоненты xij
> 0 выполняется равенство vj
- ui
= aij
.
Остальные компоненты плана равны нулю, и соответствующие слагаемые в сумме обратятся в нули. Поэтому полученная сумма будет равна
.
Подставляя в
,
приходим к неравенству
или zmin
≥ zX.
Иными словами, транспортные расходы по плану Х меньше или равны минимальным расходам. Но меньше минимальных они быть не могут, остается только равенство zX
= zmin..
План Х доставляет минимальные издержки, т.е. он оптимален, что и требовалось доказать.
Таким образом, если план потенциален, то он оптимален. Это и является тем критерием, по которому судят об оптимальности плана.
Справедливо и обратное положение: если план оптимален, то он о6язательно потенциален. Это условие (необходимость) принимается без доказательства. [5]
Может случиться, что в рассматриваемых пунктах запасы не равны потребностям: или запасы превосходят потребности, или же запасы не обеспечивают потребностей.
Такая модель задачи называется открытой. Для нее тоже можно отыскать план с минимумом транспортных издержек, но не будут удовлетворены все потребности или не будет вывезен весь груз, так как нельзя подобрать такую систему чисел, которая при суммировании по строкам давала бы один результат, а при суммировании по столбцам - другой.
Для решения задачи поступаем следующим образом.
Первый случай. .
В математическую модель транспортной задачи введем фиктивный (l
+l) - й пункт назначения. Для этого в матрице задачи предусмотрим один столбец, для которого потребность будет равна излишку груза:
,
Все тарифы на доставку груза в этот пункт будем считать равными нулю. Получим новую задачу, причем для старой и новой задачи функционал будет один и тот же, так как цены на дополнительные перевозки равны нулю:
min
Фиктивный потребитель обеспечивает совместность ограничений, не внося искажений в решение.
Второй случай.
Если запасов не хватает для удовлетворения потребностей, т.е. , то вводим фиктивный (k
+1) - й пункт отправления, которому приписываем запас груза, равный
,
тарифы на доставку грузов из этого фиктивного склада опять, полагаем нулевыми. В матрице добавится одна строка. На функционале это не отразится, а система ограничений задачи станет совместной, т.е. станет возможным отыскание оптимального плана на минимум стоимости перевозок. [5]
Алгоритм метода потенциалов разделяется на предварительный шаг, выполняемый в начале решения, и общий шаг, повторяемый до тех пор, пока не будет получен оптимум.
Этот шаг включает следующих три этапа.
1. Находим допустимый ациклический план.
2. Составляем систему чисел - потенциалов пунктов отправления и пунктов назначения.
3. Анализируем систему на потенциальность. Если она потенциальна (т.е. план потенциален), то найденный план оптимален. Если система не потенциальна, приступаем к общему шагу.
Первый этап: нахождение допустимого ациклического плана способом северо-западного угла.
Невзирая на тарифы, начинаем составление плана с заполнения левой верхней клетки (1,1) (с северо-западного угла).
Смотрим на запасы M
1
и потребности N
1
. Если M1
< N1
, то в клетку (1,1) вписываем M
l
(т.е. отдаем пункту назначения весь запас груза из первого пункта отправления - случай в таблице). Если N
1
< M
1
, то в клетку (1,1) записываем N
1
, т.е. покрываем всю потребность первого пункта назначения за счет первого пункта отправления.
Перепишем баланс после первой операции (изменятся и потребности, и запасы). В первой строке остальные клетки можно прочеркнуть, так как весь груз пошел в первый пункт.
Второй тур начинаем опять с северо-западного угла. Удовлетворяем оставшуюся потребность первого пункта назначения, доставив туда (N
1
-M
l
) единиц груза из второго пункта отправления. Если потребность первого пункта удовлетворена полностью, остальные клетки в первом столбце прочеркиваем. Переписываем баланс после второй операции.
Снова начинаем с северо-западного угла, удовлетворяем потребность второго пункта назначения и т.д., пока справа и снизу не будут стоять нули, т.е. весь груз распределен и потребности удовлетворены. Полученный внутри таблицы план будет допустимым. Его и берем в качестве исходного.
Второй этап предварительного шага: определение системы потенциалов.
Потенциал приписывается каждому пункту отправления (обозначается ui
) и каждому пункту назначения (vj
). Всего потенциалов k
+l
чисел. Они вносятся в специально отведенные для этого строку и столбец макета.
Для Х
-отмеченных тарифов aij
, число которых всегда равно (k
+ l
- 1), должны выполняться равенства vj
- ui
= aij
. Эти равенства и будут служить теми уравнениями, из которых находятся потенциалы. Однако таких уравнений будет только (k
+ l
- 1), а неизвестных в системе (k
+ l
), т.е. на единицу больше. Такая система уравнений имеет бесчисленное множество решений, любое из которых годится для нашей цели. Чтобы найти какое-то одно решение, значение одного потенциала выбираем произвольно. Остальные потенциалы определяем из решения системы. Третий этап предварительного шага: испытание плана или системы потенциалов на потенциальность. Потенциальность заключается в том, чтобы неравенство vj
- ui
< aij
выполнялось для всех без исключений клеток. При этом Х
-отмеченные клетки проверять не надо, так как потенциалы подобраны из условия выполнения в них равенства.
Выделяем положительные разности dij
:
dij
= vj
- ui
- aij
> 0.
На этом предварительный шаг закончен.
Общий шаг выполняется в такой последовательности.
1. Из положительных разностей dij
находим наибольшую разность di0j0
:
diojo
= mах (vj
- ui
- aij
> 0).
Пусть этот максимум имеет место для клетки (i0
, j0
). Включаем эту клетку в набор Х
-отмеченных (k
+ l
- 1) клеток. Клеток становится (k
+l
), а для такого их количества всегда можно построить цикл. Этот цикл будет в данной ситуации единственным.
Действительно, набор Х
-отмеченных клеток является ациклическим. Добавим к нему одну клетку и предположим, что для нее можно построить два цикла. В этом случае всегда можно выделить цикл с вершинами, принадлежащими исходному набору, что противоречит условию его ацикличности. Поэтому такой цикл существует только один и задача заключается в его выделении.
2. Означиваем цикл, т.е. расставляем знаки в его вершинах. В исходной клетке (включаемой в набор) ставим плюс. Двигаемся по ходу или против хода часовой стрелки и ставим знаки попеременно минус, плюс, - пока не придем к исходной вершине. Так как количество вершин в цикле четно, направление движения безразлично. В результате получим так называемый означенный цикл, клетки которого делятся поровну на клетки положительной полуцепи и клетки отрицательной полуцепи.
3. Выбираем наименьшее значение перевозки в клетках отрицательной полуцепи (xij
) - .
Пусть оно равно Q:
min
(xij
) - = Q.
Если таких значений несколько, берем одно из них, безразлично какое.
4. Из перевозок каждой клетки отрицательной полуцепи вычитаем Q, а к перевозкам каждой клетки положительной полуцепи прибавляем Q. Эта операция называется сдвигом по циклу на величину Q.
Процесс сдвига меняет план, но план остается допустимым.
Действительно, допустимый план обеспечивает баланс в строках и столбцах; всякий план, не нарушающий этот баланс, будет допустимым. Любой цикл, по которому производится сдвиг, содержит в каждом ряду (строке, столбце) по две вершины. В одну клетку добавляем Q, а из другой вычитаем Q, и баланс не нарушается. Следовательно, план, найденный в результате сдвига, останется допустимым.
После сдвига в клетке отрицательной полуцепи с минимальной перевозкой будет стоять нуль, а в клетке (i0
, j0
), включенной в набор, окажется число Q. Первую клетку из плана исключаем, а вторую включаем; план остается по-прежнему ациклическим, так как единственный имевшийся цикл нарушается исключением клетки.
Полученный после сдвига план можно записать следующим образом:
5. для полученного после сдвига плана составляем новую систему потенциалов. Эти новые потенциалы можно вычислить так же, как это делалось в предварительном шаге, а можно найти исправлением уже имеющейся системы.
Для занятых клеток должны выполняться равенства .
Поэтому берем в таблице клетку, занятую в результате сдвига, и исправляем для нее потенциалы так, чтобы их разность равнялась тарифу. Лучше изменять один из них - тот, который стоит в строке или столбце с меньшим числом занятых клеток.
Затем испытываем другие занятые клетки и корректируем последовательно остальные потенциалы. Изменению подвергаются, как правило, не все числа, и такой порядок сокращает расчеты.
6. Производим исследование новой системы на потенциальность, т.е. исследование найденного плана на оптимальность. Для этого проверяем выполнение неравенств vj
- ui
≤ aij
для всех незанятых клеток. Если для них неравенства выполняются, то система потенциальна и план оптимален, т.е. решение закончено. Если для каких-то клеток неравенства не выполняются, вычисляем разности dij
и делаем снова общий шаг и т.д., до тех пор, пока не будет получен оптимальный план. Вырождение в транспортной задаче проявляется в том, что среди (k
+l
-1) Х
-отмеченных клеток оказывается клетка с нулевой перевозкой. Если эта клетка не попадает в цикл, на нее не обращаем внимания. Если она попадает в положительную полуцепь цикла, то на следующем шаге вместо нуля получим в этой клетке положительное число. Если же нулевая клетка оказывается в отрицательной полуцепи, то Q=0, т.е. сдвиг надо делать на число нуль. Такой нулевой сдвиг плана не меняет, но нуль переходит в другую клетку, меняется набор Х-отмеченных клеток и система потенциалов. Это дает возможность на очередном шаге осуществить уже не нулевой сдвиг и изменить план в сторону его улучшения. Контроль вычислений осуществляется таким образом. В процессе решения задачи на каждом шаге полученный план проверяется на допустимость. Для этого компоненты плана суммируются по строкам и столбцам; суммы должны равняться соответственно запасам и потребностям пунктов. Окончательный (оптимальный) план проверяется по формуле, вытекающей из доказательства основной теоремы:
,
при этом контролируются и потенциалы. [5]
Транспортная задача с ограниченными пропускными спосо6ностями коммуникаций решается с дополнительным ограничением: , где dij
- пропускная способность звена (i
, j
) в единицу времени. Математическая модель задачи такова:
,
при ограничениях
Эта задача разрешима при выполнении условий
.
Для транспортной задачи с ограниченными пропускными способностями справедливы следующие условия оптимальности полученного решения:
[8]
Кроме транспортной задачи по критерию стоимости существует задача транспортного типа по критерию времени. Постановка такой задачи состоит в следующем.
Дана матрица времени (tij
) kl
, где tij
- время на перевозку груза из i
-того пункта отправления в j
-тый пункт назначения. Матрица перевозок грузов (xij
) kl
, где xij
- количество перевозимого груза из i
-того пункта отправления в j
-тый пункт назначения. Известно также наличие груза Mi
и спрос на него Nj
, . Требуется определить такой план перевозок, при котором весь груз будет доставлен потребителям в кратчайший срок.
Постановка транспортной задачи по критерию времени отличается от транспортной задачи по критерию стоимости лишь целевой функцией.
Если в задаче по критерию стоимости определялись минимальные транспортные издержки, то при решении задачи по критерию времени следует определить наименьший промежуток времени, за который груз будет доставлен потребителю. Решение такой задачи очень важно в случае доставки скоропортящегося продукта.
Исходный опорный план можно получить по правилам "северо-западного угла", "минимального элемента", приближенным методом. Далее просматриваем все занятые клетки и в них выбираем максимальное время t
, за которое осуществляется опорный план перевозок, т.е. Т
=max
(tij
), где клетки (i
; k
) занятые. Каждому плану перевозок будет соответствовать вполне определенное значение Т
, зависящее от плана, т.е. T=f (x).
Следовательно, нужно найти такой план доставки груза потребителям, для которого Т
будет минимальным.
Определив максимальное значение Т
для исходного плана, просматриваем ту клетку, для которой t=Т=max (tij
).
Например, такой клеткой является (p
, q
). Для этой клетки строится цикл, который включает в себя занятые и свободные клетки. Таких циклов может быть несколько. Однако при построении его следует учесть условия. Занятая клетка (p
, q
), для которой tiq
= Т
будет нечетной, следующая клетка по часовой или против часовой стрелки - четная, следующая - нечетная и т.д. Цикл состоит из двух полуциклов - четного и нечетного. Для нечетных клеток цикла обязательно должна быть загрузка больше нуля, а для четных - время меньше Т
. Свободные клетки, для которых время tij
> Т
, прочеркиваются и в расчет не принимаются.
Построив цикл для разгрузочной клетки (p
, q
), для которой t (p
, q) = Т
, определяем наименьшую загрузку в нечетных клетках цикла. Полученное количество груза вычитается из грузов нечетных клеток и добавляется к числам четных клеток цикла. При этом может оказаться, что после смещения по циклу клетка (p
, q
) не разгрузится, тогда снова строится цикл и производится разгрузка клетки до тех пор, пока количество груза не станет равным нулю. После разгрузки клетки, имеющей максимальный промежуток времени, получаем новый план перевозок, для которого отыскивается разгрузочная клетка и снова производится процедура построения цикла и смещения груза по циклу. Процесс продолжается до тех пор, покуда можно будет строить разгрузочные циклы. В случае невозможности построить такой цикл в полученных занятых клетках плана выбираем максимальное время, которое и будет искомым по реализации оптимального плана. [9]
Во многих снабженческих, транспортных и других организациях во всем мире рассчитываются маршруты доставки материалов на строительные площадки, планы длительного прикрепления поставщиков к потребителям, планы перевозок топлива. Задачи эти часто усложняются разного рода дополнительными условиями; например, в них включается расчет не только себестоимости перевозок, но и себестоимости производства продукции (производственно-транспортная задача), оптимизируется совместно доставка взаимозаменяемых видов продукции, оптимизируется доставка грузов с промежуточными базами (складами).
Кроме того, следует учитывать, что экономико-математическая модель транспортной задачи позволяет описывать множество ситуаций, весьма далеких от проблемы перевозок, в частности, находить оптимальное размещение заказов на производство изделий с разной себестоимостью. [2]
Алгоритм н методы решения транспортной задачи могут быть использованы при решении некоторых экономических задач, не имеющих отношения к транспортировке грузов. В этом случае величины тарифов aij
имеют различный смысл в зависимости от конкретной задачи.
1. Оптимальное закрепление за станками операций по обработке деталей. В них величина aij
является производительностью. Задача позволяет определить, сколько времени и на какой операции нужно использовать каждый из станков, чтобы обработать максимальное количество деталей. Так как транспортная задача требует нахождения минимума, то значения aij
берутся с отрицательным знаком.
2. Оптимальные назначения или проблема выбора. Имеется k
механизмов, которые могут выполнять l
различных работ с производительностью aij
. Задача позволяет определить, какой механизм и на какую работу надо назначить, чтобы добиться максимальной производительности.
3. Задача о сокращении производства с учетом суммарных расходов на изготовление и транспортировку продукции.
4. Увеличение производительности автомобильного транспорта за счет минимизации порожнего пробега, сокращение которого позволит уменьшить количество автомобилей для перевозок за счет увеличения их производительности.
5. Решение задач с помощью метода запрещения перевозок. Используется в том случае, если груз от некоторого поставщика по каким-то причинам не может быть направлен одному из потребителей. Данное ограничение можно учесть, присвоив соответствующей клетке достаточно большое значение стоимости. [7]
Первым звеном в системе рационализации структуры хозяйственных связей является плановая увязка потребностей и ресурсов, т.е. определение плана снабжения, в котором суммарные производственные потребности на период планирования сбалансированы с фондами, предназначенными на тот же период. Баланс производства и потребления - необходимое условие составления планов материально-технического снабжения. Это связано с подготовкой оптимизационных межотраслевых и межпродуктовых динамических моделей производства и распределения продукции.
В рамках же сбалансированности производства и потребления роль системы материально-технического обеспечения заключается в оказании услуг на всех уровнях управления обращением средств производства, которые состоят в размещении заказов на отгрузку конкретных видов продукции по поставщикам, прикреплении потребителей на прямые длительные связи, транзитное и складское снабжение, в установлении оптимальных уровней запасов и методов управления ими, оказании услуг по гарантированному комплексному снабжению, плановому распределению средств производства путем оптовой торговли и др. Эти вопросы теснейшим образом связаны с рационализацией хозяйственных связей.
Рациональное прикрепление потребителей к поставщикам в значительной степени определяет структуру хозяйственных связей, их экономическую эффективность. Под оптимальным мы понимаем такой план их прикрепления, который позволяет при минимальных издержках на поставки и содержание запасов максимально использовать производственные мощности поставщиков и бесперебойно питать потребителей. [8]
Итак, установление рациональных связей между предприятиями наряду с выявлением потребностей и их увязкой с ресурсами - основная задача материально-технического снабжения, поэтому владение приемами и навыками решения оптимизационных задач математического программирования, в частности транспортной, является важной составляющей образования экономиста-менеджера.
1) Баканов, М.И. Экономический анализ: Учебное пособие / М.И. Баканов, А.Д. Шеремет. - М.: Финансы и статистика, 2002. - С.40-41.
2) Лопатников, Л.И. Словарь современной экономической науки / Л.И. Лопатников // Экономико-математический словарь. - М.: ABF, 1996. - С.43-44, 543-545.
3) Карманов, В.Г. Математическое программирование: Учебник для вузов. - М.: Наука, 1975. - С.16-18.
4) Карасев, А.И. Курс высшей математики для экономических вузов: Учебник для экономических вузов / А.И. Карасев, З.М. Аксютина, Т.И. Савельева - М.: Высшая школа, 1982. - С.279-285.
5) Полунин, И.Ф. Курс математического программирования: Учебник для вузов. - Минск: Высшая школа, 1970. - С. 194-230.
6) Сакович, В.А. Исследование операций: Учебник для вузов. - Минск: Высшая школа, 1985. - С.75.
7) Красс, М.С. Математика для экономистов: Учебник для экономических вузов. - Санкт-Петербург: Питер, 2006. - С.289-299.
8) Сакович, В.А. Управление комплексными поставками: Учебник для вузов. - Минск: Высшая школа, 1989. - С.100-108.
9) Холод, Н.И. Математические методы анализа и планирования: Учебник для вузов. - Минск: Ураджай, 1989. - С.97-99.
10) Холод, Н.И. Пособие по решению задач по линейной алгебре и линейному программированию: Пособие для вузов. - Минск: издательство БГУ, 1971. - С.159.
|