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

01-09-2014_14-57-50 / Моделир. Оптим.(з)_Подобие_ЛП_лекц

..pdf
Скачиваний:
109
Добавлен:
29.03.2015
Размер:
3.3 Mб
Скачать

181

для коэффициентов αij и

начальной угловой точке

x

 

0

p j индекс 0, показывающий, что они относятся к

.

 

Рассмотрим переход от симплекс-таблицы, соответствующей угло-

вой точке x0 (табл. 6.5), к симплекс-таблице для угловой точки x1.

 

Пусть номера q и k определены так, как это сделано выше. Элемент

qk

, а также строка и столбец табл. 6.5, на пересечении которых он сто-

0

 

α

 

ит, называются разрешающими или опорными.

Из формул (6.23) и (6.24) следует, что преобразование начальной сим-

плекс-таблицы с опорным элементом

α0 qk

(см. табл. 6.5) приводит к новой

симплекс-таблице (табл. 6.6), для определения элементов которой необходимо выполнить операции, указанные в нижеприведенном алгоритме.

Таблица 6.5

Начальная симплекс-таблица

Базис

 

Переменные

 

Свободный

 

 

 

 

 

член

 

xm+1

… xk

xn

 

 

 

 

 

 

 

 

 

 

 

 

x1

α

 

α

 

α

 

 

 

 

0

 

0

 

0

 

0

 

.

1m 1

1k

1n

b1

 

 

 

.

 

 

.

 

 

.

 

 

 

 

 

 

 

 

.

 

 

.

 

 

.

 

 

 

 

 

 

 

 

.

 

 

.

 

 

xq

 

 

 

 

 

 

0

 

0

 

0

 

0

 

.

α

α

α

b

 

 

qm 1

qk

qn

 

 

.

 

 

 

 

 

q

 

 

 

.

 

 

.

 

 

.

 

 

 

 

 

 

 

 

.

 

 

.

 

 

xm

 

 

 

 

 

 

 

 

.

 

 

.

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

 

 

α

α

α

 

0

 

 

mm 1

 

mk

 

mn

bm

 

f (x)

0

 

0

 

0

 

0

 

pm 1

pk

pn

f (x

)

 

 

 

 

 

 

 

 

 

 

Таблица 6.6

Симплекс-таблица для угловой точки x1

Базис

 

Переменные

 

Свободный

 

 

 

 

 

член

xm+1

… xq

xn

 

 

 

 

 

 

 

 

x1

α

 

1

 

α

1

 

1

 

 

1

.

1m 1

α1q

1n

b1

.

 

 

.

 

 

.

.

 

 

.

 

 

.

xk

α

 

.

 

 

.

.

 

α

 

1

1

 

1

 

1

 

 

km 1

kq

α

b

.

 

 

 

 

kn

k

 

 

.

 

 

.

.

 

 

 

 

 

 

.

 

 

.

 

 

 

 

 

xm

 

 

 

 

 

.

1

 

1

 

1

1

 

 

α

α

α

bm

 

mm 1

 

mq

 

mn

f (x)

p1

p1

p1

f (x1 )

 

m 1

 

q

 

n

 

 

 

 

 

 

 

 

181

182

6.2.4. Алгоритм решения задач симплекс – методом

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

ма.

1. Задачу линейного программирования привести к каноническому виду. После введения добавочных переменных систему уравнений и линейную

функцию записываем в виде, который называется расширенной системой:

α

x α

 

x

 

 

α

 

 

x

 

x

 

 

 

b

0

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

1

12

2

 

 

 

 

 

1n

 

n

 

n 1

 

 

 

1

 

 

 

 

α

 

x

α

 

 

x

 

 

 

α

 

 

 

x

x

 

 

 

b

0

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

1

 

22

2

 

 

 

 

 

 

2n

 

n

 

n 2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α

 

 

x

α

 

x

 

 

 

 

α

 

 

 

x x

 

 

 

 

b

0

,

 

m1

 

 

 

 

mn

m

 

 

 

1

 

 

m2

2

 

 

 

 

 

 

n

 

n

 

 

 

 

m

 

f (x) p x p x

2

 

 

 

 

p

x

n

 

 

0.

 

 

 

 

 

 

 

 

 

 

1

1

 

 

2

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

Предполагаем, что все добавочные переменные имеют тот же знак, что и свободные члены; в противном случае используем так называемый М – метод, который будет рассмотрен ниже.

2.Определить базисные и свободные переменные.

