Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
motc / opt14.doc
Скачиваний:
87
Добавлен:
10.12.2013
Размер:
417.79 Кб
Скачать

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

1. Составление симплекс-таблицы как для обычного симплекс-метода.

2. Выбор разрешающей строки: среди отрицательных bi выбирают максимальный по модулю элемент.

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

4. Переход к новой симплекс-таблице: осуществляют аналогично обычному переходу в симплекс-методе.

5.Окончание решения, когда все bi не отрицательны.

Пример 2.5.

x1 + x3  1,

x1 + x2 - x3  4,

x1, x2 , x3  0.

Q = 10 x1 + 10 x2 + 14 x3  min .

Решение

1. Вводим искусственные переменные:

x1 + x3 - x4 = 1,

x1 + x2 - x3 - x5 = 4.

2. Меняем знак:

-x1 - x3 + x4 = -1

-x1 - x2 + x3 + x5 = -4 .

3. Составляем симплекс-таблицу:

1

2

3

4

-1

0

-1

-1

5

-1

-1

1

-4

разрешающая строка

10

10

14

0

разрешающий столбец

4. Получаем новую симплекс-таблицу:

5

2

3

4

-1

1

0

3

1

-1

1

1

4

10

0

4

-40

Правые части ограничений положительны, следовательно найдено оптимальное решение.

Ответ: x1 = 4, x2 = 0, x3 = 0, x4 = 3, x5 = 0, Q min = 40.

2.7. Целочисленное линейное программирование

К задачам целочисленного линейного программирования относятся такие задачи линейного программирования, в которых имеется дополнительное ограничение: все переменные – целого типа.

Область допустимых решений такой задачи – выпуклый многогранник, стороны которого проходят по координатной сетке с единичным шагом.

Если задачу целочисленного линейного программирования решить симплекс-методом, получить нецелочисленное решение, которое затем округлить до целочисленного, то решение может быть не оптимальным. Следовательно, требуются специальные методы решения таких задач.

Рассмотрим один из таких методов – метод сечения Гомори.

Сущность метода:

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

xi = xi, i = 1, n.

2. Полученное решение проверяется на целочисленность. Если xiцелые числа, то задача решена, если нет – выполняются следующие действия:

– от допустимого многогранника отсекается часть площади; точка с координатами xi должна попасть в отсекаемую область (рис. 2.2) (математически это отсечение обозначает введение дополнительного ограничения);

– решается задача с количеством ограничений, увеличенным на единицу.

х2

хi

х1

Рис. 2.2. Метод сечения Гомори

Получение дополнительного ограничения.

Введем следующие обозначения: Х  – целая часть Х, Х   Х .

Например, 4,2 = 4, -4,2 = -5.

Х  - дробная часть Х, Х = Х - Х , Х  0.

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

Q = P1 x1 + P2 x2 + + Pn xn  min,

a11 x1 + a12 x2 + + a1n xn + xn+1 = b1,

a21 x1 + a22 x2 + + a2n xn + xn+2 = b2,

(2.15)

am1 x1 + am2 x2 + + amn xn + xn+m = bm,

х i  0.

Выразим базисные переменные через свободные:

n

xn+i = bi - aij xj , i = 1,  , m . (2.16)

j=1

В этом выражении хi должны быть целыми. Преобразуем (2.16):

n n n n

xn+i = bi + bi -  aij xj -  aijxj = bi -  aij xj + bi -  aijxj, (2.17)

j=1 j=1 j=1 j=1

L1 L2

L1 всегда целочисленное, L2 в общем случае может быть не целочисленным, но для данной задачи L2 должно принимать следующие значения: 0, -1, -2,  , т. е.

L2  0, (2.18)

n

bi -  aijxj  0. (2.19)

j=1

Преобразуем ограничения-неравенства (2.19) в ограничения-равенства:

n

xl -  aijxj = -bi. (2.20)

j=1

Последнее ограничение и является искомым дополнительным ограничением. В качестве l-й берется та строка симплекс-таблицы, которая имеет максимальную дробную часть коэффициента bi.

Соседние файлы в папке motc