Решение задач оптимизации транспортного типа
.pdf
1 |
4 |
2 |
5 |
|
|
|
|
|
|
|
(4) . |
C |
2 |
1 |
4 |
1 |
|
|
3 |
2 |
1 |
|
(3) |
|
3 |
||||
(1) (2) (5) (6) |
|
||||
Цифры, стоящие в скобках около строк и столбцов матрицы С, обозначают номер шага, на котором соответствующие строки и столбцы вычеркиваются. Цифры в скобках над элементами матрицы Х обозначают номер шага, на котором определяются ее соответ-
ствующие элементы, а над столбцами вектора a и около строк век-
тора b – номера шагов, на которых они принимают указанные значения. Поскольку после 6-го шага в первой строке нет ни одного не вычеркнутого элемента, она может быть вычеркнута (правило вычеркивания). То есть положительные компоненты матрицы Х не образуют цикл, их число равно 6 (m + n – 1 = 3 + 4 – 1 = 6). Таким образом, в результате предварительного этапа получен исходный опорный план ТЗ, множество базисных компонент
B(X ) { 1,1 , 1,3 , 1,4 , 2,2 , 2,4 , 3,3 } , D(X ) , O(X ) все
остальные компоненты плана Х.
Итерация 1. Определяем потенциалы, отвечающие исходному опорному плану путем решения системы уравнений:
u1 v1 1; u2 v2 1 ; u1 v3 2 ; u2 v4 1 ; u1 v4 5 ; u3 v3 1 .
Полагая u1 0 , последовательно вычисляем v1 1 , v3 2 , v4 5 ,
u2 1 5 4 , v2 1 ( 4) 5 , u3 1 2 1. Вычисляем величины
ij , (i, j) O( X ) :
12 4 0 5 1; 21 2 ( 4) 1 5 ; 23 4 ( 4) 2 6 ;
31 3 ( 1) 1 3 ; 32 2 ( 1) 5 2 ; 34 3 ( 1) 5 1.
План не является оптимальным, т.к. 12 , 32 , 34 0 , min( 12 , 32 , 34 ) 32 2 . Улучшение плана осуществляется за счет увеличения компоненты x32 , добавление ее к базисным компонентам порождает единственный цикл x32 , x22 , x24 , x14 , x13 , x33 . Определяем 1 min(x22 , x14 , x33) 1 .
20
Увеличиваем нечетные компоненты цикла (помеченные знаком «+») и уменьшаем четные (помеченные знаком « ») на величину1 1 и получаем новый опорный план (рис. 3) (пустые клетки со-
ответствуют нулевым компонентам плана).
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 1( ) |
1( ) |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
2( ) 0 |
1( ) |
, |
X |
|
1 |
|
2 |
|||||||
|
|
|
|
|
|||||||||||||
X 0 |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
( ) |
|
( ) |
0 |
|
|
|
|
|
|
|
|
||
|
0 |
|
3 |
|
|
|
|
|
|
|
|
|
|||||
|
|
Рис. 3 |
|
|
|
Итерация |
2. |
Множество |
базисных |
компонент |
|
B(X ) { 1,1 , 1,3 , 2,2 , 2,4 , 3,2 , 3,3 }, |
D(X ) , O(X ) все |
||||
остальные компоненты плана. Определяем потенциалы для полученного опорного плана:
u1 v1 1; u1 v3 2 ; u2 v2 1 ; u2 v4 1 ; u3 v2 2 ; u3 v3 1 .
Полагая u1 0 , последовательно вычисляем v1 |
1 , v3 2 , u3 1 , |
||
v2 3, u2 2 , v4 3 . Вычисляем величины ij , |
(i, j) O( X ) : |
||
12 4 0 3 1; |
14 5 3 0 2 ; |
21 2 ( 2) 1 3 ; |
|
23 4 ( 2) 2 4 ; |
31 3 ( 1) 1 3 ; |
34 3 ( 1) 3 1 . |
|
Поскольку все величины неотрицательны, то план является решением нашей задачи.
Решим теперь эту задачу в случае, когда пропускные способности коммуникаций ограничены и их пропускные способности опре-
3 |
1 |
2 |
1 |
||
|
|
1 |
1 |
|
|
деляются матрицей D 1 |
2 . |
||||
|
2 |
1 |
1 |
1 |
|
|
|
||||
21
Предварительный этап.
Шаг 1. mini, j cij c11 1 , x11 min(a1, b1, d11 ) min(6, 4,3) d11 3.
Имеет место случай 3. Вычеркиваем элемент c11 , изменяем компо-
ненты a1 и b1 |
векторов |
a |
и |
b |
уменьшив их на 3. |
|
||||||||||||||
Шаг 2. |
min cij |
c22 1 |
, x22 |
min(a2 , b2 , d22 ) min(3,2,1) d22 |
1 . |
|||||||||||||||
|
|
i, j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Случай 3, |
a2 |
2 , |
b2 2 , вычеркиваем элемент c22 . |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
(2) (3) (4) (5) (6) (7) (8) (9) (10) |
|||||||
|
3 |
|
2 |
|
|
0 |
(9) |
|
6 3 3 3 3 1 1 1 1 1 |
|
||||||||||
|
|
|
|
|
|
|
|
|||||||||||||
X |
|
|
1 |
0(10) |
|
|
2(3) |
|
3 |
3 |
|
2 |
|
|
|
|
|
|||
|
(7) |
(6) |
|
|
|
|
(8) |
|
3 |
3 |
|
3 |
3 |
2 2 1 0 |
|
|||||
|
1 |
|
|
0 |
|
|
|
|||||||||||||
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
4 |
2 |
4 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
1 |
2 |
4 |
|
|
2 |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
4 |
|
|
2 |
|
|
(2) |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
4 |
|
|
0 |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
3 |
|
|
|
0 |
|
|
(4) |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
|
|
|
0 |
|
(5) |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|
0 |
|
(6) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
0 |
|
(7) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
0 |
|
(8) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
(9) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
4 |
2 |
(5) |
5 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
C |
|
2 |
|
|
(2) |
4 |
(10) |
|
|
(3) |
|
|
||||
|
|
|
|
|
|
|
1 |
|
|
|
|
1 |
. |
|
||||||
|
|
|
|
|
|
3 |
|
|
|
2 |
1(4) |
|
|
(8) |
|
|||||
|
|
|
|
|
|
|
|
|
3 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(7) |
|
|
(6) |
|
|
|
|
(9) |
|
|
|||
22
Шаг 3. mini, j cij c24 1, x24 min(a2 , b4 , d24 ) min(2,2,2) a2 2 .
Случай 1: Вычеркиваем вторую строку матрицы С, переменная x24 становится базисной, b4 0 .
Шаг 4. mini, j cij c33 1 , x33 min(a3 , b3 , d33 ) min(3,4,1) d33 1.
Случай 3: вычеркиваем элемент c33 , a3 2 , b3 3 .
Шаг 5. |
min cij c13 2 , |
x13 min(a1, b3 , d13 ) min(3,3,2) d13 |
2 . |
||
|
i, j |
|
|
|
|
Случай 3: вычеркиваем элемент c13 матрицы С, a1 1 , b3 1 . |
|
||||
Шаг 6. |
min cij c32 |
2 , |
|
x32 min(a3 , b2 , d32 ) min(2,1,1) b2 |
1 . |
|
i, j |
|
|
|
|
Случай 2: переменная |
x32 |
становится базисной, вычеркиваем вто- |
|||
рой столбец матрицы С, a3 1. |
|
||||
Шаг 7. |
min cij c31 |
3 , |
x31 min(a3 , b1, d31) min(1,1,2) b1 |
1. |
|
|
i, j |
|
|
|
|
Случай 2, вычеркиваем первый столбец матрицы С, переменная x31
становится базисной, a3 |
0 . |
|
||
Шаг 8. |
min cij c34 3 |
, x34 min(a3 , b4 , d34 ) min(0,0,1) a3 |
0 . |
|
|
|
i, j |
|
|
Случай |
1: |
вычеркиваем |
третью строку матрицы С, переменная |
|
x34 0 |
становится базисной. |
|
||
Шаг 9. |
min cij c14 5 , x14 min(a1, b4 , d14 ) min(1,0,1) b4 |
0 . |
||
|
|
i, j |
|
|
Случай 2: вычеркиваем четвертый столбец матрицы С, переменная x14 0 становится базисной.
Шаг 10. Первая строка и третий столбец остались не вычеркнутыми. Единственный не вычеркнутый элемент третьего столбца
x23 0 , помечаем его как базисный и вычеркиваем третий столбец.
Согласно правилу вычеркивания, выделенные компоненты образуют базис, однако построенная матрица Х не является допустимым решением задачи, так как x41 x15 1 . Поэтому необходимо пе-
рейти к решению расширенной ТЗ с матрицей
23
1 |
4 |
2 |
5 |
M |
||
|
2 |
1 |
4 |
1 |
M |
|
C |
|
|||||
|
3 |
2 |
1 |
3 |
M |
|
|
|
|||||
M |
M |
M |
M |
0 |
|
|
и векторами a 6,3,3,1 , b 4,2,4,2,1 . Исходный опорный план расширенной ТЗ имеет вид
|
|
|
|
|
|
|
|
3 0 |
2 |
0 |
1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 1 |
0 |
2 |
|
|
|
|
0 |
|
|||
|
|
|
|
|
|
|
X |
|
|
|
|
|
. |
|
|
|
1 0 |
0 |
|
|
|
1 1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
||
|
0 0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
В скобках записаны базисные элементы опорного плана. Итерация 1. Определим потенциалы расширенной ТЗ, отвечаю-
щие полученному |
опорному плану |
X |
путем |
решения |
системы |
||
уравнений u1 v4 5 ; u3 v1 3 ; u1 v5 |
M ; u3 |
v2 |
2 ; u2 |
v3 4 ; |
|||
u3 v4 3 ; u2 v4 1 ; u4 v3 M . |
|
|
|
|
|
||
Полагая v4 0 , |
последовательно |
вычисляем |
u1 5 , |
u2 1 , |
|||
u3 3 , v3 4 1 3 , v2 1, v1 3 3 0 , u4 M 3 , v5 M 5 . |
|||||||
Для компонент i, j из множеств |
|
|
|
|
|
||
O(X ) { 1,2 , 2,1 , 2,5 , 3,5 , 4,1 , 4,2 , 4,4 , 4,5 } и |
|
||||||
D( X ) { 1,1 , 1,3 , 2,2 , 3,3 } вычисляем величины |
|
||||||
ij cij ui v j : |
|
|
|
|
|
|
|
12 4 5 1 0 ; |
21 2 1 0 1 ; |
|
22 1 1 ( 1) 1; |
||||
24
25 M 1 (M 5) 4 ; 35 M 3 (M 5) 1 2 ;
41 M (M 3) 0 3 ; 42 M (M 3) ( 1) 4 ;
44 M (M 3) 0 3 ; 45 0 (M 3) (M 5) 2M 8 ;
11 1 5 0 4 ; 13 2 5 3 6 ; |
33 1 3 3 5 . |
||||||||||
Поскольку среди величин ij , (i, j) O( |
|
) |
есть отрицательные, |
||||||||
X |
|||||||||||
а среди ij , (i, j) D( |
|
) положительные, |
план |
|
не является |
||||||
X |
X |
||||||||||
оптимальным. Минимальное из значений ij , для |
(i, j) O( |
|
) и |
||||||||
X |
|||||||||||
ij , для (i, j) D( |
|
) равно 45 2M 8 |
(М сколь угодно боль- |
||||||||
X |
|||||||||||
шое число). Поэтому, изменяем опорный план увеличивая (вводя в
базис) переменную x45 (случай а)). Добавление компоненты x45 к базисным порождает единственный цикл x45 , x15 , x14 , x24 , x23 , x43 .
Определим
1 min(x15, x24 , x43 ) min(1,2,1) 1,
2 min(d45 x45 , d14 x14 , d23 x23) min( 0,1 0,1 0) 1
min( 1, 2 , d45 ) min(1,1, ) 1.
Для получения нового опорного плана нечетные компоненты x45 , x14 и x23 увеличиваем на 1, а четные x15 , x24 , x43 уменьшаем
на единицу, при этом компонента x15 |
или x43 |
должна быть выведе- |
|||||||
на из базиса. Исключим из базиса x43 . |
|
|
|
|
|||||
Переходим к новому опорному плану |
|
|
|
||||||
|
|
3 |
0 |
2 |
1 |
|
0 |
||
|
|
|
|||||||
|
|
|
0 |
1 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|||||
|
X |
|
1 |
1 |
0 |
|
0 |
. |
|
|
|
1 |
|
|
|||||
|
|
|
0 |
0 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
25
|
3 |
0 |
2 |
1 |
|
|
|
|
|
|
|
||
Поскольку x45 1, то матрица |
0 |
1 |
1 |
1 |
явля- |
|
X |
|
|
|
|
||
|
|
|
|
|
||
|
|
|
1 |
0 |
|
|
|
1 1 |
|
|
|||
|
|
|
|
|||
ется опорным планом исходной задачи.
Итерация II. Для базисных компонент плана Х составляем сис-
тему |
уравнений |
|
|
u1 v4 5 ; |
u3 v1 3 ; |
u1 v3 4 ; |
u3 v2 2 ; |
||||||||||||||
u2 v4 1 ; |
u3 v4 3 , решив которую найдем потенциалы. Полагая |
||||||||||||||||||||
u3 0 , последовательно вычисляем v1 3 , |
v2 2 , |
v4 3 , |
u2 |
2 , |
|||||||||||||||||
v3 6 , |
u1 2 . |
|
|
|
|
i, j |
|
|
O(X ) { 1,2 , 2,1 } |
|
|
||||||||||
Для |
компонент |
|
из |
множеств |
j |
и |
|||||||||||||||
|
|
|
|
|
2,2 |
|
|
|
|
|
|
ij |
c |
ij |
u |
i |
v |
: |
|||
D(X ) { 1,1 , 1,3 , |
|
|
, |
3,3 } вычисляем величины |
|
|
|
|
|||||||||||||
12 4 2 2 0 ; |
|
|
|
|
21 2 ( 2) 3 1 ; |
11 1 2 3 4 ; |
|
|
|||||||||||||
13 2 2 6 6 ; |
|
|
22 1 ( 2) 2 1; |
33 1 0 6 5 . |
|
|
|||||||||||||||
Так как 22 |
0 ( |
(2,2) D(X )) , план Х не является оптимальным, |
|||||||||||||||||||
и его улучшение должно производиться за счет уменьшения величины x22 d22 1 (случай б)). Добавление компоненты x22 к базис-
ным порождает единственный цикл x22 , x24 , x34 , x42 .
Определим 1 min(x22 , x34 ) min(1,0) 0 ,
2 min(d24 x24 , d32 x32 ) min(1,0) 0 ,
min( 1, 2 , x22 ) 0 .
Переменная x22 становится базисной, а x34 выводится из базиса.
Новый опорный план отличается от предыдущего только тем, что в число базисных переменных включена x22 d22 1 взамен пере-
менной x34 0 .
26
|
3 |
|
|
||
|
0 |
2 |
1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
1 |
1 |
1 |
|
0 |
. |
||||
|
|
|
|
||
|
1 |
1 |
1 |
0 |
|
|
|
|
|
|
|
Итерация III. Как и на предыдущих итерациях находим потен-
циалы u1 4 , u2 |
0 , |
u3 1, v1 2 , v2 1, v3 |
4 , v4 1. |
Для |
компонент i, j |
из |
множеств O(X ) { 1,2 |
, 2,1 ,(3,4)} |
и |
D(X ) { 1,1 , 1,3 , 3,3 } вычисляем величины ij cij ui vj :
12 4 4 1 1; 21 2 0 2 0 ; |
11 1 4 2 5 |
13 2 4 4 6 ; 33 1 1 4 4 |
34 3 1 1 1 . |
Так как 12 1 0, (1,2) O(X ) , то план Х не является оптимальным и его улучшение производится за счет увеличения вели-
чины x12 0 (случай а)), ее добавление к базисным порождает единственный цикл: x12 , x22 , x24 , x14 .
Находим 1 min(x22 , x14 ) min(1,1) 1,
2 min(d12 x12 , d24 x24 ) min(1 0,2 1) 1,
min( 1, 2 ) 1.
Новый опорный план получается путем увеличения переменных
x12 , x24 |
и уменьшения x22 , |
x14 |
на 1. |
|
|
|
|
|
|
3 |
1 |
2 |
(0) |
|
|
|
X |
|
0 |
(0) |
(1) |
(2) |
|
|
|
. |
|||||
|
|
|
|
(1) |
1 |
0 |
|
|
|
(1) |
|
||||
В число базисных переменных вводится |
x12 . Поскольку все эле- |
||||||
менты |
цикла равны либо |
0, |
либо |
dij |
( x12 d12 1 , x24 d24 2 , |
||
27
x22 x14 0 ), из базиса должна быть исключена одна из переменных
x12 , x24 , x22 , x14 . Исключим из базиса переменную x12 (т.е. она так и не вошла в число базисных). Это облегчит следующую итерацию.
Итерация IV. Поскольку множество базисных переменных не изменилось, то потенциалы и величины остались прежними. Изме-
няются только множества O( X ) и D( X ) : O(X ) { 2,1 ,(3,4)} ,
D(X ) { 1,1 , 1,2 , 1,3 , 3,3 } .
Так 21 0 , 34 1 , а 11 5 , 12 1, 13 6 , 33 4 , то условия критерия оптимальности выполняются, т.е. полученный опорный план является оптимальным.
2. ДВОЙСТВЕННЫЙ АЛГОРИТМ РЕШЕНИЯ ОБОБЩЕННОЙ ТРАНСПОРТНОЙ ЗАДАЧИ
Как уже отмечалось, в наиболее общей постановке транспортная задача может быть сформулированы в следующем виде.
m n |
|
|
|
|
|
|
|
|
|
|
|
|
|
cij xij |
min, |
|
|
|
(2.1) |
||||||||
i 1 j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
xij |
ai , |
|
i |
1, m |
, |
|
|
|
|
(2.2) |
|||
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
xij |
bj , |
|
j |
1, n |
, |
|
|
|
|
|
(2.3) |
||
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 xij dij , |
|
i |
|
, |
j |
|
. |
(2.4) |
|||||
|
1,m |
1,n |
|||||||||||
Введением фиктивных поставщика или потребителя она легко сводится к замкнутой модели с выполненным балансовым соотно-
m |
n |
шением: ai bj , которые являются необходимым и достаточ- |
|
i 1 |
j 1 |
28
ным условием разрешимости классической транспортной задачи. Ограничения на пропускные способности коммуникаций существенно усложняют решение задачи. В этой ситуации возникают проблемы не только с применением симплекс-метода или его модификаций к решению задачи, но и с построением первоначального базисного решения. Условия разрешимости задачи также непригодны для практического применения.
Как известно, для того, чтобы ТЗ с ограничениями на пропускные способности коммуникаций имела решение необходимо и достаточно выполнение условий:
m |
|
|
|
|
|
|
|
min (a , d |
|
) b |
, J |
1, n |
. |
(2.5) |
|
i 1 |
i j J |
ij |
j J j |
|
|
|
|
Понятно, что проверка выполнения условий (2.5) задача более трудоемкая, чем ее решение. Поэтому для построения первоначального допустимого решения используется метод искусственного базиса, который в случае несовместимости ограничений позволяет установить неразрешимость задачи. Однако, при решении конкретных прикладных задач, в случае несовместности ограничений, может потребоваться составить план перемещения максимально возможного объема продукта с минимальными затратами. При этом, естественно, необходим анализ, позволяющий установить «узкое место», то есть те коммуникации, пропускные способности которых не позволяют осуществить поставки в полном объеме. Такой анализ может быть осуществлен, если рассматриваемую задачу сформули-
ровать в терминах теории графов (графический способ задания ТЗ). |
||||||||||
|
|
Естественно полагать, что dij min ai ,bj , i |
|
, |
j |
|
. |
|||
1, m |
1, n |
|||||||||
|
|
Рассмотрим |
ТЗ, заданную векторами мощностей |
источников |
||||||
|
|
a1, a2 ,..., am |
и стоков |
|
b1, b2 ,...,bn , матрицами пропускных |
|||||
a |
b |
|||||||||
способностей D 
dij 
m n и стоимостей перемещения единицы про-
дукта C 
cij 
m n .
На плоскости отмечаются (кружками) источники (с номерами 1, 2, …, m) и стоки (с номерами m 1, m 2, m n ), а также отмечают-
29
