- •1. Оптимизация транспортной системы
- •Оптимальное распределение ресурсов
- •К лабораторной работе №1
- •1. Транспортная задача линейного программирования
- •1.1. Общее решение Постановка задачи
- •Целевая функция – минимум суммарных затрат на перевозки
- •Решение задачи
- •1.2. Приведение транспортной задачи к правильному балансу
- •Принцип оптимальности
- •2.2. Оптимальное распределение ресурсов
- •С учётом сказанного, основные функциональные уравнения Беллмана для задачи распределения ресурсов имеет вид:
- •Пример 2.
- •Динамическое распределение ресурсов
- •Задача №5
К лабораторной работе №1
1. Транспортная задача линейного программирования
1.1. Общее решение Постановка задачи
Имеется
n
– пунктов отправления: A1,
A2,…,
Ai,…,
An
, в которых
имеются однотипные продукты в количествах:
a1,
a2,…,
ai,…,
an,
и m-пунктов
назначения B1,
B2,…,
Bj,…,
Bm
с
потребностями в продуктах (заявками) в
количествах b1,
b2,…,
bj,…,
bm.
Все пункты отправления и пункты назначения
связаны между собой транспортной сетью.
Транспортные издержки задаются в виде
матрицы
где ci,j – затраты на перевозку единицы продукта из пункта Ai в пункт Bj.
Задача относится к линейному программированию, так как линейна целевая функция W и линейны все ограничения области допустимых решений (ОДР).
Решением задачи является оптимальный план перевозок в виде матрицы
где хi,j – объём перевозки из пункта Ai в пункт Bj.
Целевая функция – минимум суммарных затрат на перевозки
(1)
Область допустимых решений:
Объём перевозки не может быть отрицательным
xi,j 0, 1 i n, 1 j m. (2)
Баланс по отправлению
1
i
n.
(3)
Баланс по назначению
1
j
m.
(4)
Баланс запасов и потребностей в продуктах
(5)
Если
условие (5) выполнено, то задачу называют
с правильным балансом. Только такая
задача имеет математическое решение.
Если задача с неправильным балансом,
т.е. имеет место избыток продукта (
)
или его дефицит (
),
то для решения её нужно привести к
правильному балансу (см. п. 1.2.).
Решение задачи
Транспортная задача решается в два этапа: составление опорного решения и улучшение решения – нахождение оптимального решения.
Опорное решение проще всего составляется методом северо-западного (левого верхнего) угла. В начале определяется x1,1 = min(a1, b1). Затем переходят к следующей соседней перевозке, куда заносят остаток от a1 или b1. Процедура продолжается слева–направо и сверху–вниз пока ни будут распределены все перевозки. В задаче с правильным балансом на перевозке xn,m условия (3) и (4) выполняются. В опорном решении выполняется условие – число ненулевых перевозок k = n + m – 1, если это условие не выполнено, вводится фиктивная ненулевая перевозка с бесконечно малым объёмом (xij = ).
Оптимальное решение находят методом потенциалов или фиктивных стоимостей. Потенциал i – это фиктивный платёж пункта отправления Ai за вывоз единицы продукта, потенциал j – это фиктивный платёж пункта назначения Bj за доставку единицы продукта. Суммарный потенциал
c*i,j = i +j. (6)
Для ненулевых перевозок c*i,j = ci,j , откуда
j = cij - i, (7)
i = cij - j. (8)
Число неизвестных i и j равно n + m, а уравнений k = n + m – 1, т.е. уравнений на одно меньше, чем неизвестных, поэтому одному из потенциалов нужно задать любое значение. Начинают решение задачи с присвоения 1 = 0. Далее по формулам (7) и (8) рассчитывают i и j для всех ненулевых перевозок. Затем для всех нулевых перевозок по формуле (6) рассчитывают значения c*i,j. Маршруты Ai Bj, для которых c*i,j > ci,j , более выгодны, чем использованные в рассматриваемом плане.
Перенос единицы перевозки на маршрут Ai Bj даёт экономию, равную c*i,j - ci,j. Выбирается маршрут Ai Bj, для которого max(c*i,j - ci,j) и для него строится цикл переноса перевозки. Цикл переноса перевозки представляет собой прямоугольную фигуру, одна из вершин которой находится в нулевой перевозке, соответствующей выбранному наиболее выгодному маршруту. Остальные вершины находятся в ненулевых перевозках. Каждой нулевой перевозке соответствует единственный цикл переноса перевозки. В пункте нулевой перевозки ставится знак «+», далее в вершинах цикла переноса перевозок знаки «-» и «+» чередуются. Они соответствуют увеличиваемым и уменьшаемым перевозкам. Выбирается меньшая из уменьшаемых перевозок, и она по циклу переносится на место нулевой перевозки. При этом появляется одна новая ненулевая перевозка и одна ненулевая становится нулевой, т.е. число ненулевых перевозок сохраняется (k = n + m – 1) и сохраняется все условия (3), (4). Процедура улучшения плана перевозок повторяется. Условие оптимального решения – для всех нулевых перевозок c*i,j ci,j.
Пример 1. Транспортная задача задана в виде таблицы 1. Здесь приведены объёма поставок ai (i=1,3), объёмы заказов bj (j=1,4) и транспортные издержки cij (в правых верхних углах).
Решение начинается с составления опорного плана методом левого верхнего (северо-западного) угла. Результат приведен в этой же таблице.
Таблица 1
-
Пункты отправления
Пункты назначения
Объёмы поставок ai
Потенциалы i
В1
В2
В3
В4
А1
9
8 > 1
10 > 3
5 6
70
0
70
-
+
А2
5
4
6
1 10
180
-4
40 +
- 80
60
А3
6 > 1
5 > 4
7
2
130
-3
10
120
Объёмы заказов bj
110
80
70
120
Потенциалы j
9
8
10
5
Транспортные издержки опорного плана равны W0 = 9 70+5 40+4 80 + 6 60 + 7 10 + 2 120 = 1820.
На втором этапе определяется оптимальный план перевозок путём последовательного улучшения плана методом потенциалов. Потенциалы или фиктивные платежи определяются по формулам:
c*ij = i + j ; j = cij - i ; i = cij - j .
Принимаем 1 = 0. Далее для ненулевых перевозок рассчитываем
1 = c11 - 1 = 9 - 0 = 9; 2 = c21 - 1 = 5 – 9 = - 4; 2 = c22 - 2 =
= 4 – (-4) = 8; 3 = c23 - 2 = 6 – (-4) = 10; 3 = c33 - 3 = 7 – 10 = -3;
4 = c34 - 3 = 2 – (-3) = 5.
Для нулевых перевозок c*12 = 1 + 2 = 8 + 0 = 8, аналогично: c*13 = 10; c*14 = 5; c*24 = 1; c*31 = 6; c*32 = 5. Находим нулевые перевозки, для которых потенциалы больше транспортных издержек; это c*12 > c12; c*13 >c13; c*31> c*31; c*32 > c*32 . Наибольшие разности c*12 - c12 = 7 и c*13 - c13 = 7.
Результаты расчётов приведены в таблице 1. Для нулевой перевозки А2 В2 составляем цикл переноса перевозки, который представляет собой прямоугольную фигуру, в одной из вершин которой нулевая перевозка, а в остальных – ненулевые перевозки. Максимально возможный объём переноса перевозки равен меньшей из уменьшаемых величин, а именно 70 единиц (А2 В2). Улучшенный план приведен в таблице 2, W1 = 1820 – 7 70=1330.
Таблица 2
-
Пункты отправления
Пункты назначения
Объёмы поставок ai
Потенциалы i
В1
В2
В3
В4
А1
2 9
1
3 3
2 6
70
0
70
А2
5
4
6
1 10
180
3
110
-10
+ 60
А3
6 > 1
5 > 4
7
2
130
4
+
- 10
120
Объёмы заказов bj
110
80
70
120
Потенциалы j
2
2
3
-2
Второй шаг оптимизации приведен в таблице 2, а его результат – в таблице 3. W2 = 1330 – 5 10 = 1280.
Таблица 3
-
Пункты отправления
Пункты назначения
Объёмы поставок ai
Потенциалы i
В1
В2
В3
В4
А1
2 9
1
3 3
3 6
70
0
70
А2
5
4
6
6 10
180
3
100
10
70
А3
1
0 4
2 7
2
130
-1
10
120
Объёмы заказов bj
110
80
70
120
Потенциалы j
2
1
3
3
Признак оптимальности плана: для всех нулевых перевозок c*ij cij. План, приведенный в таблице 3, удовлетворяет условию оптимальности.
Таким образом, оптимальный план перевозок приведен в таблице 3. Минимальные затраты на перевозки составляют Wmin = 1280, по сравнению с исходным планом экономия составляет 540 или примерно 42%.