3.Исходную расширенную систему заносим в первую симплекс – таблицу. Последняя строка таблицы, в которой приведено уравнение для линейной функции цели, называется оценочной. В ней указываются коэффициенты функции цели pj. В левом столбце таблицы записываем основные переменные

(базис), в последующих – коэффициенты

α ij

при свободных переменных. В

предпоследнем столбце – свободные члены расширенной системы b10 ,b20 ,...,bm0 .

Последний столбец подготовлен для оценочных отношений, необходимых для определения базисной переменной xqk на основании соотношения (6.29).

4. Определить возможность решения задачи по значениям pj согласно теоремам 6.7,…, 6.9.

5. Выбрать разрешающий (опорный) элемент

α qk

. Если критерий опти-

мальности не выполнен (не выполнены условия теоремы 6.7 или 6.8), то наибольший по модулю отрицательный коэффициент pj < 0 в последней строке определяет разрешающий (опорный) столбец pk.

Составляем оценочные отношения каждой строки по следующим прави-

лам:

 

10) , если все b

и α

i

ik

20) , если все b 0

и

i

 

30) , если αik 0; 40) 0, если bi 0 и αik

имеют разные знаки;

α 0 ;

ik

0;

182

183

50)

b

, если bi

и

ik

 

α

i

 

 

ik

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определим

min

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

нечного оптимума (

имеют одинаковые знаки.

b

 

 

 

 

 

 

 

. Если конечного минимума нет, то задача не имеет ко-

i

 

 

 

 

 

αik

 

 

 

 

 

 

 

fmax ). Если минимум конечен, то выбираем строку q, на

которой он достигается (любую, если их несколько), и называем ее разрешающей (опорной) строкой. На пересечении разрешающих строки и столбца находится разрешающий (опорный) элемент αqk.

60) Переход к следующей таблице по правилам:

а) в левом столбце записываем новый базис: вместо основной переменной xq – переменную xk, т.е. поменяем местами переменные xq и xk;

б) на место опорного элемента αqk поставить 1;

в) на остальных местах опорной строки в новой таблице оставить элементы исходной таблицы;

г) на остальные места в опорном столбце поставить соответствующие

элементы исходной таблицы, умноженные на –1;

αij

,

bi

,

p j

в новой таблице

д) на оставшиеся свободные места элементов

 

0

 

0

 

0

 

записать числа

αij

αij , bi ,

αqk αij

p j

, которые находятся следующим образом:

 

 

 

α

 

α

ik ,

b

α

 

b

0

α

b

0

,

p

 

α

 

p

 

α

 

p

qj

qk

 

 

j

qk

j

qj

 

 

 

i

 

i

 

ik q

 

 

 

 

k

.

Для упрощения вычислений по этим формулам их можно сформулировать в виде «правила прямоугольника» (рис. 6.13): элементы на диагоналях

прямоугольника с вершинами

α

qk

, α

qj

, α

ij

, α

ik

(или αqk ,

b

q

,

b

 

,

α

ik

, или αqk

,

α

qj

,

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

p

j

 

,

p

k

 

) перемножаются (произведение, не содержащее опорного элемента

α

qk

 

,

берется е)

мент αqk

со знаком минус) и полученные произведения складываются; все полученные элементы новой таблицы разделить на опорный эле-

.

70) По значению элемента p j определить, найдено ли оптимальное значение

целевой функции. В случае отрицательного ответа продолжить решение (возврат к пункту 6).

 

 

xk

 

x j

 

xk

 

 

 

x

αqk

αqj

x

αqk

bq

 

q

 

(-)

 

q

 

(-)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

(+)

xi

 

(+)

 

 

 

 

 

 

 

 

α

ik

α

ij

 

α

ik

b

0

 

 

 

 

 

i

а

б

xk

x j

α

qk

α

qj

 

 

 

 

(-)

 

 

 

(+)

pk

p j

 

в

 

183

184

Рис. 6.13. Правило прямоугольника для определения чисел:

а − αij, б − bi, в − pj.

Рассмотрен алгоритм преобразования симплекс – таблиц для невырожденных допустимых базисных решений, т.е. выполнялась ситуация, описанная теоремой 6.9. Если исходная задача линейного программирования является вырожденной, то в ходе ее решения симплекс – методом могут появиться и вырожденные базисные решения. При этом возможны холостые шаги симплекс – метода, т.е. итерации, на которых f(x) не изменяется. Возможно так же и зацикливание, т.е. бесконечная последовательность холостых шагов. Для его предотвращения разработаны специальные алгоритмы – антициклины. Однако в подавляющем большинстве случаев холостые шаги сменяются шагами с убыванием целевой функции и процесс решения завершается в результате конечного числа итераций.

