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

Simplex

.pdf
Скачиваний:
11
Добавлен:
12.05.2015
Размер:
745.63 Кб
Скачать

коэффициентами выбрать такое (если оно существует), коэффициенты которого максимизируют значение функции cTx. [11]

Система ограничений ЗЛП (6) в векторной форме:

a*1x1 + a*2 x2 + K+ a*n xn = b.

Определение. Базисом ß матрицы A называется набор линейно-

независимых столбцов: ß={a* j1 , a* j2 ,..., a* jm }.

Определение. Базисной матрицей B называется матрица, составленная из столбцов, входящих в базис матрицы A: B = [a* j1 | a* j2 | ... | a* jm ] .

Матрица B является невырожденной m ×m матрицей.

Определение. Базисным решением, соответствующим ß, называется вектор x Rn, в котором:

xj=0 при a*j ß,

xjk есть k-я компонента вектора B–1b, где k=1,..,m.

Таким образом, базисное решение x можно найти с помощью следующей

процедуры:

выбрать множество линейно независимых столбцов в матрице A;

положить все компоненты вектора x, соответствующие столбцам, не входящим в базис ß, равными 0. Эти переменные будем называть небазисными;

решить m полученных уравнений для определения оставшихся m

компонент вектора x. Они будут называться базисными переменными.

Определение. Решение x будем называть допустимым базисным решением

(ДБР), если оно является базисным и все его компоненты неотрицательны.

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

Определение. ДБР называется невырожденным, если оно имеет точно m

положительных компонент (координат). Если число положительных компонент

меньше m, то решение называется вырожденным.

Теорема. Вектор x=(x1, x2,…, xn)T тогда и только тогда является допустимым базисным решением задачи (6), когда точка x=(x1, x2,…, xn)T

является вершиной его многогранного множества X.

Теорема (фундаментальная). Если ЗЛП имеет оптимальное решение (в ограниченной области всегда, а в неограниченной в зависимости от

11

ограниченности целевой функции z ), то оно совпадает, по крайней мере, с одним из ДБР системы ограничений.

4. Идея симплекс – метода

Согласно фундаментальной теореме вместо исследования бесконечного множества допустимых решений, необходимо исследовать лишь конечное число ДБР. Таким образом, принципиальная схема решения ЗЛП такова[7]:

найти все ДБР;

вычислить для каждого из них соответствующее значение ЦФ z;

сравнить и определить наилучшее.

Но, в общем случае при больших значениях n и m количество ДБР может

быть огромным (порядка Cnm) и практическое осуществление перебора всех ДБР станет невозможным. Эти трудности обусловлены тем, что указанная принципиальная схема связана с беспорядочным перебором ДБР, без учета,

насколько новое проверяемое ДБР изменяет ЦФ z и приближает ли оно нас к иско-

мому оптимуму. Если же указанный перебор ДБР производить целеустремленно,

добиваясь на каждом шаге монотонного изменения ЦФ z, т.е. чтобы каждое

следующее ДБР было лучше предыдущего (или, по крайней мере, не хуже), то число анализируемых ДБР можно резко сократить.

Основной метод решения ЗЛП – симплекс-метод – базируется на идее последовательного улучшения решения. Очевидно, что для реализации этой идеи метод должен включать три основных элемента:

способ определения исходного ДБР;

правило перехода к следующему “лучшему” ДБР;

критерий, по которому можно определить оптимальность найденного решения или необходимость его дальнейшего улучшения.

5. Преобразованная задача

Рассмотрим ЗЛП в канонической форме:

cT x MAX;

(7)

Ax = b;

(8)

x 0.

(9)

Пусть нам известно некоторые ДБР x системы ограничений (8). Не теряя общности, предположим, что первые m столбцов матрицы A образуют базис данного ДБР.

12

Обозначим через B базисную матрицу для ДБР x (первые m столбцов матрицы A), а через N – матрицу, составленную из остальных столбцов матрицы A.

