Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по методам оптимизации.doc
Скачиваний:
181
Добавлен:
02.05.2014
Размер:
1.18 Mб
Скачать

Задача линейного программирования. Двойственный симплекс-метод

Изложение двойственного симплекс-метода.

Двойственный симплекс-метод (ДСМ) непосредственно применяется к решению почти каноничной задачи линейного программирования (МКЗЛП), которая формулируется таким образом:

Найти вектор x = (x1...,xn), что минимизирует линейную функцию

L(x)= c1x1 + ... + cnxn (4.1)

и удовлетворяет систему линейных ограничений

xi + ai,m+1 xm+1 + ... + ainxn = ai0, i=1...,m (4.2)

xj0, j=1...,n (4.3)

(компоненты ai0вектора ограничений A0могут быть отрицательными) при дополнительном условии: относительные оценки (симплекс - разницы) j переменных xjнеотъемлемые.

Вектор x=(x1...,xn) называется почти допустимым базисным решением (МДБР) МКЗЛП, если его компоненты удовлетворяют ограничение (4.2), и ненулевым компонентамxj отвечают линейно независимые векторыусловий Aj.

Базис и базисная матрица МДБР определяются подобно тому, как это делается для СЗЛП.

МКЗЛП является случаем части СЗЛП. Существуют методы сведения произвольной ЗЛП к почти каноничному виду.

Признак оптимума: Если на некотором шаге ДСМ компоненты МДБР x*неотъемлемые, то x* — оптимальное решение МКЗЛП.

Признак отсутствия решения: Оптимального решения МКЗЛП не существует, если на каком-либо шаге ДСМ в строке с ai0<0все компоненты aij0, j=1...,n. В этом случае допустимое множество решений МКЗЛП пустое.

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

На каждом шагу ДСМ выполняются такие действия (расчетные формулы наводятся лишь для первого шага).

1. Рассматривается МДБР x=(a10...,am0,0,...,0).

Вычисляются относительные оценки (симплекс - разницы) j небазисных переменных xj, j=m+1...,n, за формулой:

j=cj – (cб, Aj)

где cб=(c1...,cm), Aj — вектор условий, что отвечает переменной xj (относительные оценки базисных переменных равняются нулю).

Если для всех i=1...,m выполняется условие ai00, то МДБР x будет оптимальным решением МКЗЛП. Конец вычислений.

Если существует такое и, что ai0<0, а коэффициенты aij0, j=1...,n, то МКЗЛП не имеет допустимых решений. Конец вычислений.

2. Если существуют индексы и, для которых ai0<0, а среди соответствующих компонент aij, j=1...,n, есть отрицательные, то находят l:

l=argmin ai0

и: ai0<0

вычисляют отношение j=jaljдля всех alj<0и определяют k:

k=argmin j.

и: alj<0

3. Переходят к новому МДБР, исключая из базиса вектор Alи вводя к базису вектор Ak. Упомянутый переход осуществляется с помощью симплекс - превращений (элементарных превращений Жордана - Гаусса с ведущим элементом alk) над элементами расширенной матрицы условий. Переход к пункту 1.

Программное обеспечение.

Обучающий модуль, с помощью которого ЗЛП Решается в диалоге с пользователем за выложенным алгоритмом, вызывается из раздела «ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ» главного меню пакета ПОМО.

Задание.

Решить двойственным симплекс-методом задачи линейного программирования, условия которых задаются модулем с помощью команды «Данные» главного меню (задачи №1№9), а также следующие задачи.

Во всех задачах, которые предлагаются дальше, все переменные неотъемлемые.

1)

6 x1 + 4 x2  min

2)

2 x1 + 3 x2  min

3)

6 x1 4 x2  max

2 x1 + x2 3

x1 + 5 x2 16

2 x1 + x2 3

x1 x2 1

3 x1 + 2 x2 12

x1 2 x2 2

x1 + 2 x2 1;

2 x1 + 4 x2 16;

3 x1 + 2 x2 1;

4)

6 x1 + 4 x2  min

5)

7 x1 + x2  min

6)

7 x1 + 10 x2  min

2 x1 + x2 3

x1 + x2 3

2 x1 + 28 x2 17

3 x1 + 2 x2 1

5 x1 + x2 5

x1 + 2 x2 3;

x1 x2 6;

x1 + 5 x2 5;

x1 + 17 x2 19;

7)

x1 + x2 + 2 x3  min

8)

15x1 33 x2  max

2 x1 x2 3 x3 + x4 = 3

3 x1 + 2 x2 6

x1 3 x2 4 x3 + x5 = 1;

6 x1 + x2 6;

9)

x1 + 2 x2  min

10)

78 x1 + 52 x2  min

11)

5 x1 + 4 x2  min

2 x1 + x2 18

6 x1 + 2 x2 9

x1 + x2 6

x1 + 2 x2 14

10 x1 + 14 x2 13

2 x1 + x2 9

x1 2 x2 10;

11 x1 x2 6;

3 x1 + x2 11.

Ответы:

1) x* = (1; 1), L(x*)= 10.

2) x* = (2; 3), L(x*)= 13.

3) x* = (1.5; 0), L(x*)= 9.

4) Решения нет ( D =  ).

5) x* = (0; 5), L(x*)= 5.

6) x* = (0; 1.5), L(x*)= 15.

7) x* = (0; 0; 1; 0; 3), L(x*)= 2.

8) x* = (2; 0), L(x*)=30.

9) x* = (7.33; 3.33), L(x*)= 14.

10) x* = (0.96; 1.62), L(x*)= 159.12.

11) x* = (4.5; 0), L(x*)= 22.5.

Лабораторная работа 5.