Пример 6.12. Решить задачу, приведенную в примере 6.11, симплекс методом.

Решение.

И т е р а ц и я 1.

В качестве начальной симплекс – таблицы возьмем таблицу, найденную в примере 6.9 и соответствующую допустимому базисному решению x0 (0;0;7;8;3) :

Таблица 6.7

Начальная симплекс - таблица

Базис

Переменные

Свободный член

Оценочное от-

 

x1

x2

 

ношение

x3

1

2

7

7

x4

2

1

8

4

x5

0

1

3

 

f(x)

-3

-3

0

 

В последней строке таблицы есть два отрицательных элемента, p j 0 , и

столбец, соответствующий каждому из них можно считать опорным. Выберем, например, первый столбец (этот столбец отмечен стрелкой). Согласно теореме 6.9 существует допустимое базисное решение. Опорную строку найдем по правилу (6.29). В соответствии с пунктом 5 находим оценочные отношения:

min 7 /1; 8 / 2; 3/ 0 4 , т.е. это вторая строка. Опорный элемент 21 обведен рамкой.

184

185

Будем формировать новую таблицу в соответствии с описанным алго-

ритмом

 

 

 

 

 

 

 

 

 

п.6 а,б

 

 

п.6 в,г

 

 

x4 x2

 

 

 

x4

x2

 

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

x3

-1

 

 

 

x1

1

 

 

x1

1

1

8

 

x5

 

 

 

x5

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

Свободные места последней таблицы заполним по «правилу прямоугольника». Например, число, стоящие в строке при x3 и столбце при x2 этой табли-

 

b

2 7

цы, равно 2∙2-1∙1 = 3. Для

1

 

1

 

ний, а также пункта 6е (т.е. деления симплекс – таблицу:

п.6д

8 1 6

и т.д. В результате этих вычисле-

 

на опорный элемент) получим искомую

п.6е

 

x4

x2

 

 

 

 

 

х3

-1

3

6

х1

1

1

8

х5

0

2

6

 

 

 

 

 

3

-3

24

 

 

 

 

 

x4

x2

 

 

 

 

 

x3

-1/2

3/2

3

x1

1/2

1/2

4

x5

0

1

3

 

 

 

 

 

3/2

-3/2

12

 

 

 

 

Отметим, что в результате перехода к новому допустимому решению значение целевой функции уменьшилось с 0 до –12 (см. нижний элемент последнего столбца таблицы).

И т е р а ц и я 2.

Вкачестве опорного (см. п. 6е) можно взять только второй столбец

(

p

j

 

 

3

2

). С учетом (6.29) находим опорную строку:

 

 

 

 

Таблица 6.8

Симплекс-таблица для угловой точки х1

Базис

Переменные

Свободный

Оценочное от-

 

x4

 

x2

член

ношение

x3

-1/2

 

3/2

 

3

2

x1

1/2

1/2

 

4

8

x5

0

1

 

3

3

f(x)

3/2

-3/2

12

 

min 3: 3/ 2; 4 :1/ 2; 3:1 3: 3/ 2 , т.е. это первая строка. Опорный элемент 12 3/ 2 обведен рамкой.

Преобразуем таблицу согласно алгоритму, получаем

185

186

 

x4

x3

 

 

 

x4

x3

 

 

 

x4

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

-1/2

1

3

 

x2

-1/2

1

3

 

x2

-1/3

2/3

2

x1

 

-1/2

 

 

x1

1

-1/2

9/2

 

x1

2/3

-1/3

3

x5

 

-1

 

 

x5

1/2

-1

3/2

 

x5

1/3

-2/3

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3/2

 

 

 

3/2

3/2

45/2

 

 

1

1

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, на данной итерации значение f(х) уменьшилось с –12 до –

15.

И т е р а ц и я 3.

Так как все элементы

p

j

 

в последней строке таблицы неотрицательны, то,

согласно теореме 6.9, базисное решение является точкой минимума в рассматриваемой задаче, т.е. х* = (3;2;0;0;1), f* = –15. Графическое решение задачи представлено на рис. 6.14, откуда видно, что х* = (3;2), f* = f(х*) = –15

x2

 

III

3

I

 

 

x*

2

- f

 

X f(x*)=-15

1