Тогда

 

A = [B | N ].

(10)

В соответствии с представлением (10) разобьем вектор x на подвекторы xB и

xN, т.е.

xB x = x ,

N

где xB – вектор базисных переменных, а xN – вектор небазисных переменных.

Систему (8) можно записать в виде:

BxB + NxN = b.

(11)

Так как матрица B – невырожденная, то она имеет обратную матрицу B–1

тогда

 

 

 

 

 

 

 

 

B1BxB + B1NxN = B1b;

 

Ix + B1 NxN = B1b;

 

x

B

+ B1Nx

N

= B1b.

(12)

 

 

 

 

 

 

 

Система (12) эквивалентна системе (11).

 

Теперь разобьем вектор c на подвекторы cB и cN, в соответствии с

разбиением (10) матрицы A.

 

 

 

 

 

 

 

Тогда задачу (7)–(9) можно записать в виде:

 

cT x

B

+ cT x

N

MAX;

 

B

 

N

 

 

xB = B1b B1NxN ; xB , xN 0.

Подставим значение xB в ЦФ задачи:

cTB xB + cTN xN = cTB ( B1b B1NxN ) + cTN xN = = cTB B1b ( cTB B1N cTN )xN .

Тогда исходная задача может быть представлена в виде:

13

cTB B1b ( cTB B1N cTN )xN max; xB = B1b B1NxN ;

xB 0; xN 0.

Получили так называемую преобразованную задачу. Обозначив

β = B1b , πT = cTB B1 ,

можно записать преобразованную задачу следующим образом:

cT

β − ( πT N cT

)x

N

max;

(13)

B

 

 

N

 

 

 

x

 

= β − B1Nx

N

;

 

 

(14)

B

 

 

 

 

 

xB ,xN 0.

 

 

 

 

(15)

Так как xN=0, то xB принимает числовое значение β, а ЦФ – значение cBTβ.

Однако, в преобразованную задачу включаются все члены правых частей уравнений

(не смотря на то, что xN=0), т.к. они указывают на то, что произойдет с ЦФ и xB,

если один из элементов вектора xN увеличивается, начиная с нуля.

Иногда задачу (13)-(15) называют диагональной формой исходной задачи,

соответствующей ДБР x, а система (14) называется диагональной системой

относительно переменных x1,x2,…,xm. Система названа диагональной, потому что представима в виде:

( x

) +

 

 

 

 

 

 

 

 

 

 

= β ;

 

B 1

 

 

 

 

 

 

 

 

 

1

 

( xB )2 +

 

 

 

 

 

 

 

 

 

 

= β2 ;

 

 

( x ) +

 

B1 Nx

N

 

= β ;

 

 

 

 

 

 

 

 

B

3

 

 

 

 

 

3

 

K

 

 

 

 

 

 

K

 

 

 

 

 

 

 

 

 

 

 

( xB )m +

 

 

= βm .

 

x

B

 

 

 

β

 

 

 

 

Очевидно, что наше ДБР x =

 

 

=

 

 

.

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

0

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

6. Способ перехода от одного ДБР к другому

Пусть ДБР x0 соответствует преобразованной задаче (13)-(15). Перейдем от него к новому ДБР x1. При этом рассмотрим возможность того, что только одна

небазисная переменная станет возрастать, принимая положительные значения, в то время как остальные небазисные переменные останутся нулевыми [10]. Обозначим

α* j = B1 a* j , j = m+1,n

14

и запишем систему ограничений преобразованной задачи по столбцам:

xB = β − α*1(xN )1 −K− α* p (xN ) p −K− α*n (xN )n m..

Пусть начиная с нуля, возрастает переменная (XN)P, значит, вектор базисных

переменных изменяется согласно уравнению

 

 

 

 

 

 

xB = β − α* p( xN )p ,

 

(16)

 

так как другие небазисные переменные остаются равными нулю. При этом, в

