Материал: Методы оптимизации в примерах и задачах. Медведь Н.А., Фокин А.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Задачи для самостоятельного решения

Решить графическим методом следующие задачи:

4.2.1. 4x1

2x2

max

2x1

3x2

18,

 

x1

3x2

9,

 

2x1

x2

 

10,

 

x1

0, x2

 

0.

 

4.2.3. x1

2x2

 

min

x1

x2

1,

 

x1

x2

 

2,

 

x1

2x2

 

0,

 

x1

0, x2

 

0.

 

4.2.5. x1

3x2

 

max

x1

x2

1,

 

2x1

x2

 

2,

 

x1

x2

 

0,

 

x1

0, x2

 

0.

 

4.2.2. 2x1

4x2

max

 

3x1

 

2x2

11,

 

2x1

2x2

2,

 

x1

3x2

0,

 

 

x1

0, x2

0.

4.2.4. 2x1

4x2

max

 

x1

x2

3,

 

 

x1

2x2

12,

 

3x1

 

x2

15,

 

x1

0, x2 0.

4.2.6. x1

 

x2

max

x1

2x2

10,

 

x1

2x2

2,

 

2x1

x2

10,

 

x1

0, x2

0.

 

4.2.7. x1

x2

max(min)

4.2.8.

2x1

3x2

max

2x1

4x2

16,

2x1

x2

10,

 

4x1 2x2 8,

2x1 3x2 6,

 

x1

3x2

9,

2x1

4x2

8,

 

x1

0, x2

0.

x1

0, x2

0.

 

4.2.9. x1

x2

max

4.2.10.

x1

2x2

max

93

x1

2x2

14,

4x1

2x2

12,

5x1 3x2

15,

x1

3x2

6,

4x1

6x2

24,

2x1

4x2

16,

x1

0, x2

0.

x1

0, x2

0.

4.3. Алгоритм симплексного метода

Рассмотрим задачу линейного программирования, записанную в канонической форме:

 

 

 

 

 

z(x)

cT x

max

(4.3.1)

 

 

 

 

 

Ax

b, (b

0)

(4.3.2)

 

 

 

 

 

x

0 ,

 

(4.3.3)

где cT

(c1 ,..., cn ) , x T (x1 ,..., x n ) ,

bT (b1 ,..., b m ) , A (aij ) ,

 

 

 

 

 

 

 

i 1, m ,

j 1, n

 

 

 

 

 

План ЗЛП x

(x1, x 2 ,..., x n )

называется опорным планом

(базисной точкой), если векторы-столбцы матрицы А: Ai1 ,..., Aik ,

k n , соответствующие его ненулевым координатам, линейно независимы.

Симплекс-метод решения ЗЛП (1)-(3) представляет собой итерационную процедуру последовательного перехода от одного базисного решения к другому с меньшим (большим) значением целевой функции до получения оптимального решения. Следует отметить, однако, что на начальном этапе решения обязательно наличие исходной базисной точки.

Известно, что число положительных координат базисной точки не может быть более, чем ранг матрицы r(А)= m. Если базисная точка содержит ровно т положительных координат, то она называется невырожденной, в противном случае - вырожденной. Задача называется невырожденной, если допустимое множество не имеет вырожденных базисных точек.

Перебор базисных точек осуществляется с помощью преобразований Жордана-Гаусса.

Пусть имеется исходная базисная точка допустимого множества ЗЛП xBT (xi ,i I; xj 0, j J ) . Координаты xi ,i I

94

будем в дальнейшем называть базисными, xj 0, j J -

небазисными. Соответственно множество I - множеством базисных (зависимых) индексов, J -множеством небазисных

(свободных) индексов. В случае невырожденной задачи каждой базисной точке соответствует известный базис, состоящий из

векторов Ai ,i I . Обозначим его через В. Заметим далее, что

каждая итерация метода Жордана-Гаусса соответствует переходу от одной базисной точки к другой при замене одной базисной (зависимой) переменной на одну небазисную (свободную). При этом выбору подлежит номер небазисной переменной k и жестко

определяется номер базисной переменной l ( alk 0 ). Координаты новой базисной точки вычисляются следующим образом:

H

 

 

 

 

x l

 

 

 

x l

 

 

 

 

 

 

 

 

x B

(x i

 

 

 

 

a ik , i I; x k

 

 

 

; x j

0, j J, j k). (4.3.4)

 

a lk

a lk

 

 

 

 

 

 

 

Таким образом, получается алгоритм, позволяющий перебрать все базисные точки ЗЛП. Однако возникает естественное желание исключить из рассмотрения точки, обеспечивающие «худшее» значение целевой функции, нежели уже известные. С целью такой «фильтрации», вычислим значение целевой функции в

точке xBH , представленной в виде (4.3.4).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обозначим

 

 

xl

 

min

xi

. Тогда

 

 

 

 

 

 

 

 

 

 

alk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

aik 0

