logo
Методичка_ММИО_2006

Алгоритм симплекс-метода

Будем считать, что известна исходная К-матрица К(0) задачи линейного программирования, определяющая исходный опорный план

В симплексном методе последовательно строят К-матрицы

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

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

Шаг 2. Если , то опорный план

является оптимальным, а

есть оптимальное значение линейной формы , иначе переходим к шагу 3.

Шаг 3. Если , , то ЗЛП не имеет конечного решения, иначе находим номер l из условия

Направляющий элемент на S-й итерации метода есть элемент

Шаг 4. Вычисляем компоненты вектора :

Шаг 5. Производим один шаг метода Жордана-Гаусса с направляющим элементом . Присваиваем переменной S алгоритма значение S+1 и переходим к шагу 1.

Пример 3.3 Симплекс-методом решить ЗЛП:

(3.57)

Х1+2Х2 6

12 8

12 1

Х2 2 (3.58)

Х1 0 Х2 0.

Приводим систему линейных неравенств (3.58) к каноническому виду, вводя в каждое неравенство дополнительную переменную , где . Получим систему линейных уравнений:

Х1+2Х2+S1=6

12+S2=8 (3.59)

12+S3=1

Х2+S4=2

Целевая функция будет иметь вид =3X1+2X2+0 S1+0 S2+0 S3+0 S4

Расширенная матрица

системы линейных уравнений (3.59) является исходной К-матрицей К(0) ЗЛП, которая определяет исходный опорный план:

, , .

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

Таблица 3.1

S

i

3

2

0

0

0

0

0

1

2

3

4

3

4

5

6

0

0

0

0

6

8

1

2

1

2

-1

0

2

1

1

1

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

6

4

-

-

5

-3

-2

0

0

0

0

k=1

l=2

1

1

2

3

4

3

1

5

6

0

3

0

0

2

4

5

2

0

1

0

0

3/2

1/2

3/2

1

1

0

0

0

-1/2

1/2

1/2

0

0

0

1

0

0

0

0

1

4/3

8

10/3

2

5

0

-1/2

0

3/2

0

0

k=2

l=1

2

1

2

3

4

2

1

5

6

2

3

0

0

4/3

10/3

3

2/3

0

1

0

0

1

0

0

0

2/3

-1/3

-1

-2/3

-1/3

2/3

1

1/3

0

0

1

0

0

0

0

1

5

0

0

1/3

4/3

0

0

На второй итерации S=2, все , следовательно, опорный план

,

определяемый К-матрицей К(2), оптимальный,

Оптимальное значение линейной формы равно:

Пример 3.4 Симплекс-методом решить ЗЛП:

max (2X1+X2) (3.60)

X1-X2 10

X1 40 (3.61)

X1,2 0

Приводим ЗЛП к каноническому виду

max (2X1+X2+0 S1+0S2)

X1-X2+ S1=10 (3.62)

X1+ S2=40

.

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

Таблица 3.2

S

i

2

1

0

0

0

1

2

3

4

0

0

10

40

1

1

-1

0

1

0

0

1

10

40

3

-2

-1

0

0

1

1

2

1

4

2

0

10

30

1

0

-1

1

1

-1

0

1

-

30

3

0

-3

2

0

2

1

2

1

2

2

1

40

30

1

0

0

1

0

-1

1

1

-

-

3

0

0

-1

3

Из симплекс-таблицы при S=2 следует, что согласно шагу 3 симплекс-алгоритма данная ЗЛП не имеет конечного решения, т.к. отрицательная симплекс-разность соответствует столбцу , все элементы которого неположительны.

Итак, .