зависимости от значений компонент вектора α*P возможны 3 следующих случая:

 

если

i ая

компонента

вектора

α* p

равна нулю

( αip = 0 ),

то

соответствующий ей элемент ( xB )i вектора xB

останется без изменений;

 

если

i ая

компонента

 

вектора

α* p

отрицательна

( αip < 0 ),

то

соответствующий ей элемент ( xB )i будет увеличиваться;

 

 

если

i − ая

компонента

 

вектора

α* p

положительна

( αip > 0 )

соответствующий ей элемент ( xB )i будет уменьшаться и станет меньше нуля,

когда величина (xN)p сделается достаточно большой. Этого допустить

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

 

 

 

Отсюда получаем максимально допустимое увеличение значения (xN)p

 

 

 

 

 

 

 

 

β

 

 

 

 

 

 

 

 

θ = MIN

 

i

,

 

 

(17)

 

 

 

 

 

 

 

 

 

 

 

i / α

ip

 

 

 

 

 

 

 

 

 

 

 

 

>0

 

αip

 

 

 

 

где αip и βi – элементы векторов α*p и β соответственно.

 

 

 

Пусть минимум в этом

уравнении достигается

при i=q тогда, если

(x

 

)

 

=

βq

 

, то в новом ДБР имеем:

 

 

 

 

 

 

 

N

p

αqp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x

 

)

 

= β

− α

 

 

βq

= 0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

q

 

 

 

q

 

 

qp αqp

 

 

 

 

 

 

 

 

(x

 

)

 

= β

 

− α

 

 

βq

, i q, 1i m.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

i

 

 

i

 

 

ip αqp

 

 

 

 

Отметим,

что выбор

 

q однозначен. Если уже

выбрана увеличиваемая

небазисная переменная p-я, то базисная q-я, которая первая обратится в нуль,

определяется величинами α*p и β. Если в нуль обращаются одновременно две или

15

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

Итак, мы пришли к следующей ситуации: переменная (xN)p стала базисной со

значением βq , а переменная (xB)q – небазисной (со значением 0). Это означает

αqp

такую перестановку в разбиении матрицы A, что столбец α*p становится на место q-го столбца матрицы B. В этом случае будем говорить, что (xN)p «вводится» в

базис, а (xN)p «выводится» из него.

Описанный способ перехода от одного ДБР к другому называется операцией замещения.

7. Условие оптимальности ДБР

Определение. Вектор-строка, на которую умножается слева xN в уравнении для ЦФ (13), называется вектором относительных оценок, т.к. он указывает, в какую

сторону и насколько изменится ЦФ при изменении xN.

Обозначим этот вектор через dN. Его j-ый элемент определяется так:

 

 

 

T

1

 

T

1

c j.

d N

= cB B

 

N

c j = cB B

a* j

 

j

 

 

 

j

 

 

 

Если относительная оценка (dN)j, то небазисной переменной (xN)j

положительна или равна нулю, но значение ЦФ не увеличивается при увеличении

(xN)j, начиная с нуля [11].

Теорема (условие оптимальности). Для ДБР x0 операция замещения, при

которой (xN)p вводится в базис, изменяет значение ЦФ на величину

θ (d

) = θ (cT B1a

(c

N

) ),

(18)

 

N p

 

 

B

*p

 

p

 

где

 

 

 

 

 

 

 

 

 

θ =

 

β

i

 

 

 

 

 

MIN

 

 

.

 

 

 

 

αip

 

 

 

 

1im|αip >0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если dN0, то x0 оптимально.

ЗЛП будем называть невырожденной, если все ее ДБР не вырождены. Справедлива теорема, обратная последней теореме.

Теорема. Пусть ЗЛП является невырожденной, а x0 ДБР, являющееся ее

решением. Тогда dN0.

16

В том случае, если ЗЛП не является невырожденной, предыдущая теорема приобретает вид:

