Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Решение задач оптимизации транспортного типа

.pdf
Скачиваний:
0
Добавлен:
29.11.2025
Размер:
1.84 Mб
Скачать

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