Транспортная задача (презентация)

advertisement
Тема 4. Сетевые модели.
Целочисленное
программирование.
§ 4.1. Понятие графа. Ориентированные графы. Дерево
N   x  конечное множество вершин или узлов,
N  n  количество элементов в множестве N,
G  N  N   x, y  x  N, y  N  множество ребер,
  N,G  граф
 x, y   G  ребро, соответствующее вершинам x и y
(смежные вершины),
Пример 4.1.1.
N  1,2,3,4
G  1,2 , 1,3  ,  2,3 ,  2,4 , 3,4 
G  1,2 , 1,3 ,  2,3 ,  2,4 , 3,4 ,  2,1, 3,1, 3,2 ,  4,2 ,  4,3 
 Последовательность ребер графа вида
P  x1, xk    x1, x2  ,  x2 , x3  ,  xk 1, xk 
называется путем из x1 в xk , если никакое ребро
не встречается более одного раза.
 Если x1  xk , то путь P  x1, xk  называется циклом.
 Граф называется связным, если для любых двух его
вершин существует путь, их соединяющий.
 В противном случае граф называется несвязным.
 Деревом называется связный граф, не содержащий
циклов (между двумя любыми узлами существует
единственный путь).
Пример 4.1.2.
§4.2. Понятие сети
Граф, множество ребер которого определяется
некоторой вещественной неотрицательной функцией,
u : N  N  R1
  N, u
будем называть сетью.
1
1 0
u ( x, y ) 
2 5
3 4
2
5
0
7
3
4
7
0
2
5
1
7
4
3
§ 4.3. Транспортная задача (ТЗ)
Содержательная постановка:
A1, A2, , Am
 пункты производства
a1, a2 , , am
 производительность
B1, B2, , Bn
 пункты потребления
b1, b2 ,
, bn
ci j  0
 спрос
 удельные транспортные затраты
Транспортная задача заключается
в определении плана перевозок, при котором удовлетворен
спрос каждого потребителя, вывезен весь объем
продукции из каждого пункта производства и при этом
суммарные транспортные затраты минимальны.
Способы задания ТЗ
• аналитический
C   cij , cij  0,
• табличный
a   a1, a2, , am  , ai  0, i  1, m
b   b1, b2, , bn  , b j  0, j  1, n
,
• сетевой
a1
a2
b1
c11
c21
b2
c12
c22
bn
c1n
c2 n
am
c m1 c m 2
cmn
Пример 4.3.1.
7 8 5 3


C  2 4 5 9
 6 3 1 2


7
a1  11 A1
пункты
производства
b   5, 9, 9, 7 
7
B1
b1  5
B2
b2  9
B3
b3  9
B4
b4  7
88
a2  11 A2
a3  8 A3
a  11, 11, 8 
2
пункты
потребления
Напишем математическую модель задачи:
Переменные: xij  объем перевозок из Ai в Bj
 x11 x12

X   x21 x22
x
 31 x32
x13
x23
x33
x14 
  план перевозок
x24 
x34 
Целевая функция:
7 8 5 3


C  2 4 5 9
 6 3 1 2


a  11, 11, 8 
b   5, 9, 9, 7
min z  7 x11  8 x12  5 x13  3 x14  2 x21  4 x22  5 x23  9 x24  6 x31  3 x32  x33  2 x34
Ограничения:
x11  x12  x13  x14  11,
x11  x21  x31  5,
x21  x22  x23  x24  11,
x12  x22  x32  9,
x31  x32  x33  x34  8,
x13  x23  x33  9,
xij  0, xij  целые,
x14  x24  x34  7,
двойственная задача
Математическая модель транспортной задачи
m
min z  min(c11x11  c12 x12 
xi 1  xi 2 
x1 j  x2 j 
n
min z  min  cij xij
cmn xmn )
i 1 j 1
n
x
 xin  ai , i  1, m,
j 1
ij
m
 xmj  b j , j  1, n,
x
i 1
xij  0, xij  целые.
ij
 ai , i  1, m,
 b j , j  1, n,
xij  0, xij  целые.
Теорема 4.3.1. (О разрешимости ТЗ)
Для существования оптимального решения ТЗ,
необходимо и достаточно, чтобы выполнялось условие
m
n
баланса:
 ai   b j .
