Донецкий национальный технический университет
Опубликован: 09.07.2007 | Доступ: свободный | Студентов: 3114 / 709 | Оценка: 4.34 / 4.12 | Длительность: 13:54:00
Специальности: Программист

Лекция 5: Двойственность в линейном программировании. Нахождение допустимых базисных решений. Двойственная задача линейного программирования, ее структура и свойства. Общий случай двойственности.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Аннотация: Данная лекция раскрывает ряд вопросов, посвященных явлению двойственности в линейном программировании, таких как нахождение допустимых базисных решений методом искусственных переменных, постановка двойственной задачи линейного программирования, рассмотрение структуры такой задачи и формулировка ее свойств. Также приводится сравнительный анализ прямой и двойственной задач, устанавливается их взаимосвязь; устанавливается взаимосвязь для пары двойственных задач линейного программирования при наличии различного рода ограничений.

1. Нахождение допустимых базисных решений

Определение начального допустимого базисного решения (ДБР) в общем случае представляет значительные трудности. Поэтому для поиска ДБР разработаны специальные методы.

Метод искусственных переменных. Пусть ограничения задачи ЛП имеют вид Ax \leq A_0.

Если все b_i \geq 0, \; i = 1, 2,..., m, то свободные векторы, образующие единичную подматрицу, составляют базис, а соответствующие им переменные - начальное базисное решение.

В общем случае, когда некоторые ограничения имеют знак \geq, например

a_{i1} x_1 + a_{i2} x_2 + . + a_{in} x_n \geq b_i, i=1,2,\ldots, m,
то для приведения этих ограничений к стандартной форме равенств свободные переменные надо вычесть. Тогда расширенная форма задачи будет иметь такой вид:
\begin{align*}
& a_{11} x_1 + a_{12} x_2 + \ldots + a_{1n} x_n - 1x_{n+1} + 0x_{n+2} + \ldots + 0x_{n+m} = b_1 ; \\
& a_{21} x_1 + a_{22} x_2 + \ldots + a_{2n} x_n + 0x_{n+1} - 1x_{n+2} + \ldots + 0x_{n+m} = b_2 ; \\
& ................................... \\
& a_{m1} x_1 + a_{m2} x_2 + \ldots + a_{mn} x_n + 0x_{n+1} + 0x_{n+2} + \ldots - 1x_{n+m} = b_m .
\end{align*} ( 1.1)

Свободные переменные {xn+1,.,xn+m} в этом случае уже невозможно использовать в качестве начального базиса, так как xn+1<0,.,xn+m<0. Поэтому в уравнения (1.1) дополнительно вводят искусственные переменные xn+m+1,.,xn+m+k. Эти переменные не имеют ничего общего с реальной задачей, и потому их надо вывести из базиса как можно быстрее. Для этого перед началом итераций искусственным переменным в целевой функции приписывают для задач максимизации очень большие по модулю отрицательные коэффициенты (-М), где M \gg c_i, \; (i = 1, 2, ..,m).

В случае решения задач минимизации искусственные переменные вводят в целевую функцию с большими положительными коэффициентами (+М).

Знаки искусственных переменных xn+m+1,.,xn+m+k должны совпадать со знаками соответствующих свободных членов. Искусственные переменные образуют начальное базисное решение. Применив симплекс-метод, необходимо вывести из базиса все искусственные переменные. Если удается доказать (или показать), что искусственные переменные полностью вывести из базиса невозможно, то это означает, что задача не имеет решения, то есть ее ограничения противоречивы.

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

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >