Вы находитесь на странице: 1из 15

Федеральное агентство по образованию ГОУ ВПО «Уральский государственный технический университет УПИ» РИ - РТФ

Г.М. Черногородова

ТЕОРИЯ ПРИНЯТИЯ РЕШЕНИЙ

Учебное пособие Глава 3

Екатеринбург

2007

ГЛАВА 3. СПЕЦИАЛЬНЫЕ ЗАДАЧИ ЛП

3.1. Транспортная задача

3.1.1. Постановка и свойства транспортной задачи

Многие классы широко распространенных на практике задач приводят к задачам ЛП, имеющим особенности, которые позволяют получить для них бо- лее простой, чем в общем случае, вариант алгоритма решения, или принципи- ально новый метод решения. К таким классам относятся, в частности, транс- портная задача (Т-задача) и распределительные задачи, которые можно рас- сматривать как обобщение транспортной задачи. Рассмотрим постановку Т-задачи. Речь идет о рациональной перевозке некоторого однородного продукта от производителей к потребителям. От при- крепления пунктов потребления к пунктам производства существенно зависит объем транспортных расходов. Возникает задача о наиболее рациональном на- правлении перевозок груза, при котором потребности удовлетворяются, а за- траты на транспортировку минимальны. Пусть заданы параметры:

m число поставщиков продукции определённого типа,

a ,(i

1,m)

=

– max объемы поставок от i -х поставщиков,

i

n число потребителей продукции,

b ,( j

j

=

1,n)

– min объемы потребления в j -м пункте,

C ij

стоимость перевозки

j -му потребителю.

единицы продукта от i-го поставщика к

от -го поставщика

к

мальны. Причем все потребности должны быть удовлетворены при условии, что объёмы поставок покрывают потребности. Запишем математическую модель Т-задачи.

j -му потребителю, чтобы суммарные затраты на перевозки были мини-

Требуется установить такие объемы перевозок

x ij

i

m n ∑∑ C x → min, ij ij i = 1 j = 1
m
n
∑∑
C
x
→ min,
ij
ij
i =
1
j
=
1
n
x
a
,
=
1,
m
,
i i
ij
j = 1
m
x
b
,
=
1,
n
,
j j
ij
i = 1
x
0 (
i
=
1,
m j
,
=
1,
n
).
ij

(3.1)

Очевидно, что это задача ЛП с

m×n

переменными и (m+n) непря-

мыми ограничениями. Если выполняется условие баланса

m

1

i =

a

i

=

n

j

1

=

b

j

= d

, то

это закрытая Т-задача. При этом ограничения имеют вид равенств.

m n ∑∑ C x → min, ij ij i j n ∑ x =
m n
∑∑
C
x
→ min,
ij
ij
i
j
n
x
=
a
, i
=
1,
m
,
ij
i
j = 1
m
∑ x
=
b
, j
=
1,
n
,
ij
j
i = 1
0 (
i
=
1,
m j
,
=
1,
n
).
x ij ≥

(3.2)

Если существует избыток по объёму поставок (или потребностей), то вводится фиктивный потребитель (поставщик).

Свойства Т-задачи 1. Т-задача (3.2) всегда допустима и разрешима. Возьмем, например, набор

x

ij

=

a b

i

j

d

(i

=

1,m, j

=

1,n)

.

Он удовлетворяет всем ограничениям:

a b

d

n

i

j

a

i

d

=

j

n

j

b

j

= a

i

,

a b

d

m

b

j

i

j

d

=

i

m

i

a

i

= b

j

,

т.е. задача допустима. Разрешимость Т-задачи вытекает из ограниченности до-

пустимого многогранника

2. Ранг матрицы системы ограничений задачи (3.2) равен rang A = m + n 1.

Матрица системы ограничений A имеет вид:

x

ij

min(

a

i

,

b

j

).

A =

x

x

12

x

1 n

x

21

x

22

x

2 n

x

m

1

x

m

2

x

mn

11

K

K

K

K

1

0

M

0

1

0

M

0

K

K

O

K

1

0

M

0

0

1

M

0

0

1

M

0

K

K

O

K

0

1

M

0

K

K

O

K

0

0

M

1

0

0

M

1

K

K

O

K

0

0

M

1

a

a

M

a

m + 1 b

b

1

2

M

m

1

2

m

1

2

M

b

n

1

0

M

0

0

1

M

0

K

K

O

K

0

0

M

1

1

0

M

0

0

1

M

0

K

K

O

K

0

0

M

1

K

K

O

K

1

0

M

0

0

1

M

0

K

K

O

K

0

0

M

1

m + 2

M

n

m

+

Первая строка матрицы является линейной комбинацией остальных