i 1
j 1
m
n
a  b
Закрытая ТЗ:
i
i 1
Открытая ТЗ:
j 1
m
1)
j
 условие баланса
n
a  b
i
i 1
j 1
j
 перепроизводство
Bn 1  фиктивный пункт потребления
m
n
bn 1   ai  b j  спрос
i 1
bj
ai
11
11
8
ci , n1  ri
j 1
5
4
9
5
7
7
8
5
3
r1
2
4
5
9
r2
6
3
1
2
r3
 штраф
m
Открытая ТЗ:
2)
n
a  b
i 1
i
j 1
j
- дефицит
 фиктивный пункт производства
Am 1
n
m
j 1
i 1
am 1   b j   ai  производительность
bj
ai
11
6
8
5
5
9
9
7
7
8
5
3
2
4
5
9
6
3
1
2
r1
r2
r3
r4
cm1, j  r j
§ 4.4. Методы решения транспортной задачи
4.4.1. Методы нахождения допустимого решения ТЗ
• Метод северо-западного угла
• Метод минимального элемента
• Метод Фогеля
4.4.2. Методы нахождения оптимального решения
• Метод потенциалов (А. В. Кантарович 1949 г.)
4.4.1. Методы нахождения начального
опорного плана ТЗ.
Опорным планом X транспортной задачи
будем называть допустимое базисное решение ТЗ.
 Метод северо-западного угла
bj
9
5
7
9
ai
5
8
3
7
6
11 5
0
0
11
0
8
0
2
6
3
0
4
3
8
1
5 6 0 0
X 0   0 3 8 0 
0 0 1 7


5
1
0
7
9
1
2
3
1
5
6
2
3
8
1
7
3
4
2
 
z X0  57  68  34 
8  5  1 1  7  2  150
 Метод минимального элемента
bj
ai
11
11
8
1
5
0
5
0
9
9
7
2
6
3
6
0
8
4
3
1
0
8
1
7
5
5
1
7
0
0
3
9
2
2
2
3
3
4
0 3 1 7
X 0   5 6 0 0 
0 0 8 0


 
z X 0  3  8  1 5  3  7  2  5  6  4  8  1  92
 Метод Фогеля
bj
ai
11
11
8
штрафы
столбцов
5
0
7
8
3
6
5
6
4
1
4
2
0
9
9
0
0
3
8
штрафы строк
7
5
5
1
7
0
0
3
2
2
2
3
9
2
1
1
1
2
1
1
1
4
1
1
4
1
4
0
6
4
0
0 3 1 7
X 0   5 6 0 0 
0 0 8 0


 
z X 0  92
Проверка плана ТЗ на опорность
(метод вычеркиваний):
• вычеркнуть все строки в матрице Х, содержащие не
более одного положительного элемента;
• в получившейся матрице вычеркнуть все столбцы,
содержащие не более одного положительного элемента;
• далее процесс вычеркивания строк и столбцов применяется к оставшейся подматрице.
Процесс заканчивается одним из двух исходов:
1. Все строки (столбцы) вычеркнуты. Тогда Х  опорный.
2. Получена подматрица, в каждой строке (столбце)
которой не менее 2 положительных элементов. Х  не
опорный. Из оставшихся элементов можно построить
цикл.
Пример 4.3.2.
a  15,35,15,30 
b  15,20,25,15,20 
 5 0 0 0 10 
 10 20 5 0 0 

X1  
 0 0 15 0 0 


0
0
5
15
10


неопорный план
 15 0 0 0 0 
 0 20 15 0 0 

X2  
 0 0 10 5 0 


 0 0 0 10 20 
опорный план
Прямая задача
min z  7 x11  8 xдвойственной
 4 x22  5 x23  9 x24  6 x31  3 x32  x33  2 x3
12  5 x13  3 x14  2 x 21задачи
Построение
x11  x12  x13  x14  11,
x21  x22  x23  x24  11,
x31  x32  x33  x34  8,
xij  0, xij  целые,
x11  x21  x31  5,
x12  x22  x32  9,
x13  x23  x33  9,
x14  x24  x34  7,
Замечание:
кол-во переменных: mn=12
кол-во ограничений: m+n=7
Обозначения
C  (c11, c12, c13, c14, c21, c22, c23, c24, c31, c32, c33, c34 )  7, 8, 5, 3, 2, 4, 5, 9, 6, 3, 1, 2 
X  ( x11, x12, x13, x14, x21, x22, x23, x24, x31, x32, x33, x34 )T
B   a1, a2 , a3 , b1, b2 , b3 , b4   11, 11, 8, 5,9,9,7 
1 1 1 1 0 0 0 0 0 0 0 0