f(x)=-6 II

1

2

3

x1

Рис. 6.14. Графическое решение задачи 6.10

Пример 6.13. Решить задачу линейного программирования симплекс – методом, используя в качестве начальной угловой точки х0 базисное решение, соответствующее свободным переменным x1 и x3.

f (x) x1 9x2 5x3 3x4 4x5 14x6 min,

186

 

 

 

 

 

187

 

x

 

x

4

20,

1

 

 

 

 

x

2

x

5

50,

 

 

 

 

 

 

x

3

x

6

30,

 

 

 

 

 

x

4

x

5

x

6

60,

 

 

 

 

 

x

j

0,

j 1,...,6.

 

 

 

 

 

 

 

Столбцы с номерами 2, 4, 5 и 6 матрицы А системы ограничений – равенств данной задачи образуют базисный минор. С помощью эквивалентных преобразований приводим эту систему к виду (6.19), где базисными являются

переменные

x

2

, x

4

, x

, x

 

 

5

6

:

 

 

 

 

x

x

 

 

 

 

2

1

 

 

 

 

x

x

 

 

 

 

4

1

 

 

 

 

x

x

 

 

 

 

5

1

 

 

 

 

x

x

 

 

 

 

6

3

Полагая в равенствах

находим

x

40,

x

20,

2

 

4

 

x

40,

 

3

 

 

20,

(6.35)

x3 10,

30.

(6.35) свободные переменные x1 и x3 равными нулю,

x

10,

x

30

0

, т.е. базисное решение х =

5

 

6

 

(0;40;0;20;10;30). Так как все базисные переменные в х0 положительны, данное базисное решение является допустимым (т.е. угловой точкой) и невырожденным.

Исключив с помощью (6.35) базисные переменные в выражении для целевой функции, получим:

f (x)

 

880 7x

14x

 

 

1

3

(6.36)

С помощью равенств (6.35) и (6.36) составляем симплекс – таблицу , соответствующую угловой точке х0:

Таблица 6.9.

Начальная симплекс – таблица

Базис

Переменные

Свободный

Оценочное от-

 

 

 

 

 

член

ношение

 

x1

x3

 

 

 

 

 

 

x2

1

1

 

40

40

x4

1

0

 

20

 

x5

-1

-1

10

 

x6

0

 

1

 

30

30

f(x)

-7

-14

-880

 

 

 

 

 

 

 

 

187

188

Среди коэффициентов p j , j 0 , из (6.22) есть отрицательные – это элементы –7 и –14 последней строки табл.6.9. Следовательно, угловая точка х0 не

является решением задачи.

p j среди соответствующих ко-

 

Для каждого из отрицательных элементов

 

 

0

 

0

 

эффициентов αij из (6.19) (т.е. элементов таблицы, стоящих в том же столбце,

что и

p j ) есть положительные, тогда согласно теореме 6.9 возможен переход к

 

0

 

новой угловой точке х1 с меньшим значением f(х).

Найдем разрешающий элемент. В качестве опорного можно взять любой из столбцов таблицы , соответствующих свободным переменным. Выберем из них наибольший по модулю (-14); второй столбец разрешающий, переменная x3

перейдет в основные (этот столбец отмечен стрелкой).

Разрешающую строку находим в

соответствии с (6.29): так

как

min 40/1;20 / 0;10/( 1);30/1 30/1

, то разрешающей является строка, соответ-

 

ствующая базисной переменной x6 . Итак,

опорный элемент найден 42

1, в

табл. 6.9 он обведен рамкой.

 

 

 

Заполнив новую табл. 6.10 по правилам, описанным выше. Отметим, что значение f(х) в новой угловой точке уменьшилось по сравнению с исходным: 460 вместо 880.

В нижней строке последней таблицы есть отрицательный элемент –7, стоящий в столбце при свободной переменной x1 . Кроме того, в этом столбце имеются положительные элементы, поэтому в дальнейшем возможно уменьшение f(х) с помощью очередного шага симплекс – метода.

На данном шаге выбор опорного столбца однозначен и определяется от-

рицательным элементом –7 последней строки. Опорная строка находится из

условия (6.29): так как

min 10/1;20 /1; 40/( 1);30/ 0 10/1

, то это строка при ба-

 

зисной переменной x2. Опорный элемент в табл. 6.10 обведен рамкой.

Таблица 6.10.

Симплекс – таблица для угловой точки х1

Базис

 

Переменные

Свободный

Оценочное от-

 

x1

