
- •Глава 1 Оптимизационные экономико-математические модели
- •1.1 Общая задача оптимизации
- •1.2 Использование средств ms Excel для построения экономико-математических моделей и нахождения оптимального решения
- •1.3 Линейное программирование
- •1.3.1 Графический метод решения задач линейного программирования
- •1.3.2 Симплекс-метод решения задач линейного программирования
- •1.3.3 Специальные задачи линейного программирования
- •Контрольные вопросы
- •1.4 Варианты заданий по теме
1.3.3 Специальные задачи линейного программирования
Перевозки товаров различными транспортными средствами в ряде случаев приводят к таким нежелательным явлениям, как порожние пробеги, простои, встречные и нерациональные перевозки. Для их исключения используются методы оптимального планирования перевозок, в частности, такая экономико-математическая модель, как «транспортная задача».
Под транспортной задачей в настоящее время понимают комплекс задач, имеющих специфические постановку и алгоритм решения.
Простейшим примером транспортной задачи является задача о планировании перевозок некоторого продукта из конечного числа пунктов отправления в конечное число пунктов назначения при обеспечении минимальных затрат на выполнение данной операции.
Постановку и методику решения подобных задач рассмотрим с использованием следующего примера.
Три завода некоторого объединения, территориально удалённые друг от друга, выпускают однотипную продукцию. Ежедневные объёмы производства на заводах составляют соответственно 120, 100 и 80 единиц некоторого товара. В конце рабочего дня товар должен быть развезён по оптово-розничным складам. Складов всего три. Причём они, так же как и заводы располагаются в разных районах региона. Ежедневный спрос на продукцию объединения у менеджеров складов соответственно 90, 90, 120 единиц продукции заводов. Известны также показатели затрат на перевозку 1 ед. товара от каждого из заводов до каждого из складов.
Руководству заводов требуется составить оптимальный план перевозок, приводящий к наименьшим затратам на выполнение данной операции. Под планом перевозок понимается матрица:
в
которой
– количество единиц товара планируемого
к перевозке от i-го
завода на j-ый
склад, а под затратами понимается матрица
в
которой
– стоимость перевозки единицы груза
от i-го
завода на j-ый
склад.
Для решения задачи исходные данные удобно свести в таблицу табл. 1.4, где числа 7, 6, 4 и т.д. обозначают стоимость перевозок, т.е. . Каждая клетка таблицы индексирована индексами i и j.
Таблица 1.4
Заводы |
Объём производства |
Потребители и их спрос |
||
j=1 |
j=2 |
j=3 |
||
90 |
90 |
120 |
||
i=1 |
120 |
7 |
6 |
4 |
i=2 |
100 |
3 |
8 |
5 |
i=3 |
80 |
2 |
3 |
7 |
Математическая постановка данной задачи имеет вид: найти оптимальный план перевозок, доставляющий минимум целевой функции. Целевая функция описывается следующим образом:
Транспортная задача относится к классу задач линейного программирования. Решение таких задач обычно связано с получением опорного допустимого плана и последующим его улучшением.
Опорный план может быть получен различными методами. Рассмотрим метод «наименьших затрат». Суть метода заключается в том, что в таблице затрат выбирается клетка с наименьшем значением, т.е. клетка [3;1]=2. Третий завод может поставить в эту клетку не более 80 ед. груза, а первый склад может принять не более 90 е.д. Следовательно, максимальный грузопоток в этой клетке будет 80 ед. Однако, на первый склад нужно поставить ещё 10 ед. груза. Мы можем их поставить как из первого завода, так и со второго. Т.к. затраты на перевозку на склад №1 меньше у второго завода, то запланируем перевозку десяти ед. груза с него на первый склад.
Далее, аналогичным образом, распределяем остальной грузопоток. Со второго завода вывезено 10 ед., а 90 ед. ещё осталось. Остаток можно вывести как на второй склад так и на третий, но минимальные затраты на перевозку будут в случае транспортировки груза на склад №3. Полный опорный план представлен в табл. 1.5.
Таблица 1.5
Заводы |
Объём производства |
Потребители и их спрос |
|||||||||||
j=1 |
j=2 |
j=3 |
|||||||||||
90 |
90 |
120 |
|||||||||||
i=1 |
120 |
7 |
|
|
6 |
|
|
4 |
|
|
|||
|
90 |
30 |
|||||||||||
|
|
|
|
|
|
|
|
|
|||||
i=2 |
100 |
3 |
|
|
8 |
|
|
5 |
|
|
|||
10 |
|
90 |
|||||||||||
|
|
|
|
|
|
|
|
|
|||||
i=3 |
80 |
2 |
|
|
3 |
|
|
7 |
|
|
|||
80 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
Проверим полученный опорный план. Сумма перевозок по строкам должна совпадать с соответствующими объёмами производства каждого из заводов. Сумма перевозок по столбцам должна совпадать с потребностью складов. По текущему плану перевозок целевая функция равна 1300 ден.ед.
Следующим
этапом решения задачи, является
последовательное улучшение плана
перевозок до оптимального. Для чего
введём систему потенциалов
и
.
При расчёте
потенциалов нужно руководствоваться
следующим:
1)
всегда равно нулю;
2)
.
При
расчёте нужно использовать только
клетки, содержащие план перевозок.
Например, зная, что
и что по строке 1 в плане перевозок
учувствуют ячейки [i = 1; j =2]
и [i = 1; j =3],
можем найти значения
и
.
Для чего решим уравнения
и
.
Зная значение
можно найти значение
,
после найти значения
и
.
Полный расчёт приведён в табл. 1.6.
Таблица 1.6
-
Объём производства
Потребители и их спрос
u
j=1
j=2
j=3
90
90
120
i=1
120
7
6
4
90
30
u1 = 0
5
i=2
100
3
8
5
10
90
u2 = 1
1
i=3
80
2
3
7
80
u3 = 0
-3
3
v
v1 = 2
v2 = 6
v3 = 4
В клетках, не участвующих в грузопотоке, рассчитаем разницу между стоимостью перевозок и суммой u и v. В таблице эта разница обрамлена рамкой. Данная разница называется коэффициентом напряжённости. В ячейку с самым отрицательным коэффициентом нужно переместить часть грузопотока и перестроить план перевозок. Оптимальный план перевозок будет тот, в котором коэффициенты напряжённости будут больше или равны нулю.
В таблице 6 ячейкой с отрицательным коэффициентом напряжённости является ячейка [i = 3; j = 1]. В эту ячейку нужно направить грузопоток, т.е. пересчитать план перевозок. Для изменения грузопотока составляется цепь пересчёта. Цепь представляет собой прямоугольную фигуру, одна из вершин которой находится в ячейке с отрицательным коэффициентом напряжённости, а остальные в ячейках, участвующих в грузоперевозке.
Поочерёдно каждой из вершин цепи (начиная с ячейки с отрицательным коэффициентом) присваиваются знаки «+» и «-». Долее выбирается объём изменения грузопотока по минимальному значению плана перевозок выпадающих на вершины со знаком «-» табл. 1.7.
Таблица 1.7
Заводы |
Объём производства |
Потребители и их спрос |
u |
|||||||||||
j=1 |
j=2 |
j=3 |
||||||||||||
90 |
90 |
120 |
||||||||||||
i=1 |
120 |
7 |
|
|
6 |
|
|
4 |
|
|
u1 = 0 |
|||
|
90 (-80) |
30 (+80) |
|
|||||||||||
|
|
5 |
|
|
|
|
|
|
|
|||||
i=2 |
100 |
3 |
|
|
8 |
|
|
5 |
|
|
u2 = 1 |
|||
|
10 |
(+80) |
|
|
|
|
90 |
(-80) |
|
|||||
|
|
|
|
|
1 |
|
|
|
|
|||||
i=3 |
80 |
2 |
|
|
3 |
|
|
7 |
|
|
u3 = 0 |
|||
80 (-80) |
(+80) |
|
|
|||||||||||
|
|
|
|
|
-3 |
|
|
3 |
|
|||||
|
v |
v1 = 2 |
v2 = 6 |
v3 = 4 |
|
Измененный план грузоперевозок, обрабатывается по уже описанному алгоритму и приведён в табл. 1.8.
После первой итерации в таблице 8 нет отрицательных коэффициентов, следовательно, полученный план грузоперевозок является оптимальным. Затраты на перевозку (W) составят 1 060 ден. ед.
В рассмотренном примере объёмы производства заводов были равны объёмам спроса. В случаях, когда это условие не выполняется, в задачу вводят фиктивного поставщика или потребителя доставляющих или потребляющих недостающие для равенства объёмы товаров.
Таблица 1.8
Заводы |
Объём производства |
Потребители и их спрос |
u |
|||||||||
j=1 |
j=2 |
j=3 |
||||||||||
90 |
90 |
120 |
||||||||||
i=1 |
120 |
7 |
|
|
6 |
|
|
4 |
|
|
u1 =0 |
|
|
10 |
110 |
|
|||||||||
|
|
5 |
|
|
|
|
|
|
|
|||
i=2 |
100 |
3 |
|
|
8 |
|
|
5 |
|
|
u2 =1 |
|
90 |
|
10 |
|
|||||||||
|
|
|
|
|
1 |
|
|
|
|
|||
i=3 |
80 |
2 |
|
|
3 |
|
|
7 |
|
|
u3 =-1 |
|
|
80 |
|
|
|||||||||
|
|
3 |
|
|
-3 |
|
|
6 |
|
|||
|
v |
v1 = 2 |
v2 = 6 |
v3 = 4 |
|