- •Линейное программирование постановка задачи
- •Основные понятия линейного программирования (лп)
- •Графический метод решения простейших задач лп
- •Метод последовательного улучшения решения задачи лп (симплекс-метод)
- •Симплекс-таблица № 1
- •Симплекс-таблица № 3
- •Задача об оптимальном планировании производства
- •Симплекс-таблица № 1
- •Симплекс-таблица № 2
- •Симплекс-таблица № 3
- •Пара взаимно двойственных задач лп. Основные теоремы теории двойственных задач и их применение к решению задач лп
- •Транспортная задача
Транспортная задача
Классическая модель транспортной задачи формулируется следующим образом.
Некоторый
однородный продукт, сосредоточенный у
m
поставщиков Аi
в количестве ai
единиц
соответственно, необходимо доставить
к потребителям Вj
в количестве bj
единиц. Известна стоимость cij
перевозки единицы груза от i-го
поставщика к j-му
потребителю. Необходимо составить план
перевозок, позволяющий вывезти все
грузы, полностью удовлетворить потребности
и имеющий минимальную стоимость.
Решим задачу для условного случая, когда фамилия студента записана в журнале группы под № 42. Исходные данные выбираем из табл. 5 раздела 3.
Так
как 42 число чётное, то принимаем число
поставщиков равным пяти
,
а число потребителей Вj,
равным четырём
.
При этом число десятков в номере а
= 4, а число единиц b
= 2. Подставив
эти значения в табл. 5, получим исходные
данные задачи. ai,
bj,
cij:
Таблица 5.1
|
B1 |
B2 |
B3 |
B4 |
ai |
A1 |
6 |
6 |
7 |
8 |
22 |
A2 |
7 |
8 |
4 |
8 |
26 |
A3 |
7 |
5 |
9 |
8 |
48 |
A4 |
11 |
11 |
7 |
7 |
14 |
A5 |
8 |
6 |
4 |
4 |
40 |
bj |
14 |
27 |
36 |
17 |
|
Обозначим
через хij
количество единиц груза, запланированных
к перевозке от i-го
поставщика к j-му
потребителю. Тогда математическую
модель задачи можно записать следующим
образом. Найти такую матрицу X=(
хij)
,
чтобы функция
— общая стоимость перевозок достигала наименьшего значения при ограничениях:
(4.27)
Так как минимизируемая функция f(x) есть линейная относительно переменных хij и ограничения задачи (4.27) также линейны, то сформулированная задача является задачей ЛП. Коротко её можно записать
так:
(4.28)
(4.29)
Транспортная
задача называется закрытой,
если выполняется условие равенства
суммарного объёма запасов
и суммарного объёма потребностей
,
(т.е. если
=
)
и называется открытой
в противном случае (т.е. если
).
Справедлива следующая
Теорема 7. Любая закрытая транспортная задача имеет решение.
Задача (4.26) – (4.29) является открытой задачей, так как
Сведём
задачу к закрытой, введя фиктивного
B5=Dф
потребителя с потребностью
единиц продукции. При этом стоимость
перевозок от любого из поставщиков Аi
к потребителю B5
полагаем
равными нулю, т.е.ci5=0,
.
Согласно теореме 7 такая задача разрешима.
Новая задача коротко запишется так:
(4.30)
(4.31)
Исходные
данные «новой» задачи запишем в табл.
5.2, указывая запасы ai=
,
потребности bj=
и в левом верхнем углу клетки cij
— стоимости перевозок от i-го
поставщика к j-му
потребителю
.
Применим для решения задачи метод потенциалов. Это итерационный метод, основными этапами которого являются следующие:
построение первоначального опорного плана;
проверка построенного плана на оптимальность; если план оптимальный, то задача решена, если нет, то — шаг 3;
построение нового плана (с использованием системы потенциалов), на котором значение функции стоимости перевозок будет меньше, чем на предыдущем.
Таблица 5.2
Ai |
Bj |
B1 |
B2 |
B3 |
B4 |
B5 |
ai |
|
6 |
6 |
2 |
1 |
-7 |
||
A1 |
0 |
14 6 |
8 6 |
7 |
8 |
0 |
22 |
A2 |
2 |
1 7 |
19 8 |
7 4 |
8 |
0 |
26 |
A3 |
7 |
6 7 |
8 5 |
29 9 |
17 8 |
2 0 |
48 |
A4 |
7 |
2 11 |
2 11 |
2 7 |
1 7 |
14 0 |
14 |
A5 |
7 |
5 8 |
7 6 |
5 4 |
4 4 |
40 0 |
40 |
bj |
14 |
27 |
36 |
17 |
56 |
|
|
Для построения первоначального опорного плана применим метод «северо-западного угла». Начинаем распределять продукцию с клетки (1.1).
Поместим в эту клетку наименьшее из чисел a1 и b1, т.е. x11=min (a1, b1)=
=min (22,14)=14 (запишем его в левый нижний угол клетки). Тогда запрос первого потребителя В1 будет полностью удовлетворен, и первый столбец исключается из рассмотрения. Двигаемся далее по первой строке вправо. В клетку (1.2) запишем x12=min(a1-b1, b2)=min(22-14,27)=8, исключаем из рассмотрения первую строку, так как все запасы поставщика А1 использованы.
Переходим
ко второй строке. В клетку (2.2) запишем
x22=min(a2,
b2-x12)=min(26,27-8)=19
единиц продукции из запасов поставщика
А2,
тогда запрос потребителя В2
будет удовлетворен, а остаток продукции
у поставщика А2
, равный 26–19=7 единицам, помещаем в клетку
(2.3) (х23
= 7). Исключаем из рассмотрения вторую
строку и второй столбец. Двигаясь по
третьему столбцу вниз, полагаем х33=29,
тогда удовлетворен полностью запрос
потребителя В3,
остаток продукта у А3,
равный 48–29=19, распределяем между клетками
(3.4) (х34=17)
и (3.5) (х35=2).
При этом полностью удовлетворены
потребности потребителя В4.
Остальную продукцию распределим, положив
х45=14
и х55=40.
Остальные хij
полагаем равными нулю, им соответствуют
свободные клетки табл. 5.2. Построенный
таким образом план является допустимым,
так как позволяет удовлетворить запросы
всех потребителей (сумма хij
по столбцам равна bj)
и использовать запасы всех поставщиков
.
При этом переменные хij>0, соответствующие занятым клеткам, являются базисными, а переменные хij=0, соответствующие пустым клеткам таблицы, — свободными. Напомним, что допустимый план транспортной задачи (Т3) называется невырожденным, если число базисных переменных хij равно рангу m+n-1 матрицы ограничений (4.31). При m=5, n=5 число базисных переменных должно быть равно 5+5-1=9. Таким образом, построенный план х11 =14, х12 =8, х22 =19, х23 =7, х33 =29, х34 =17, х35 =2, х45=14, х55 =40 является невырожденным.
Отметим, что если план получился вырожденным, т.е. число базисных переменных хij меньше m+n-1, то в соответствующие свободные клетки записывают нулевые значения хij и эти клетки считаются занятыми, т.е. базисными.
Вычислим значение целевой функции f(x) на первом опорном плане:
f(x1)=14·6+8·6+19·8+7·4+29·9+17·8=709 (единиц стоимости).
Переходим ко второму этапу итерационного метода, т.е. построенный план проверим на оптимальность. Для этого каждой строке таблицы 5.2 поставим в соответствие переменную ui , называемую потенциалом строки (или потенциалом поставщика) и каждому столбцу — переменную vj — потенциал столбца (или потребителя). Потенциалы ui и vj — это двойственные переменные к переменным хij задачи (4.30), (4.31). Справедлива
Теорема
8 (критерий
оптимальности опорного плана теоремы
3). Если для
некоторого опорного плана x*=(хij)
ТЗ существуют такие числа ui
и vj
, что ui
+ vj
= cij
для х*ij
> 0 и
ui
+ vj
cij
для х*ij
= 0 для
всех
и
,
то x*=(хij)
— оптимальный план ТЗ.
Теорема 8 позволяет проверить первый опорный план на оптимальность. Определим сначала потенциалы строк и столбцов таблицы 5.2, используя условие ui + vj = cij для всех базисных клеток таблицы. Получаем систему уравнений:
Система состоит из девяти уравнений с десятью неизвестными, поэтому положим u1=0, а остальные неизвестные определим последовательно, рассматривая уравнения системы:
Полученные значения потенциалов запишем в табл. 5.2 в одной строке с потребителями и в одном столбце с поставщиками.
Далее
для каждой свободной клетки табл. 5.2,
т.е. для всех хij=0,
определим числа
:
По
теореме 8 для оптимального плана все
числа
должны быть неположительны
.
Среди чисел
,
вычисленных по таблице 5.2, есть
положительные, следовательно, первый
опорный план х1
не является оптимальным. Значения
>0
также внесены в табл. в левом верхнем
углу клетки и обведены рамкой.
Напомним, что сумму потенциалов свободной клетки ui+vj называют фиктивной стоимостью перевозки единицы продукции от i-го поставщика к j-му потребителю. По известному критерию, если фиктивная стоимость меньше или равна реальной стоимости для всех свободных клеток, то план оптимальный.
Переходим
к третьему этапу метода потенциалов —
построим новый опорный план, улучшающий
значение целевой функции. Для этого
среди чисел
>0
выбираем наибольшее
и свободную переменную x32
введём в число базисных переменных,
т.е. перераспределим перевозки так,
чтобы клетка (3.2) стала базисной, а одна
из занятых клеток — свободной, но при
этом не нарушился баланс запасов и
заявок. Построим цикл, содержащий клетку
(3.2). Напомним прежде, что циклом
в табл. ТЗ называется ломаная линия,
вершины которой расположены в занятых
клетках таблицы, а звенья — вдоль строк
и столбцов, причём в каждой вершине
цикла встречаются ровно два звена, одно
из которых находится в строке, а другое
в столбце. Для пустой клетки (3.2) существует
единственный цикл из занятых клеток
(3.3), (2.3), (2.2), включающих эту пустую клетку
(рис. 4 а)
Рис. 4
Производим перераспределение объёмов поставок грузов по данному циклу так, чтобы клетка (3.2) стала занятой и при этом сохранился баланс объёмов грузов по строкам и столбцам. Для этого присвоим знак «+» клетке (3.2), а остальным клеткам цикла поочерёдно знаки минус и плюс. Знак «+» означает, что объем поставок в эту клетку будет увеличен на Т>0 единиц груза , «-» — объём будет уменьшаться на Т единиц. Максимальный объём груза Т, который можно переместить по циклу пустой клетки, равен наименьшему объему поставок в клетках цикла, отмеченных знаком «-», т.е.
Т=min(29.19)=19.
В результате получим новый преобразованный цикл клетки (3.2) (рис. 4 б). Заменяя в таблице 5.2 исходный цикл преобразованным, получим новый опорный план, который записан в табл. 5.3.
Таблица 5.3
|
6 |
6 |
10 |
9 |
1 |
ai |
0 |
14 6 |
8 6 |
3 7 |
8 |
1 0 |
22 |
-6 |
7 |
8 |
26 4 |
8 |
0 |
26 |
-1 |
7 |
19 5 |
10 - 9 |
17 8 |
2 + 0 |
48 |
-1 |
11 |
11 |
2 7 |
1 7 |
14 0 |
14 |
-1 |
8 |
6 |
5 + 4 |
4 4 |
40 0 |
40 |
bj |
14 |
27 |
36 |
17 |
56 |
|
Для новой таблицы проверим, равна ли сумма элементов i-ой строки числу ai, а сумма элементов j-го столбца — bj. Вычислим значение целевой функции на новом опорном плане:
f(x2)=14·6+8·6+26·4+19·5+10·9+17·8=557 (ед).
Стоимость
перевозок уменьшилась на величину
(ед). Новый опорный план следует проверить
на оптимальность; для этого вычислим
потенциалы строк и столбцов табл. 5.3, по
занятым клеткам из условия
Результаты записываем в таблицу. Для
свободных клеток вычисляем числа
и положительные значения
записываем в левом верхнем углу клетки
и обводим рамкой. Так как среди последних
есть положительные, то план х2
не является оптимальным. Наибольшим из
положительных чисел
является
.
Строим цикл для клетки (5.3), в табл. 5.3 он
отмечен сплошной линией, вершинам цикла
приписываем знаки «+» и «-». Объем
перевозок
Новый опорный план и соответствующие ему данные занесены в табл. 5.4.
Таблица 5.4
|
6 |
6 |
5 |
9 |
1 |
|
0 |
16 14 |
6 8 |
7 |
1 8
|
1 0 |
22 |
-1 |
7 |
8 |
26 4 |
8 |
0 |
26 |
-1 |
7 |
19 5 |
9 |
17 - 8 |
12 + 0 |
48 |
-1 |
11 |
11 |
7 |
1 7 |
14 0 |
14 |
-1 |
8 |
6 |
10 4 |
4 + 4 |
30 - 0 |
40 |
|
14 |
27 |
36 |
17 |
56 |
|
Новое значение целевой функции
Проверим
построенный план на оптимальность,
вычисляя новые значения потенциалов
строк и столбцов и новые значения
для незанятых клеток таблицы. Среди
чисел
есть положительные, следовательно, план
х3
не оптимальный. Наибольшее из положительных
чисел
равно
,
строим цикл для клетки (5.4),
Новый опорный план заносим в табл. 5.5 и вычисляем соответствующее значение целевой функции:
Таблица 5.5
|
6 |
6 |
5 |
5 |
1 |
|
0 |
14 6 |
8 - 6 |
7 |
8 |
1 + 0 |
22 |
-1 |
7 |
8 |
26 4 |
8 |
0 |
26 |
-1 |
7 |
19 + 5 |
9 |
8 |
29 - 0 |
48 |
-1 |
11 |
11 |
7 |
7 |
14 0 |
14 |
-1 |
8 |
6 |
10 4 |
17 4 |
13 0 |
40 |
|
14 |
27 |
36 |
17 |
56 |
|
Вычисляем
потенциалы строк и столбцов табл. 5.5, а
также числа
.
Среди них есть положительное, поэтому
план не оптимальный. Строим цикл для
клетки (1,5) при
Таблица 5.6
|
6 |
6 |
5 |
5 |
1 |
|
0 |
14 6 |
8 - 6 |
7 |
8 |
1 + 0 |
22 |
-1 |
7 |
8 |
26 4 |
8 |
0 |
26 |
-1 |
7 |
19 + 5 |
9 |
8 |
29 0 |
48 |
-1 |
11 |
11 |
7 |
7 |
14 0 |
14 |
-1 |
8 |
6 |
10 4 |
17 4 |
13 0 |
40 |
|
14 |
27 |
36 |
17 |
56 |
|
Вычисляем
потенциалы строк и столбцов табл. 5.6,
.
Так как для таблицы 5.6 все числа
,
то план х5
— оптимальный, при этом оптимальная
стоимость перевозок равна 431 денежной
единице.
Для поставленной ТЗ рассчитаем первоначальный опорный план х1 методом «минимальной стоимости».
Таблица 5.7
|
В1 |
В2 |
В3 |
В4 |
В5 |
|
А1 |
14 6 |
6 |
7 |
8 |
8 0 |
22 |
А2 |
7 |
8 |
26 4 |
8 |
0 |
26 |
А3 |
7 |
27 5 |
9 |
8 |
21 0 |
48 |
А4 |
11 |
11 |
7 |
7 |
14 0 |
14 |
А5 |
8 |
6 |
10 4 |
17 4 |
13 0 |
40 |
|
14 |
27 |
36 |
17 |
56 |
|
Согласно этому методу в таблице стоимостей cij находим минимальный элемент (без учёта фиктивных перевозок) с23=4 и все запасы поставщика А2 — 26 единиц груза — перевозим к потребителю В3. Строку вторую вычёркиваем. Из оставшихся берём наименьшее cij (с53=4) и, чтобы удовлетворить запрос В3, перебрасываем 10 единиц груза от А5 к В3. Столбец третий вычёркиваем. Так как с54=4, то запрос потребителя В4 удовлетворим за счет А5, столбец четвёртый вычёркиваем. Из оставшихся — наименьшее значение с32=5, поэтому 27 единиц груза перевозим от А3 к В2, вычёркиваем столбец второй и неудовлетворенный запрос первого потребителя — 14 единиц — удовлетворим за счёт А1 с минимальной стоимостью перевозок с11=6 денежных единиц. Таким образом, удовлетворены запросы всех действительных потребителей, а остатки продукции поставщиков А1 (8 единиц), А3 (21 единица), А4 (14) и А5 (13) можно направить фиктивному потребителю. Получим оптимальный план, совпадающий с полученным ранее в табл. 5.6.
Следует иметь в виду, что далеко не всегда метод минимальной стоимости позволяет получить опорный план, являющийся сразу оптимальным, как в данной задаче. Однако иногда этот метод позволяет существенно сократить число итераций в методе потенциалов при решении транспортной задачи.