x6

член

ношение

 

 

 

 

 

 

 

x2

 

1

 

1

10

10

x4

1

 

0

20

20

x5

-1

1

40

 

x3

0

 

1

30

 

f(x)

-7

14

-460

 

 

 

 

 

 

 

 

Как и на предыдущем шаге, находим очередную симплекс – таблицу (табл. 6.11) по общим правилам:

Таблица 6.11

Симплекс – таблица для угловой точки х2

188

189

Базис

Переменные

 

Свободный

Оценочное от-

 

x2

 

x6

член

ношение

 

 

 

 

 

 

x1

1

 

-1

10

 

x4

-1

 

1

10

 

x5

1

 

0

50

 

x3

0

 

1

30

 

f(x)

7

 

7

-390

 

 

 

 

 

 

 

В табл. 6.11 оба коэффициента

p

j

,

 

 

j

0

, в последней строке положитель-

ны. Поэтому угловая точка х2, соответствующая свободным переменным x2 и x6 , является точкой минимума целевой функции f(х): х* = х2 = (10;0;30;10;50;0). Минимальное значение f(х) со знаком минус записано в правом нижнем углу

табл. 6.11, поэтому f

*

390 . Графическое решение задачи представлено на

 

 

рис. 6.15, откуда видно, что х* = (10;30), f* = f(х*) = 390.

 

 

x

 

 

3

 

 

40

 

 

x*

 

 

30

20

- Ñ

f

 

 

 

10

 

 

10

 

f

 

 

 

(

 

 

 

x

 

 

 

*

 

 

 

)=

 

 

 

39

 

 

 

0

 

 

 

 

 

x

20

30

40

1

 

Рис. 6.15. Графическое решение задачи 6.11

6.2.5. Задачи максимизации

Для решения задач максимизации можно использовать два подхода. Подход 1. Преобразование задачи максимизации в эквивалентную задачу

минимизации путѐм умножения целевой функции на –1 и последующего применения симплекс–метода к задаче минимизации.

Подход 2. Как показано выше, относительные оценки в строке pj представляют изменение целевой функции f при уменьшении небазисной переменной на единицу. Отрицательный коэффициент в строке pj указывает на уменьшение f при увеличении соответствующей небазисной переменной.

Следовательно, для задач максимизации в базис должны вводится небазисные переменные xj с положительными pj, поскольку они улучшают целевую функцию. Если все коэффициенты в строке pj отрицательные или равны нулю, текущее решение оптимальное.

Пример 6.14. Решить симплекс – методом задачу:

f(x) = 2х1+3х2→max

при ограничениях

189

190

x

3x

18,

 

1

 

2

 

2x x

16,

 

 

1

2

 

 

x

5,

 

 

 

2

 

 

 

3x

21,

 

 

1

 

 

x

0,

x

2

1

 

 

0

(I) (II) (III) (IV)

.

Решение. С помощью дополнительных неотрицательных переменных перейдем к расширенной системе уравнений. В данном случае все дополнительные переменные вводятся со знаком «+», так как все неравенства имеют вид « ».

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

x

3x

x

18,

 

 

1

 

2

3

 

 

2x x

x

16,

(6.37)

 

 

1

2

4

 

 

 

x

x

5,

 

 

 

 

 

2

5

 

 

 

 

 

 

 

 

21.

 

3x x

 

 

 

1

6

 

 

 

И т е р а ц и я 1.

Полагая в равенствах (6.37)

находим

x3

18

,

x4

16

,

x5

5

свободные переменные x1, x2 равными нулю, , x6 21 , т.е. базисное решение х0 =

(0;0;18;16;5;21). Так как все базисные переменные в х0 положительны, данное базисное решение является допустимым (угловой точкой) и невырожденным. Используя подход 1, перейдем к задаче минимизации

f(x) = 2x13x2 → min. (6.38)

С помощью равенств (6.37) и (6.38) составляем симплекс – таблицу, соответствующую угловой точке х0:

Таблица 6.12

Начальная симплекс-таблица

Базис

Переменные

Свободный

Оценочное от-

 

x1

x2

член

ношение

x3

1

3

18

6

x4

2

1

16

16

x5

3

1

5

5

x6

0

0

21

 

f(x)

-2

-3

0

 

В соответствии с п.4 алгоритма проверяем критерий оптимальности. В последней строке имеются отрицательные коэффициенты. Выберем из них наибольший по модулю (-3); второй столбец разрешающий, переменная x2 пе-

190