строк. Первую строку получим, сложив поэлементно (m +1),(m + 2), (m + n) - ю

строки и затем вычитая из полученной суммы 2,3, m - ю строки.

,

,

Получаем rangA m + n 1.

Докажем, что 2, 3, (m + n) -е строки матрицы A составляют линейно неза-

висимую систему, т.е. нулевая линейная комбинация этих строк получается

α , j-ю

только при нулевых коэффициентах. Умножим i-ю строку (i = 2, m) на

,

i

строку ( j = 1, n) на и сложим поэлементно эти строки. Пусть получим нуле-

вую строку.

β

j

Тогда для n первых координат имеем:

0 ⋅α + + 0 ⋅α +β+ 0 ⋅β + 0 ⋅β = 0 →β =

0

2

m

1

2

n

1

⋅α +

2

+ ⋅α +β =

0

m

2

0

→β =

2

0;

0;

0

⋅α +

2

+ ⋅α +β = →β =

0

m

n

0

n

0.

Затем для (n + 1) , (2n + 1) , K , ((m 1)n + 1) координат получаем:

Отсюда

α

α

2

2

+ β = 0;

1

α +β =

3

1

=α = =α = 0

3

m

0;

;

α +β =

m

1

0.

. Итак, получили:

rang A = m + n 1.

3.

ние T-задачи является целочисленным (вывод следует из метода потенциа-

Если в задаче (3.2) и все целые, то хотя бы одно оптимальное реше-

a

i

b

j

лов).

3.1.2. Способы отыскания опорного решения Т-задачи

Запишем Т-задачу в виде матрицы (табл. 3.1).

Таблица 3.1 Т-задача в матричной форме

i,j

1

2

n

a

i

 

C

11

C

12

 

C

1n

 

1

x

11

x

12

.

x

1n

a

1

C

21

C

22

C

2n

 

2

x

21

x

22

.

x

2n

a

2

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

C

m1

C

m2

C

mn

m

x

m1

x

m2

.

x

mn

a

m

b

j

b

1

b 2

b

n

d

Каждая клетка этой таблицы соответствует определенной паре постав- щик-потребитель. Строки таблицы соответствуют поставщикам, а столбцы

и объемы

потребителям. В клетки таблицы заносят затраты на перевозки

C ij

по соответствующему маршруту. Столбец a i содержит макси-

перевозок

мальные объемы поставок, а строка b j минимальные объемы потребления в j-м пункте. Рассмотрим способы построения допустимого решения Т-задачи.

x ij

Метод максимальной перевозки

(метод северо-западного угла)

Строим допустимое решение, назначая объемы перевозок с левой верх- ней клетки (северо-западного угла), причём назначаем максимально возмож-

ную перевозку

x =

11

min(

a

1

,

b

1

) .

Если

a

1

< b

1

, то назначаем

x

11

= a

1

и x

1 j

=

0,

j

=

2,

n

и вычёркиваем 1-ю

строку. Ресурс первого потребителя будет

b′ = b

1

1

a

1

.

Вычисляем

далее

x

21

=

min(

a

2

,

b

1

) и т.д.

. Первый столбец в

дальнейшем не будем учитывать. Вычисляем остаток ресурса первого по-

ставщика

Если

b

1

< a

1

, то назначаем

x

11

= b

1

=

и x

min(

i

1 =

ab

1

,

0,

i

=

2,

m

a′ = a

1

1

x

11

и определяем

x

12

2

)

ит.д.

Если

a

1

= b

и

- базисный нуль). Далее определяем

и т.д. Продолжая процесс, получим опорное решение задачи,

, и в дальнейшем не будем

1

, то назначаем

x

11

= a

= 0

a′ = b′ = 0

1

1

1

