- •Правила выполнения контрольной работы
- •Методические указания по выполнению заданий контрольной работы
- •1. Модель межотраслевого баланса
- •2. Графический метод решения задач линейного программирования
- •3. Транспортная задача
- •4. Экономико-математические методы и модели изучения и прогнозирования спроса
- •5. Элементы теории игр (критерии принятия решений)
- •Задачи контрольной работы
3. Транспортная задача
Одной из типичных задач линейного программирования является так называемая транспортная задача. Она возникает при планировании наиболее рациональных перевозок грузов, а также при организации и планировании производства.
Общая
постановка транспортной задачи состоит
в определении оптимального плана
перевозок некоторого однородного груза
из m
пунктов отправления А
,
А
,…,
А
в n
пунктов назначения B
,
B
,…,
B
.
Заданы стоимости перевозки единицы
груза c
от каждого i-того
пункта отправления до каждого j-того
пункта потребления. Требуется определить,
какое количество груза x
необходимо перевезти из каждого i-того
пункта отправления до каждого j-того
пункта потребления так, чтобы:
вывезти груз всех поставщиков;
удовлетворить спрос всех потребителей;
обеспечить минимальные суммарные транспортные расходы на перевозку всех грузов.
При постановке задач перевозки грузов могут возникнуть две различные ситуации:
количество груза у всех поставщиков равно потребностям всех потребителей в данном грузе;
количество груза у всех поставщиков больше или меньше потребностей всех потребителей в данном грузе.
В первом случае экономико-математическая модель транспортной задачи называется закрытой, а сама задача – сбалансированной. Во втором случае модель называется открытой, а задача - не сбалансированной.
Математическая модель закрытой транспортной задачи записывается в виде:
F
=
(10)
x
Разрешимой является только закрытая модель или сбалансированная транспортная задача. Чтобы решить несбалансированную транспортную задачу необходимо её сбалансировать, т. е. свести к закрытой модели. В случае, когда запасы в пунктах отправления превосходят потребности всех пунктов назначения, необходимо ввести фиктивного потребителя с потребностью в грузе равной разности общих запасов и общих потребностей. Так как введённый потребитель фиктивный, то все истинные тарифы доставки груза полагают равными нулю.
В случае, когда запасы в пунктах отправления меньше потребностей всех пунктов назначения, необходимо ввести фиктивного поставщика с наличием груза в количестве, равном разности общих потребностей и общих запасов. Так как введённый поставщик фиктивный, то истинные тарифы доставки груза из этого пункта полагают равными нулю.
Чтобы лучше представить условие транспортной задачи, все исходные данные сводят в таблицу, называемую матрицей планирования перевозок. Строки таблицы соответствуют поставщикам, а столбцы потребителям. В последней строке записывают заявки каждого потребителя, а в последнем столбце запасы каждого поставщика. В верхних правых углах внутренних клеток таблицы записываются истинные тарифы c , а в нижних левых углах – планируемые перевозки x .
Транспортная задача является задачей линейного программирования, поэтому она может быть решена симплексным методом. Следует отметить особенности экономико-математической модели транспортной задачи по сравнению с другими моделями задач линейного программирования:
система ограничений есть система уравнений, т.е. транспортная задача задана в канонической форме;
коэффициенты при переменных системы ограничений равны единице или нулю.
Специфичность
формы системы ограничений данной задачи
позволяет существенно упростить обычный
симплексный метод. Модификация
симплексного метода применительно к
транспортной задаче называется
распределительным
методом.
По аналогии с обычным случаем решение
в нём осуществляется по шагам. При этом
каждому шагу соответствует разбиение
переменных на основные (базисные) и
неосновные (свободные). Число базисных
переменных закрытой транспортной задачи
равно m+n-1,
где m
- число поставщиков, n
- число потребителей. Каждому разбиению
переменных x
задачи
на базисные и свободные соответствует
базисное решение и, как следствие,
заполнение таблицы поставок, которое
называется базисным. При этом заполненным
клеткам соответствуют базисные
переменные, а свободным – свободные.
Подобно тому, как это было в симплексном методе, в распределительном методе решения транспортной задачи необходимо переходить от одного базисного распределения поставок к другому в сторону не возрастания целевой функции вплоть до оптимального решения. Для начала такого движения необходимо найти исходное базисное распределение поставок – так называемый опорный план.
Существуют три метода отыскания исходного опорного плана транспортной задачи: метод «северо-западного угла», метод минимальной стоимости и метод Фогеля. Построенный одним из методов исходный опорный план доводят до оптимального путем последовательного улучшения с помощью метода потенциалов.
Решение транспортной задачи рассмотрим на конкретном примере.
Задача 3.
На
трех складах оптовой базы имеется
однородный груз в количествах 40, 80 и 80
единиц. Этот груз необходимо перевезти
в четыре магазина, каждый из которых
должен получить соответственно 70 ,20 ,
60 и 60 единиц. Стоимости доставки единицы
груза (тарифы) из каждого склада A
(i
=1, 2, 3) во все магазины B
(j
= 1, 2, 3, 4) заданы матрицей C=(
)
С
=
Составить план перевозок однородного груза с минимальными транспортными затратами.
Решение.
Проверяем необходимое и достаточное условие разрешимости задачи:
Как
видно, суммарная потребность в грузе
превышает его запасы на складах оптовой
базы. Следовательно, модель транспортной
задачи является открытой и в исходном
виде решения не имеет. Для получения
закрытой модели введём дополнительный
(фиктивный) склад A
c
запасом груза, равным a
=210-200=10.
Тарифы перевозки единицы груза из склада
A
во
все магазины полагаем равными нулю. Все
исходные данные заносим в таблицу 3.1.
Таблица 3.1
Поставщики
|
Потребители |
Запасы |
|||
B |
B |
B |
B |
a |
|
A |
5 |
4 |
2 |
1 40 |
40 |
A |
4 |
3 20 |
2 60 |
3 0 |
80 |
A |
4 70 |
3 |
3 |
6 10 |
80 |
A |
0 |
0 |
0 |
0 10 |
10 |
Потребности b |
70 |
20 |
60 |
60 |
210= 210 |
Построение первого опорного плана методом минимальной стоимости.
Среди
тарифов минимальным является c
=1.
В клетку А
В
направляем максимально возможный груз,
равный min(60,40)=40.
Тогда x
=
40. Из склада А
весь груз вывезен, но потребность
четвертого магазина неудовлетворенна
на 20 ед. Строка А
выходит из рассмотрения.
Среди
оставшихся тарифов минимальный элемент
- c
= 2. В клетку A
B
направляем груз min
(60,80) =60. При этом столбец B
выходит из рассмотрения, а из склада A
не вывезено 20 ед.
Продолжая рассуждения аналогичным образом, получаем первый опорный план, который является допустимым, так как все грузы со складов вывезены, и потребности всех магазинов удовлетворены.
Проверка вырожденности плана.
Число базисных переменных в невырожденном плане должно быть m+n-1 = 4+4-1 = 7. Первый опорный план является вырожденным, так как число занятых клеток равно шести. Для продолжения решения задачи опорный план необходимо дополнить введением фиктивной перевозки, т. е. занять нулём одну из свободных клеток. Направляем нуль в клетку A B , так как данная клетка не образует с другими занятыми клетками таблицы замкнутого прямоугольного контура.
Расчет значения целевой функции.
F(X
)
=
=
560 (тыс. руб.).
Нахождение оптимального плана транспортной задачи.
Построенный
исходный опорный план доводим до
оптимального методом потенциалов.
Основой вычислительного процесса при
улучшении опорного плана является
определение критерия оптимальности
:
=
с
,
где c - затраты (истинные тарифы), связанные с доставкой одной единицы груза из i-того пункта отправления в j-ый пункт назначения;
c
-
расчётные затраты (косвенные тарифы),
связанные с доставкой одной единицы
груза из i-того
пункта отправления в j-ый
пункт назначения, определяемые для тех
клеток опорного плана, ресурсы в которые
не распределены (для незаполненных
клеток).
План
транспортной задачи является оптимальным,
если для всех свободных клеток таблицы
перевозок значение критерия оптимальности
.
Если для всех свободных клеток таблицы
перевозок критерий оптимальности
<0,
то этот план перевозок является
единственным. Если для некоторых
свободных клеток таблицы перевозок
критерий оптимальности
=0,
то этот оптимальный план перевозок не
является единственным. Наконец, если
имеются свободные клетки, для которых
критерий оптимальности
>0,
то полученный план перевозок не является
оптимальным.
Алгоритм метода потенциалов состоит в следующем: каждому поставщику A ставится в соответствие некоторое число u , которое называется потенциалом A -того поставщика; каждому потребителю B ставится в соответствие некоторое число v , которое называется потенциалом B -того потребителя. Для каждой заполненной клетки, т. е. для каждой базисной переменной строится соотношение:
u +v =c
Получаем
систему с числом уравнений, равным
количеству базисных переменных. Из этой
системы определяем неизвестные потенциалы
u
и v
,
полагая u
=0.
Для каждой незаполненной клетки, т. е.
для каждой небазисной переменной,
рассчитываются косвенные тарифы c
по формуле: c
=
u
+v
.
Затем полученный план проверяют на
оптимальность по критерию оптимальности
.
Если для каждой незаполненной клетки
выполняется условие:
,
то исходный план является оптимальным.
Если некоторые
>0,
то необходимо перейти к новому плану
путем перемещения перевозки в клетку,
отвечающую условию max
.
Если таких клеток несколько, то выбирают
любую из них.
Для правильного перемещения перевозок, чтобы не нарушить ограничения задачи, строят так называемый цикл, т. е. замкнутый многоугольник, соединяющий выбранную клетку с ней же самой и проходящий через заполненные клетки.
Цикл строится следующим образом: вычёркиваются (мысленно) все строки и столбцы, содержащие ровно одну заполненную клетку, при этом считается, что выбранная клетка без поставки является заполненной; все оставшиеся после вычеркивания клетки составляют цикл и лежат в его углах, они соединяются ломаной линией.
В
каждую клетку цикла, начиная с
незаполненной, поочередно вписывают
знаки “+” и “-“. В клетках с отрицательными
знаками выбирается минимальная величина
поставки, обозначаемая как
.
В те вершины, которые имеют знак “+”
прибавляется поставка
,
а в вершинах со знаком “-“ поставки
уменьшаются на величину
.
При этом суммы поставок по строкам и
столбцам не изменяются . В результате
клетка, для которой строился цикл, станет
занятой, а в одной из бывших занятых
клеток окажется нулевая поставка и её
надо объявить свободной. Общее количество
заполненных клеток не изменится,
следовательно, новый план перевозок
является невырожденным.
Если в результате пересчета одновременно в нескольких ранее занятых клетках цикла поставки примут нулевые значения, то свободной объявляется лишь одна из них. Остальные считаются условно занятыми с нулевыми поставками.
Значения переменных, включенных в цикл, после пересчета переносятся в новую таблицу без изменений. Полученный новый план проверяется на оптимальность.
Такое
улучшение плана можно проводить
неоднократно до тех пор пока все критерии
для незаполненных клеток окажутся
0.
Затем вычисляется оптимальная стоимость
перевозок.
Вернёмся к нашему примеру. Найдём потенциалы u и v по занятым клеткам из соотношений:
u +v =c =1, u +v =c =3,
u
+v
=c
=2,
u
+v
=c
=
3,
u
+v
=c
=4,
u
+v
=c
=
6,
u
+v
=c
=0.
Получили семь уравнений с семью неизвестными. Полагая u =0, находим остальные неизвестные.
u =0, u =2, u =5, u =-1; v =-1, v =1, v =0, v =1.
Заносим значения потенциалов в таблицу 3.2.
Находим косвенные тарифы для незаполненных клеток и проверяем условия оптимальности:
c
=
u
+v
=
-1<c
=5,
=-6,
c
=
u
+v
=1<c
=4,
=-3,
с
=
u
+v
=0
<c
=2,
=-2
, с
=
u
+v
=1<c
=4,
=-3,
с
=u
+v
=6>c
=3,
=3>0,
с
=u
+v
=5>c
=3,
=2>0
c
=u
+v
=-2<c
=0,
=-2,
c
=u
+v
=0=c
=0,
=0,
c
=
u
+v
=-1<c
=0,
=-1.
Первый опорный план является не оптимальным, так как =3 >0 и =2 >0. Выбираем максимальное значение . Для улучшения плана клетку A B необходимо загрузить, т.е. переменную x ввести в состав базисных и построить для неё цикл пересчета поставок.
Таблица 3.2
Поставщики |
|
Потребители |
Запасы |
|||
B |
B |
B |
B |
|||
u /v |
-1 |
1 |
0 |
1 |
||
A |
0 |
5 |
4 |
2 |
1 40 |
40 |
A |
2 |
4 |
20 |
2 60 |
+ 3 0 |
80 |
A |
5 |
4 70 |
|
3 |
- 6 10 |
80 |
A |
-1 |
0 |
0 |
0 |
0 10 |
10 |
Потребности |
70 |
20 |
60 |
60 |
210= 210 |
|
Мысленно вычеркнем в таблице 3.2 первый, и третий столбцы, а также первую и четвертую строки, так как они содержат по одной заполненной клетке. Оставшиеся четыре заполненные клетки, включая введенную нами, образуют цикл. В клетках цикла, начиная с клетки (3,2), проставим поочередно знаки “+” и “-“. В клетках с отрицательными знаками выберем наименьшее значение из поставок =min (20,10)=10. Переменные, включенные в цикл корректируются на величину в зависимости от знаков: x =10, x =10, x =10, x =0. Переменную с нулевой поставкой объявляем свободной. Новый план заносим в таблицу 3.3.
Таблица 3.3
Поставщики |
|
Потребители |
Запасы |
|||
B |
B |
B |
B |
|||
u /v |
2 |
1 |
0 |
1 |
||
A |
0 |
5 |
4 |
2 |
1 40 |
40 |
A |
2 |
4 |
10 |
2
60 |
10 |
80 |
A |
2 |
70 |
+ 3 10 |
3 |
6
|
80 |
A |
-1 |
0
|
0
|
0 |
_ 0 10 |
10 |
Потребности |
70 |
20 |
60 |
60 |
210= 210 |
|
План транспортной задачи, приведенный в таблице 3.3 невырожденный, число занятых клеток равно семи. Значение целевой функции равно:
F(X
)
=1
(тыс.
руб.)
Новый план проверяем на оптимальность. Для этого строим систему потенциалов по методике, указанной на предыдущем шаге. Рассчитанные потенциалы заносим в таблицу 3.3. Полученный опорный план является не оптимальным, так как =1>0. Для клетки A B строим цикл. В клетках с отрицательными знаками выберем наименьшее значение из поставок =min (70,10,10)=10. Переменные, включенные в цикл, корректируются на величину в зависимости от знаков. Третий опорный план приведен в таблице 3.4.
Таблица 3.4
Поставщики
|
|
Потребители |
Запасы |
|||
B |
B |
B |
B |
|||
u /v |
1 |
0 |
0 |
1 |
||
A |
0 |
5 |
4 |
2 |
1 40 |
40 |
A |
2 |
4 |
3
|
2 60 |
3 20 |
80 |
A |
3 |
4 60 |
3 20 |
3 |
6
|
80 |
A |
-1 |
0 10 |
0 |
0 |
0 0 |
10 |
Потребности |
70 |
20 |
60 |
60 |
210= 210 |
|
План транспортной задачи, приведенный в таблице 3.4 вырожденный, так как число занятых клеток равно шести. При переходе к новому опорному плану клетка A B становится занятой, а две клетки A B и A B освобождаются. Для продолжения решения в одну из освободившихся клеток записываем нуль. Предпочтение отдаем клетке A B , так как c <c .
Проверка плана на оптимальность показывает, что третий опорный план является оптимальным, поскольку все оценки свободных клеток . Оптимальный план имеет вид:
X
=
Целевая функция равна:
F(X)=1
+2
(тыс.руб.)
Анализ оптимального плана.
Из первого склада необходимо весь груз направить в четвертый магазин, из второго склада – в третий и четвертый магазины в количестве 60 и 20 ед. , а груз с третьего склада следует вывозить в первый и второй магазины в количестве 60 и 20 ед. Потребность первого магазина остается неудовлетворенной на 10 ед. Общая стоимость доставки груза потребителям будет минимальной и составит 520 тыс. руб.
Оптимальный план является вырожденным ,так как базисная переменная x =0. Задача имеет множество оптимальных планов, поскольку оценка =0.

-
3
3
_
+
3
_
4