aik

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z(x BH )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(xi

 

 

 

 

aik )ci

 

ck

ci xi

(

ciaik

 

ck ). (4.3.5)

 

 

i I

 

 

 

 

 

 

 

 

 

 

i I

 

 

 

i

I

 

 

 

 

Обозначим

 

 

 

k

 

ci aik ck

матричной

 

форме

 

 

 

 

 

 

 

 

 

i

I

 

 

 

 

 

 

 

 

 

 

 

 

 

k cBT B 1 Ak

ck ,

cB

- вектор коэффициентов целевой функции

при базисных переменных). В таком случае

z(xH ) z(x )

k

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

B

 

Отсюда

видно,

 

 

что

если

 

 

выбрано

k такое,

что

k

0 ,

то на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

следующей итерации будет получена точка с большим значением

целевой функции (т.к.

0 ).

Если

 

k

0 , то произойдет

уменьшение целевой функции,

при

k

0

значение целевой

 

 

 

 

 

95

функции не изменится. Если

k

0 , но все

aik

0 , то, выбирая

любое положительное число

в

качестве

,

будем получать

допустимую, но не базисную точку. (см. (4.3.4)). Значение целевой функции в этой точке изменяется в соответствии с формулой (4.3.5), откуда видно, что если выбирать как угодно большим, то значение функции цели будет как угодно увеличиваться. Следовательно, в таком случае можно сделать вывод о неограниченности целевой функции на допустимом множестве.

 

Теорема.

Если

 

некоторой

 

 

базисной

 

 

 

точке

xB

соответствует

ситуация,

при

которой

 

все

 

k

 

0 ,

то

такая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

точка является оптимальной в задаче (4.3.1 – 4.3.3).

 

 

 

 

 

 

 

 

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

базового симплекс метода.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритм базового симплекс метода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задана исходная базисная точка x B : xTB

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

 

(xi ,i

I; x j

0, j

J).

 

Вычислить оценки по формуле

j

 

 

ci aij

c j

,

j J .

 

 

 

 

 

 

 

 

 

i

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

Проверить, если все

j

 

0 ,

то перейти к п.8.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

Проверить, если k J :

k

0

и все aik

 

 

 

0 , то перейти к п.10.

4.

Выбрать k : k

0 (>0, если задача на min) и вектор Ak

имеет

 

хотя бы одну строго положительную координату (выбор такого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

номера k произволен, например, max

 

j

 

 

 

 

 

k

).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

Вычислить параметр

 

по формуле

 

 

 

 

xl

 

min

xi

 

 

 

 

 

 

 

alk

aik

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

aik

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.Осуществить переход к новой базисной точке с помощью преобразований Жордана-Гаусса с направляющим элементом alk .

7.Изменить исходную информацию:

 

 

xH

 

 

 

 

xl

 

a ,i I; x

 

xl

 

; x

 

 

x

B

(x

j

0, j J , j k) .

 

 

 

 

 

 

B

 

i

 

 

 

 

ik

k

alk

 

 

 

 

 

 

 

alk

 

 

 

I

 

I \ ({l} {k}) ; J

J \ ({l} {k})

 

 

Перейти к п.1.

96

aij ,

8.

Если существует номер s

J : s 0 , то выписать ответ: xB -

 

оптимальная точка, в задаче имеется бесчисленное множество

 

решений.

 

9.

Если для всех j J : j

0 , то выписать ответ: xB -

единственное решение задачи.

10.Выписать ответ: задача решений не имеет из-за неограниченности целевой функции на допустимом множестве:

 

sup z(x)

.

 

 

Пример 1. Решить задачу

 

x2

3x3

2x5

min

x1

3x2

x3

2x5

7,

 

2x2

4x3 x4

 

12,

 

4x2

3x3

8x5

x6 10,

xi

0, i

 

 

 

 

 

1,6.

 

 

Решение задачи удобно оформлять в виде таблицы. В первом столбце помещаются текущие базисные переменные, во втором - их коэффициенты в целевой функции, в третьем - координаты текущей

базисной точки. Далее переписываем элементы матрицы

помещая над каждым столбцом коэффициент соответствующей переменной в целевой функции. Последний столбец предназначается для определения значения . В отдельной строке вычисляются

оценки векторов Aj . В ячейке, находящейся на пересечении

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оценочной

строки

и

столбца

x ,

помещаем

значение

целевой

функции в текущей базисной точке.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

CB

 

 

 

 

0

 

1

 

-3

 

0

 

2

0

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

A2

 

 

A3

 

A4

 

A5

A6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

0

7

 

 

1

 

3

 

-1

 

0

 

2

0

 

-

x4

0

12

 

0

 

-2

 

4

 

1

 

0

0

 

3

x6

0

10

 

0

 

-4

 

3

 

0

 

8

1

 

10/3

j

 

0

 

 

0

 

-1

 

3

 

0

 

-2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

97

Источник: https://studfile.net/preview/16565974/