учитывать только поставщика (

x

22

=

min(

a

2

,

b

2

)

x

21

так как условие баланса выполнено. ПРИМЕР 3.1 Пусть условия Тзадачи заданы в табл. 3.2.

Таблица 3.2 Условия задачи в матричной форме

i,j

1

2

3

4

5

a

i

1

0,7

0,5

0,6

0,9

0,5

100

2

0,4

0,5

0,8

0,8

1,0

150

3

0,3

0,2

0,5

0,4

0,4

200

4

0,9

1,1

1,0

0,8

1,1

100

b

j

120

200

100

30

100

550

Начальное опорное решение, полученное по методу максимальной перевозки, имеет вид:

x

H

=

x


x

x

x

⎪ ⎩ x


11 = 100,

20,

70,

0,

0, ( i ,


=

=

=

=

x

x

22

33

130,

100,

21

32

44

ij

=

=

x

34

=

30,


x

45

j

=

)

100,

небазисные пары

.

Целевая функция

L

(

x

H

)

=

4

5

∑∑

i

j

C

ij

x

ij

= 329

.

Метод минимального элемента

При построении исходного опорного решения методом максимальной пе-

ревозки не учитываются удельные затраты

учитывает затраты на перевозки, выбирая клетки с более дешевым маршрутом.

(если в матрице несколько

Начинаем с первой строки. Выбираем

. Рассматриваемый ниже метод

C ij

=

c

1

k

min

j

C

1

j

таких элементов, то выбираем по лексикографическому правилу). Назначаем

и вычёркиваем только строку или столбец. Если и фак-

x

1k

=

min(

a

1

,

b

k

)

a

i

= b

j

тически выпадают одновременно строка и столбец, то формально вводится поставщик с нулевой поставкой (базисный нуль). ПРИМЕР 3.2 Применим метод минимального элемента для построения начального опорного решения к задаче из примера 3.1. Найденное опорное решение при- ведено в табл. 3.3.

Таблица 3.3 Начальное опорное решение

i,j

1

2

3

4

5

a

i

1

0,7

0,5

0,6

0,9

0,5

100

100

2

0,4

0,5

0,8

0,8

1,0

150

120

30

3

0,3

0,2

0,5

0,4

0,4

200

70

30

100

4

0,9

1,1

1,0

0,8

1,1

100

100

0

b

j

120

200

100

30

100

550

Целевая функция при полученном опорном решении L = 279.

3.1.3. Метод потенциалов

Метод потенциалов для Т-задачи основан на модифицированном сим- плекс-алгоритме.

T

C B

Пусть

=

(

C

i

1

,

,C

i

s

)

B =

(

A

i

s

1

,

,

A

= + − 1

m

n

i s

)

-

базисная

матрица опорного решения,

- коэффициенты целевой функции при базисных переменных .

Формулы для оценок имеют вид:

j

= C

T

B

B

1

A

j

C

j

. Введем

обозначение

T

Λ= C B

B

1

1. Вектор

. Вычисления проводим в таком порядке.

Λ=

(

λ

1

s

,

,

λ

= + − 1

m

n

s

)

вычисляем по формуле

T

Λ= C B

B

1

. Чтобы избавиться

от необходимости вычислять обратную матрицу, выполним преобразова- ния:

Λ =

B

C

T

B

B

1

B

⇒Λ =

B

C

T

B

B

T

T

Λ = C

Б

.

В результате преобразований получим систему линейных уравнений.

A

i

T

1

A

T

i s

Λ T

Λ T

=

=

C ,

i

1

C

i s

.

Решив её, получим координаты вектора

Λ=

(

λ

1

s

,

,

λ

= + − 1

m

n

s

)

.

2. Для каждого небазисного вектора

A

j вычисляем оценку

∆ =ΛA C

j

j

j

(3.3)

и

выясняем, является ли данное опорное решение оптимальным. Критерий оптимальности Т-задачи

Т-задача - это задача на минимум. Критерий оптимальности ОР форму-

то

k > 0 , то переходим к новому ОР, при

лируется так. Если для данного опорного решения x все оценки 0, j 1, s,

∆ ≤

j

=

x - оптимальное ОР. Если существует

этом вектор

A

k

Б

вводим в новый базис .

x

Для удобства введём переменные

, связанные соответственно с по-

. Пере-

называют потенциалами. Пусть найдено какое-либо опорное

u ,v

i

j

ставщиками и потребителями, и составим вектор

менные

W =

(

u

1

,

,

u

m

,

v

1

,

v

n

)

u ,v

i

j

Б

решение Т-задачи в базисе . Составим систему уравнений (3.3) , в которой

x

коэффициенты при совпадают с координатами векторов , соответст-

u ,v

i

j

A

ij

вующих базисным векторам.

Вектор

A

ij

= ⎜ 0,

,0,1,0,

j

,0,

1 ,0,

m + j

,0

, тогда система (3.3) примет вид

, где (i, j) - базисные пары. (3.4)

В системе ограничений Т-задачи одно из ограничений лишнее,

. Можно зафиксировать любой из потенциалов. При-

. Система (3.4) крамеровская, поэтому из неё нетрудно

u +v

i

j

= C

ij

так как

мем, например,

найти вектор

rang A = m + n 1

u 1 = 0

W =

(0,

u

2 ,

,

v

n

).

,

u

m

,

v

1

,

здесь

- небазисные пары. Сформулируем правило перехода к новому ОР.

- объём перевозок

. Строим компенсаторную цепочку, начиная с клетки с

. Вычисляем из условия, чтобы одна из старых базисных пе-

Для небазисных пар будем вычислять оценки

kl

> 0

. Вводим в базис вектор

(k,l)

Θ

A

kl

. Обозначим

x

kl

ij

= u + v C

i

j

ij

,

(i, j)

Пусть

по маршруту

номером

(k,l)

ревозок превращалась в нулевую. Если

После этого производится пересчёт элементов цепочки:

x

yz

= 0

, то

A

yz

выводим из базиса.

x

x

rq

rq

=

=

x

x

rq

rq

−Θ

, если элемент имеет чётный номер в цепочке,

в противном случае.

Далее переходим к новому опорному решению x . Алгоритм метода потенциалов

.

2. Строим систему

- базисных пар.

3. Вычисляем

4. Вычисляем оценки

1. Находим начальное опорное решение и его базис

u +v

i

j

= C

ij

для

(i, j)

потенциалы W = (U ,V ) .

ij

для

(i, j)

- небазисных пар.

Б

x

5.

6.

Если 0, то

ij

Если ∃∆

kr

> 0,

xP

0 . Конец алгоритма.

то вводим в базис вектор

A

kr

.

7.

Строим компенсаторную цепочку и определяем вектор, выводимый из бази- са.

8. Пересчитываем переменные

решение.

x ij

~

x

в цепочке и получаем - новое опорное

9. Переходим на шаг 2. Метод гарантирует получение оптимального решения через конечное

число итераций. ПРИМЕР 3.3. Пусть условия Т-задачи заданы в табл. 3.4. Таблица 3.4 Условия задачи и начальное опорное решение

i,j

1

2

3

4

5

a

i

1

0,7

0,5

0,6

0,9

0,5

100

100

2

0,4

0,5

0,8

0,8

1,0

150

20

130

3

0,3

0,2

0,5

0,4

0,4

200

70

100

30

4

0,9

1,1

1,0

0,8

1,1

100

0

100

b

j

120

200

100

30

100

550

rang A = m + n 1 = 8 ,

L = 329.

Опорное решение и его базис известны.

x

x

x

x

11

21

32

44

= 100,

=

20,

70,

0,

x

x

22

33

=

=

130,

100,

=

=

x

34

(

x

A

45

11

,

=

A

100.

21

,

A

22

,

A

Б

x =

=

32

30,

,

A

33

,

A

34

,

A

44

,

A

45

)

.

Составим систему (3.4) для базисных пар:

u

u

u

u

u

u

u

u

u

1

1

2

2

3

3

3

4

4

= 0;

+

+

+

+

+

+

+

+

v

1

v

v

v

v

v

v

v

1

2

2

3

4

4

5

= 0,7;

= 0,4;

= 0,5;

= 0,2;

= 0,5;

= 0,4;

= 0,8;

= 1,1.;

Вычислим вектор потенциалов

W (0; 0,3; 0,6; 0,2; 0,7; 0,8; 1,1; 1,0; 1,3).

Вычислим оценки

ij

для небазисных пар:

12

= u + v C = +

1

2

12

0

0,8

0,5

=

0,3

>

0

.

Вектор

A

12 вводится в базис. Строим компенсаторную цепочку.

(1,2) (1,1) (2,1) (2,2)

−Θ

−Θ

.

Вектор

A

11 выводим из базиса. Выполним пересчет перевозок в цепочке.

Получим новое опорное решение, записанное в табл. 3.5. Таблица 3.5 Новое опорное решение (первая итерация)

i,j

1

2

3

4

5

a

i

1

0,7

0,5

0,6

0,9

0,5

100

100

2

0,4

0,5

0,8

0,8

1,0

150

120

30

3

0,3

0,2

0,5

0,4

0,4

200

70

100

30

4

0,9

1,1

1,0

0,8

1,1

100

0

100

b

j

120

200

100

30

100

550

Получаем новые значения переменных, входящих в цепочку.

′=Θ= 100,

x

x

12

21

=

x

21

x

′= x −Θ=

11

11

0,

+Θ= 120,

x

′ = x −Θ=

22

22

30.

В результате получим новое опорное решение x с базисом

Б

x

= (

A

12

,

A

21

,

A

22

,

A

32

,

A

33

,

A

34

,

A

44

,

A

45

)

и значением ЦФ L = 299 .

Преобразование общей Т-задачи к закрытой форме

При несоблюдении условия баланса

m

i

a

i

=

n

j

b

j следует преобразовать

Т-задачу, введя фиктивного потребителя или поставщика .

1. Если

m

i

a i >

n

j

b

j , т.е. поставки превышают потребности, то введем в рас-

смотрение фиктивного потребителя с объемом потребления, равным избыт-

2.

ку продукции

b

n

+ 1

m n

=

∑ ∑

a