Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 .doc
Скачиваний:
14
Добавлен:
31.05.2015
Размер:
1.28 Mб
Скачать

Контрольные задания для самостоятельного решения

Задание 3. Решить задачу линейного программирования симплекс-методом (x, y  0).

Варианты:

1.Z = x - 2y  min 2. Z = -x + y  min

3x + y  8 3x - 2y  7

4x + 5y  29 x + 2y  13

x + 4y  10 x - 2y  1

3. Z = 2x + y  max 4. Z = x - y  max

-x + 2y  3 -2x + 3y  5

-x + y  1 x + 2y  8

3x - 2y  3 3x - y  10

5. Z = 2x + y  max 6. Z = x + y  max

x - y  0 x - y  0

3x - 2y  3 -x + 2y  4

5x - 4y  1 -3x + 4y  2

7. Z = 5x + 2y  max 8. Z = 2x + 4y  max

3x + y  9 3x + y  8

2x + y  7 -x + 3y  4

5x + 2y  17 x + 2y  11

9. Z = 2x + y  max 10. Z = x - y  min

-x + 5y  4 x + 3y  7

x - y  4 2x - y  7

x + y  2 5x + y  7

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

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

Z = c1 x1 + c2 x2 + . . .+ cn xn  max (1)

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

y10 a11 x1 + a12 x2 + . . .+ a1n xn b1

y20 a21 x1 + a22 x2 + . . .+ a2n xn b2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2)

yk0 ak1 x1 + ak2 x2 + . . .+ akn xn bk

yk+1 ak+1 1 x1 + ak+1 2 x2 + . . .+ ak+1 n xn = bk+1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ym am1 x1 + am2 x2 + . . .+ amn xn = bm ,

xj 0 , j = 1, . . . , l; l n (3)

Каждому i-му ограничению из (2) соответствует переменная yi так назы­ваемой двойственной задачи к задаче (1) – (3) (показана слева от соответст­вующего ограничения).

Двойственная задача имеет вид:

W = b1 y1 + b2 y2 + . . .+ bm xm min (4)

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

x1 0 a11 y1 + a21 y2 + . . .+ am1 ym c1

x2 0 a12 y1 + a22 y2 + . . .+ am2 ym c2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (5)

xl 0 a1l y1 + a2l y2 + . . .+ aml ym cl

xl+1 a1 l+1 y1 + a2 l+1 y2 + . . .+ a m l+1 ym = cl+1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xn a1n y1 + a2n y2 + . . .+ amn ym = cn ,

yi 0 , i = 1, . . . , k ; k n (6)

Задачи (1) – (3) и (4) – (6) образуют пару задач, называемую в линейном программировании двойственной парой.

Сравнивая две задачи, видим, что двойственная задача по отношению к исходной (прямой) содержит те же самые коэффициенты aij, bi, cj и состав­ляется согласно следующим правилам:

  1. Целевая функция (1) исходной задачи задается на максимум, а целевая функция (4) двойственной задачи – на минимум.

  2. Матрица АТ , составленная из коэффициентов при неизвестных в системе ограничений (5) двойственной задачи получается из матрицы А прямой задачи транспонированием (т.е. заменой строк столбцами):

а11 а12 . . . а1n a11 a21 . . . am1

A = а21 а22 . . . а2n AT = a12 a22 . . . am2

. . . . . . . . . . . . . . . . . . . . . . . . .

аm1 аm2 . . . аmn a1n a2n . . . amn

  1. Число переменных в двойственной задаче (4)–(6) равно числу ограниче­ний в системе (2) прямой задачи, а число ограничений в системе (5) двойствен­ной задачи равно числу переменных в прямой задаче.

  2. Коэффициентами при неизвестных в целевой функции (4) двойственной задачи являются свободные члены в системе (2) прямой задачи и наоборот.

  3. Если переменная xj  0, то j-ое ограничение в системе (5) двойственной задачи является неравенством “  ”. Если же переменная xj может иметь любой знак, то j-ое ограничение в системе (5) представляет собой уравнение.

Каждая из задач двойственной пары (1) – (3) и (4) – (6) фактически яв­ляется самостоятельной задачей линейного программирования и может быть решена независимо одна от другой. Однако при определении симплексным методом оптимального плана одной из задач, тем самым находится решение и другой задачи. Существующие зависимости между решениями прямой и двойственной задач характеризуются сформулированными ниже теоремами двойственности.

Теорема 1. (Основная теорема двойственности). Если одна из пары двойственных задач имеет оптимальный план, то и другая имеет оптимальный план причем значения целевых функций задач при их оптимальных планах сов­падают, т.е. Zmax = Wmin.

Если же целевая функция одной из задач не ограничена (для исходной (1) – (3) – сверху, для двойственной (4) – (6) – снизу), то другая задача вообще не имеет допустимых решений.

Теорема 2. (Вторая теорема двойственности). Для того, чтобы два до­пустимых решения ипары двойствен­ных задач были их оптимальными решениями, необходимо и достаточно, чтобы они удовлетворяли системам уравнений:

(7)

Замечание. Соотношения (7) верны только для ограничений в виде неравенств и для неотрицательных переменных.

Двойственный симплекс-метод, как и симплекс-метод, используется при нахождении решения задачи линейного программирования, записанной в кано­нической форме. Вместе с тем двойственный симплекс-метод можно применять при решении задачи ЛП, свободные члены системы ограничений которой могут быть любыми числами (при решении задачи симплексным методом эти числа предполагались неотрицательными).

Опишем алгоритм двойственного симплекс-метода. Рассмотрим задачу линейного программирования в канонической форме.

(8)

(9)

(10)