0
0
0
0
1
1
1
1
0
0
0
0


 0 0 0 0 0 0 0 0 1 1 1 1


A  1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0


0 0 1 0 0 0 1 0 0 0 1 0
 0 0 0 1 0 0 0 1 0 0 0 1


T
Y   u1, u2 , u3 , v1, v 2 , v 3 , v 4 
Т
Прямая задача
min z  minCX
AX  B, X  0
Двойственная задача
max w  max YB
YA  C
Теорема 4.4.3.
Двойственная задача
C  (c11, c12, c13 , c14 , c21, c22, c23 , c24 , c31, c32, c33 , c34 )
max w  max YB
YA  C
X  ( x11, x12, x13, x14, x21, x22, x23, x24, x31, x32, x33, x34 )T
B   a1, a2 , a3 , b1, b2 , b3 , b4 
T
Y   u1, u2 , u3 , v1, v 2 , v 3 , v 4 
1

0
0

A  1
0

0
0

1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0

0
1

0
0

0
1 
max w  5v1  9v 2  9v 3  7v 4  11u1  11v 2  8v 3
v1  u1  7
v 1  u2  2
v 1  u3  6
v 2  u1  8
v 2  u2  4
v 2  u3  3
v 3  u1  5
v 3  u2  5
v 3  u3  1
v 4  u1  3
v 4  u2  9
v 4  u3  2
Замечание:
кол-во переменных: m+n=7
кол-во ограничений: mn=12
4.4.2. Алгоритм метода потенциалов
Двойственная ТЗ
Прямая ТЗ
m
x
i 1 j 1
j 1
ij
m
x
i 1
ij
 ai , i  1, m,
 b j , j  1, n,
xij  0, xij  целые.
 x11
X  
x
 n1
x1m 


xnm 
n  m  количество ограничений
nm
j 1
i 1
v j  u i  cij ,
i  1, m, j  1, n.
ui  стоимость ед. продукции в
пункте производства Ai
v j  стоимость ед. продукции в
n
пункте потребления B j
b v
j
суммарная стоимость продукции в
пунктах потребления
a u
i
суммарная стоимость продукции в
пунктах производства
j 1
m
i 1
 количество переменных
m
max w  max(  b j v j   ai ui ),
n
min z  min  cij xij
n
n
j
i
Теорема 4.4.1. (Теорема двойственности для
транспортной задачи)
Для того чтобы прямая и двойственная ТЗ имели
оптимальные решения, необходимо и достаточно, чтобы
было выполнено условие баланса, и значения прямой и
двойственной задач были равны, т.е.
m
n
n
m
j 1
i 1



x
c

b
v

a
u
 ij ij  j j  i i .
i 1 j 1
Экономическая интерпретация теоремы:
суммарные транспортные затраты при оптимальном
плане перевозок равны изменению
суммарной
стоимости продукции при полном удовлетворении
спроса.
Теорема
4.4.2.
(Каноническая
теорема
равновесия)
Для того чтобы пара допустимых решений прямой и
двойственной ТЗ X *   xij*  и Y *   u1* , , um* ,v1* , ,v n* 
была парой оптимальных решений, необходимо и
достаточно, чтобы выполнялись следующие соотношения:
1. Если xij  0, то v j  ui  cij ,
2. Если v j  ui  cij , то xij  0.
Экономическая интерпретация теоремы:
v j  ui  приращение ценности единицы продукции при
перевозке из Ai в B j ;
*
*
если v j  ui  cij , то перевозка нерентабельна и xij*  0 ;
если xij*  0 (перевозка рентабельна), то
v *j  ui*  cij .
Теорема 4.4.3. Ранг матрицы ограничений ТЗ равен:
rang  A   n  m  1.
Алгоритм метода потенциалов
0. Построение начального опорного плана ТЗ.
 