Теорема. Для того, чтобы ДБР x0 являлось решением исходной ЗЛП,

необходимо и достаточно существование такого базиса для x0, для которого

dN0.

Теорема. Если некоторому ДБР исходной задачи соответствует задача,

для которой существует небазисная переменная (xN)p такая, что (dN)p<0 и (aN)*p0, то целевая функция исходной задачи не ограничена на множестве

допустимых решений (θ не ограничено сверху и можно сколько угодно увеличивать целевую функцию).

Пример 7.1

Дана ЗЛП

z = −3x1 + 4 x2 + 2 x3 + 3x4 + 5x5 MIN, 2 x1 + 2 x2 3x3 + x4 + 7 x5 = 6,

x1 + x2 + 2 x3 3x4 + 4 x5 = 3, x1, x2 , x3 , x4 , x5 0 .

Знайти всі компоненти перетвореної задачі для ДБР, який відповідає базису

{a*2 , a*5} . Чи є оптимальним цей ДБР?

Розв’язок

Базисні, небазисні змінні та відповідні їм векторикоєфіцієнтів ЦФ:

 

x2

 

 

x1

 

 

 

4

 

3

xB

 

 

 

 

cB

; cN

 

 

 

=

 

;

xN = x3

;

=

=

2

.

 

x5

 

 

x

 

 

 

5

 

 

3

 

 

 

 

 

4

 

 

 

 

 

 

 

 

Небазисна матриця та вектор правих частин обмежень:

2

3

1

6

N =

1

 

 

; b = .

 

2

3

3

Базисна матриця та матриця, обернена до неї:

 

2

7

 

B

 

= 2 4 7 1 = 1;

B1

 

4

7

 

B =

 

 

;

 

=

 

 

.

1

4

 

 

 

 

 

1

2

 

Значення базисних змінних та ЦФ:

xB0

4

7 6

3

 

= B1b =

 

 

=

;

 

1

2

3

0

 

3

z0 = cTB xB0 = [4 5] = 12.

0

Вектор відносних оцінок небазисних змінних:

17

dNT

= cBT B1 N cTN

4

7 2 3

1

 

= [4 4]

1

 

 

[3 2 3] =

 

 

 

2 1 2

3

 

= [43 71 62].

Оскільки вектор відносних оцінок небазисних змінних містить додатні компоненти, а задача на максимум, то поточний базисний розв'язок не є оптимальним.

8. Схема симплекс-метода

Рассмотренные в разделах 6-7 способы перехода от одного ДБР к другому и теоремы ЛП, позволяют построить так называемый симплекс-метод решения ЗЛП в канонической форме, который имеет следующую схему:

Шаг 0. Построение начального ЗЛП.

Пусть задано ДБР x0 исходной ЗЛП (такое ДБР называется начальным). Пусть данному ДБР соответствует базис ß, вектор базисных переменных xB=B–1β,

небазисных переменных xN, базисная матрица B, небазисная матрица N.

Шаг 1. Вычисление компонент вектора относительных оценок небазисных переменных.

dNT = cTB B1N cT N .

Шаг 2. Проверка выполнения условия оптимальности.

Если выполняется dN0, то прекратить вычисления – текущее ДБР является решением исходной задачи. Иначе – перейти на шаг 3.

Шаг 3. Выбор небазисной переменной (xN)p, вводимой во множество базисных переменных.

Выбрать p, для которого (dN)p<0 (обычно p соответствует максимальная по

модулю отрицательная компонента dN).

Шаг 4. Выбор базисной переменной, выводимой из множества базисных переменных.

Вычислить α*p=B–1a*p (пересчет столбца вводимого в базис).

Если α*p<0, то прекратить вычисления – целевая функция не ограничена сверху.

Выбрать q, для которого выполняется

βq

= MIN

βi

, т.е. переменная

αqp

αip

 

i|α ip > 0

 

(xB)q будет выведена из множества базисных переменных.

Шаг 5. Операция замещения.