Пусть матрица ограничений А содержит единичную подматрицу порядка m и первые m переменных являются базисными. Среди чиселесть отрицательные. Векторесть решение системы (9). Однако, это решение не является планом задачи (8) – (10), поскольку среди его компонент есть отрицательные числе (т.е. не выполняются ограничения (10)). Исключим базисные переменные из целевой функцииz:

.

Предположим, что

Шаг 1. Составить исходную симплексную таблицу.

№ строки

Базис

x1

xm

xm+1

xk

xn

b

1

l

m

x1

xl

xm

1

0

0

0

0

1

a1m+1

alm+1

amm+1

ak

a*lk

amk

a1n

aln

amn

b1

bl

bm

m+1

-z

0

0

dm+1

dk

dn

-do

Шаг 2. Выяснить, имеется ли хотя бы одно отрицательное число среди элементов столбца b. Если нет, то перейти к шагу 8. Иначе – к шагу 3.

Шаг 3. Если отрицательных чисел в столбце b несколько, то выбрать наименьшее. Пусть, для определенности, это число . Строка с номеромl – ведущая.

Шаг 4. Среди элементов ведущей строкиl находят отрицатель­ные. Если таковых нет, то исходная задача не имеет решения. В противном случае перейти к шагу 5.

Шаг 5. Вычислить . Столбец с номеромk – ведущий, - ведущий элемент.

Шаг 6. С помощью ведущего элемента провести одну итерацию метода Жордана-Гаусса.

Шаг 7. Построить новую симплексную таблицу и перейти к шагу 2.

Шаг 8. Задача линейного программирования (8) – (10) решена. По последней симплексной таблице выписать оптимальный план и минимальное значение целевой функции задачи (8) – (10).

Замечание. Если среди чисел есть отрицательные, то следует в системе ограничений (9) преобразовать свободные членыbj в неотрица­тельные, умножив на (-1) строки, содержащие отрицательные свободные члены и решать задачу (8) – (10) методом искусствен­ного базиса.

Пример. Решить задачу линейного программирования:

Z = 6x1 + 9x2 + 3x3 min

-x1 + 2x2 + x3 2

3x1 + x2x3 1 (11)

xj 0, j = 1, 2, 3.

Решение. Составим для задачи (11) двойственную:

W = 2y1 + y2 max

-y1 + 3y2 6

2y1 + y2 9 (12)

y1 - y2 3

y1 , y2 0

Для решения задачи (11) двойственным симплекс-методом приведем ее к каноническому виду. Для этого умножим первое и второе ограничения на (-1) и добавим соответствен­но неотрицательные дополнительные переменные x4  0 , x5 0:

Z = 6x1 + 9x2 + 3x3 min

x1 - 2x2 - x3 + x4 = -2

-3x1 - x2 + x3 + x5 = -1 (13)

xj 0, j = 1, 2, ..., 5.

Базисными переменными здесь являются переменные х4 и х5 . Поскольку все коэффициенты сj  0 , то критерий оптимальности для этого базисного ре­шения выполнен, однако само решение Х = (0, 0, 0, -2, -1) содержит отрица­тельные переменные, то есть не является допустимым. Естественно попытаться вывести отрицательные (не являющиеся допустимыми) переменные из базиса, сохранив при этом неотрицательность коэффициентов последней строки, так как в этом случае полученное допустимое решение будет являться и оптималь­ным. Такой подход является содержанием двойственного симплекс-метода. Проиллюстрируем его на примере решения задачи (13).

Составим исходную симплекс-таблицу.

Базис

х1 х2 х3 х4 х5

Значение (bi)

x4

x5

1 -2 -1* 1 0

-3 -1 1 0 1

-2

-1

- Z

6 9 3 0 0

0

Вычисляем Из базиса будем выводить пе­ременнуюx4. Следовательно, первая строка таблицы является разрешающей. Среди элементов разрешающей строки находим отрицательные а12 = -2; a13 = -1.

Определяем Столбец, в кото­ром достигается этот минимум, соответствует переменнойх3. Этот столбец является разрешающим и разрешающим элементом является элемент а13 = -1. Это делается для того, чтобы элементы последней строки остались неотрицательными. Проводим одну итерацию метода Жордана-Гаусса относи­тельно этого элемента, т.е. из базиса исключаем переменную х4 и включаем в базис переменную х3. Новая симплекс-таблица имеет вид:

Базис

х1 х2 х3 х4 х5

Значение

(bi)

х3

x5

-1 2 1 -1 0

-2 -3* 0 1 1

2

-3

- Z

9 3 0 3 0

-6

Элемент b2 = -3 < 0. Следовательно, разрешающей является вторая строка таблицы. Как и ранее, находим

Следовательно второй столбец – разрешающий, переменную х2 включаем в базис, переменную х5 исключаем из базиса. Пересчитывая таблицу относи­тельно элемента а22 = -3, получаем новую таблицу:

Базис

х1 х2 х3 х4 х5

Значение (bi)

х3

x2

-7/3 0 1 -1/3 2/3

2/3 1 0 -1/3 -1/3

0

1

- Z

7 0 0 4 1

-9

Среди элементов столбца “Значение” нет отрицательных чисел. В Z – строке также нет отрицательных чисел. Следовательно, найден оптимальный план: Х* = (0; 1; 0), при этом Z* = Zmin = 9. По последней симплекс-таблице находим решение двойственной задачи (9). Для этого выясняем, какие перемен­ные задачи (10) входили в исходный базис. В первоначальной таблице это – х4, х5. В последней симплекс-таблице находим элементы Z – строки, соответст­вующие этим базисным переменным (с4 = 4, с5 = 1) и прибавляем к ним соот­ветствующие коэффициенты исходной целевой функции (с4 = с5 = 0). В ре­зультате получаем Y* = (4; 1), W* = Wmax = 9.

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