X 0  xij0
ИТЕРАЦИЯ
1. Нахождение переменных двойственной задачи.
• Для xij0  0 строим систему v 0j  ui0  cij ,
0
0
0
• Находим решение v j , ui  потенциалы плана X .
• Вычисляем матрицу невязок :
C 0  cij  (v 0j  ui0 ).
2. Проверка оптимальности или нахождение
переменной, вводимой в базис.
• Если все cij0  0,
то X 0  решение оптимально.
• В противном случае   min cij0  crs0 , вводим в базис xrs .
cij0 0
3. Нахождение переменной, исключаемой из базиса.
• Рассматриваем элемент x rs и все базисные перевозки
X 0 , строим цикл из этих элементов (метод вычеркивания).
• Помечаем элементы цикла знаками «+» и «–» через
один, начиная с элемента x rs .
• Выбираем минимальный объем перевозки из элементов,
помеченных знаком «–»:
  min  xij   xkl

4. Нахождение нового опорного плана.
• Получаем новый план X 1 :
 
 
 x0
 ij
 0
1
xij   xij
 0
 xij .


 ,

 ,
• Значение целевой функции на плане X 1 :
 
 
z X 1  z X 0   .
Пример 4.4.2. Найти оптимальное решение ТЗ из
примера 4.4.1, используя метод потенциалов.
0. Начальное решение (метод минимального элемента)
0 3 1 7 
7 8 5 3
X 0   5 6 0 0  , z( X 0 )  92, C   2 4 5 9  .
 6 3 1 2
0 0 8 0




Итерация 1
0
0
0
1. Строим систему уравнений: v j  ui  ci j , xi j  0.
v 20  u10  8, v10  u20  2,
v 30  u10  5, v 20  u20  4,
v 40  u10  3, v 30  u30  1.
Полагая u10  0 , получаем:
u20  4 v10  6 v 30  5
u30  4
v 20  8
v 40  7
2. Строим матрицу невязок:
7 8 5 3


C  2 4 5 9
 6 3 1 2


u20  4
v10  6
u30  4
v 20  8

0
В матрице c32
 0 , план
Переменную x32 вводим в базис,
3. Строим цикл: x32 , x12 , x13 , x33
0 0 0
1
C 0   0
0 4 3 
 4 1 0 3 


0  min  x
0
ij


0
 x12
3
x12 - выводим из базиса

C 0  cij  (v 0j  ui0 )


0 3 1 7 
v 30  5
X 0   5 6 0 0  ,
v 40  7
0 0 8 0




0
X  неоптимальный.
0
0  c32
 1.
 
 
 x0
 ij

xij1   xij0
 0
 xij .



 3,
 3,
0 0 4 7
X 1   5 6 0 0 
0 3 5 0


Находим значение целевой функции: z( X 1 )  z( X 0 )   00 
4. Новое решение:
Итерация 2
1. Строим систему потенциалов:
v 31  u11  5, v 21  u21  4,
v 41  u11  3, v 21  u31  3,
v11  u21  2, v 31  u31  1.
Получаем решение:
u11  0, u21  3, u31  4,
v11  5, v 21  7, v 31  5, v 41  3.
 92  1 3  89.
2. Строим матрицу невязок:
C1  cij  (v 1j  ui1 )
7 8 5 3


C  2 4 5 9
 6 3 1 2




 v  u   1,
 v  u   3,
 v  u   9,
 v  u   5,
 v  u   3.
1
c11
 c11  v11  u11  2,
1
c12
 c12
1
c23
 c23
1
c24
 c24
1
c31
 c31
1
c34
 c34
1
2
1
1
1
3
1
2
1
4
1
2
1
1
1
4
0 0 4 7
X 1   5 6 0 0 
0 3 5 0


u11  0, u21  3, u31  4,
1
3
v11  5, v 21  7, v 31  5, v 41  3.
1
3
2 1 0 0 
C 1   0 0 3 9 
5 0 0 3



X1
 оптимальный план
§ 4.5. Задача о назначениях
I1, I2 , , Im
J1, J 2 , , J n
ci j  0
 множество работников
 множество работ
 затраты при назначении работника на работу
Задача о назначениях заключается в нахождении распределения работников по работам,
минимизирующего общие затраты по выполнению
комплекса работ, при условиях , что каждый работник
выполняет только одну работу, и на каждой работе
занят только один работник.
Пример 4.5.1.
5 7 9


С   4 6 8
9 4 8


 матрица затрат
5
I1
7
9
4
I2
6
9
I3
J1
J2
4 8
8
J3
Download