18

Построить базис нового ДБР путем замены q-го столбца α*p текущего базиса

ß на столбец α*p. Построить новые базисную матрицу B и небазисную матрицу N.

Найти новые значения базисных переменных xB=B–1b и ЦФ cBTβ.

Перейти на шаг1.

Пример 4

Дана система ограничений:

2x1 + x2 + x3

= 2;

x2

+ x4

= 6;

x1 + x2

+ x5 = 2;

x1 , x2 , x3 , x4 , x5 0;

Являются ли базисами данной системы, следующие множества векторов,

{a*3 , a*4 , a*5 } ,

{a*2 , a*4 , a*5} ,

{a*1 , a*4 , a*5 }. ?

если да , то какие решения им соответствуют:

Решение. Базисом β матрицы А называется набор из m линейнонезависимых столбцов β= {a* j1 , a* j2 ,..., a* jm }.

Решение x называется допустимым базисным решением если оно является базисным и все его компоненты не отрицательны.

В нашей задаче m=3, n=5. То есть количество претендентов на базис в нашей задаче будет не более, чем Cnm = C53 .

а) Рассмотрим первое множество векторов - {a*3 , a*4 , a*5 }. Составим матрицу из этих векторов, если её детерминант будет отличен от нуля, то эти векторы составляют базис:

 

 

 

1

0

0

 

 

 

 

 

DET =

0

1

0

= 1 .

 

 

 

 

 

0

0

1

 

 

 

Значит,

совокупность

векторов

{a*3 , a*4 , a*5 }является

базисом

исходной

системы

уравнений.

Выпишем

уравнения системы

с учетом

того,что

небазисные переменные принимают нулевые значения:

 

 

 

 

x3

 

= 2;

 

 

 

 

 

x4

= 6;

 

 

 

 

 

 

x5 = 2.

 

 

 

 

 

 

19

 

 

 

 

Соответствующее базисное решение имеет вид:

x1

 

 

0

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

 

 

 

 

 

 

x2

 

0

 

 

x1 = x

3

 

= 2

 

- базисные переменные;.так как они ≥ 0, то мы

 

 

 

 

 

 

6

 

x4

 

 

имеем допустимое БР

 

 

 

 

2

 

 

x5

 

 

 

 

B) Рассмотрим множество векторов - {a*2 , a*4 , a*5 }.

Теперь составим матрицу из соответствующих векторов и найдём её

1 0 0

определителю: DET = 1 1 0 = 1

1 0 1

Значит множество векторов {a*2 , a*4 , a*5} является базисом. Найдём соответствующее ему базисное решение, для этого выпишем уравнения системы с учетом того, что x1 = x3 = 0 :

x2

 

= 2;

 

x2

= 2;

x2 + x4

= 6;

 

x4

= 4;

x2

+ x5 = 2;

 

 

x5 = 0.

Итак, данному базису соответствует решение:

x1

 

0

 

небазисная

 

 

 

 

 

 

 

 

x

2

2

 

базисная

x 2 = x

3

 

= 0

 

небазисная

 

 

 

 

 

 

 

 

 

 

 

 

x

4

 

4

 

базисные

 

 

 

 

0

 

 

x5

 

 

 

 

 

По условию нашей задачи m = 3 , а в решении x 2 только две базисные переменные положительны, следовательно, имеем вырожденное ДБР (так как у него количество положительных координат меньше m ).

с) Рассмотрим множество векторов - {a*1 ,a*4 ,a*5}.

 

2

0

0

 

Составим матрицу из этих векторов, DET =

0

1

0

= −2 0

 

1

0

1

 

 

 

 

 

 

Значит множество векторов {a*1 , a*4 , a*5 } является базисом. Выпишем уравнения системы с учетом того, что x2 = x3 = 0 :

2x1

= 2;

x1

= −1;

x4

= 6;

x4

= 6;

x5

= 2;

x5

= 2;

 

20

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]