Опубликован: 09.07.2007 | Уровень: специалист | Доступ: свободно | ВУЗ: Донецкий национальный технический университет

Лекция 6: Двойственный симплекс – метод. Исследование моделей задач линейного программирования на чувствительность

< Лекция 5 || Лекция 6: 123 || Лекция 7 >

2. Исследование моделей задач линейного программирования на чувствительность

Теория двойственности позволяет анализировать модели ЛП на чувствительность. Рассмотрим обычную задачу ЛП в виде

\text{максимизировать} \; \sum_{j=1}^n c_j x_j = \max L(x) ( 2.1)
при условиях
\sum_{j=1}^n a_{ij} x_j \le b_i, \; i=1,2,\ldots,m; \; x_j \ge 0. ( 2.2)

Напомним ее экономическую интерпретацию. Целевая функция L(x) - это доход от реализации плана производства x ; aij - интенсивность расходования i -го ресурса при j -м способе производства; bi - имеющийся уровень i -го ресурса.

1. Варьирование ограниченных ресурсов. Предположим, что величины ресурсов b=|| bi || варьируются. Тогда возникают вопросы: при каких вариациях правых частей ограничений найденный оптимальный план x0 не изменяется; как эти вариации влияют на функцию максимального дохода Lmax? Ответ на эти вопросы дает анализ соответствующей задачи ЛП на чувствительность.

Пусть ограничение bi получают некоторые вариации \Delta b_i, что приводит к вариациям плана x_0, x_0 = x_0(b+\Delta b) и функции L_{\max} (x_0(b_0 + \Delta b)). Предположим, эти вариации \Delta b таковы, что план x_0(b + \Delta b) остается допустимым (т.е. удовлетворяет условию неотрицательности). Найдем отношения приращения

\Delta L_{\max} (b) = L_{\max} (x_0(b_0+\Delta b)) - L_{\max} (x_0(b)) \; \text{к} \; \Delta b.

Имеем

\lim_{\Delta b_i \rightarrow 0} \frac{\Delta L_{\max}(b)}{\Delta b_i} 
= \frac{\partial L_{\max (b)}}{\partial b_i} , ( 2.3)
где b рассматривается как варьируемый параметр.

Вспомним, что в соответствии с основной теоремой двойственности

L_{\max} (x_0) = \sum_j c_j x_j^0 = \sum_i b_i, y_i^0 , ( 2.4)
и, подставляя (2.7.4) в (2.7.3), получим
\frac{\partial L_{\max (b)}}{\partial b_i} = y_i^0, \; i=1,2,\ldots,m . ( 2.4)

Таким образом, оптимальные значения двойственных переменных y_i^0 определяют вклад каждого ресурса в доход Lmax при оптимальном решении x0. Эта величина численно равна дополнительному доходу при увеличении i -го ресурса b_i на единицу при условии, что ресурсы используются оптимальным образом.

Итак, величины y_i^0 служат показателями важности соответствующих ресурсов для системы. Чем большее значение y_i^0 при некотором i, тем существеннее вклад i -го ресурса в функцию максимального дохода Lmax и тем выгоднеее его увеличение. Если для некоторого y_i^0 =0, то i -й ресурс не является существенным ограничением для системы.

Обозначим через Ax матрицу оптимального базиса задачи ЛП при векторе ресурсов b. Очевидно соответствующее оптимальное решение

x_{\text{опт}} = A_x^{-1} b.

Предположим, что мы изменили вектор ресурсов b=|| bi || на b_{\text{н}}=b+\Delta b и хотим узнать, как это повлияет на оптимальное решение. Для этого найдем новое соответствующее базисное решение

x_{\text{н}} = A^{-1}_x b_{\text{н}} = A^{-1}_x (b + \Delta b).

Если все компоненты x_{i \text{н}} \ge 0, то это решение x_{\text{н}} = [x_{i\text{н}}] оптимально (т.е. оптимальный базис не изменился). В противном случае нужно произвести поиск нового решения, для этого можно применить двойственный симплекс-метод, начиная с текущего базисного решения x_{\text{н}}.

2. Варьирование целевой функции. Теперь рассмотрим случай, когда варьируются коэффициенты {cj}, j= 1,2,.,n.... Попытаемся выяснить условия, при которых найденный ранее оптимальный план останется оптимальным при таких вариациях.

Пусть вариациям \delta_{c_r} подвергнется коэффициент c_r : c_r^{\text{н}} = c_r + \delta_{c_r}. Обозначим через Jб, Jнеб множество индексов базисных и небазисных векторов в оптимальном плане x0 соответственно.

Найдем значения оценок \Delta_j^{(\text{н})} после вариации cr для двух случаев:

1) r \in J_{\text{неб}} тогда \Delta_j^{(\text{н})}=\Delta_j для всех j \neq r ;

\Delta_r^{(\text{н})} = \sum_{i \in J_{\delta}} c_i a_{ir} - (c_r + \delta_{c_r}), \; \text{для} \; j=r ; ( 2.6)

2) r \in J_{\text{б}},

\Delta_r^{(\text{н})} = \sum_{i \in J_{\delta}} c_i^{(\text{н})} a_{ij} - c_j =
\sum_{i \in J_{\delta}} c_i a_{ij} + \delta_{c_r} a_{rj} - c_j ; \; j \in J_{\text{неб}} ( 2.7)

Очевидно, что для сохранения оптимальности прежнего плана при вариациях коэффициента cr необходимо и достаточно сохранение знаков оценок \Delta_j^{(\text{н})} для всех небазисных переменных. Поэтому из условий \Delta_j^{(\text{н})} \ge 0 в соответствии с формулами (2.6) и (2.7) можно определить допустимые вариации коэффициента \delta_{c_r}, при которых сохраняется прежнее оптимальное решение.

До сих пор мы рассматривали вариации лишь одного коэффициента целевой функции. Этот же подход можно применить, когда варьируются одновременно несколько коэффициентов ci.

В таком случае получим соотношения, аналогичные (2.7), в которых оценки \Delta_j будут функциями уже нескольких параметров (\delta_1, \delta_2,.,\delta_r)...

Решая совместно систему неравенств вида \Delta_j(c_1, c_2,.,c_r)\ge 0,\;  j \in J_{\text{небы}} находим условия для вариаций \delta_{c_r}, при которых прежний оптимальный базис сохраняется.

Эта задача относится к классу задач параметрического программирования.

3. Варьирование элементов матрицы ограничений A. Рассмотрим лишь случай вариации компонентов небазисных векторов Aj=[aij], i=1,2,...,m, поскольку исследование вариаций компонент базисных векторов Ai довольно сложное, легче заново решить задачу с новыми условиями.

Итак, пусть небазисный вектор Aj=[amj] изменился. Нужно выяснить, останется ли оптимальным текущий базис. Для этого полезно применить теорию двойственности. Пусть оптимальный базис прямой задачи Ax, а соответствующие оптимальные значения двойственных переменных y_i^0. Как известно, условие оптимальности \Delta_j \ge 0, \; \forall j \in J_{\text{неб}}. Вместе с тем в соответствии с (1.11), \Delta_j = \sum_{i \in J_{\delta}} a_{ij} y_i^0 - c_j. Значит, если \Delta_j^{(\text{н})} = \sum_{i \in J_{\delta}} a_{ij} y_i^0 - c_j \ge 0, то прежний оптимальный базис сохраняется.

4. Добавление еще одного способа производства. Предположим, что первоначально задача имеет вид

\text{максимизировать} \; \sum_{j=1}^n c_j x_j ( 2.8)
при условиях
\sum_{j=1}^n A_j x_j \le b , \; x_j \ge 0. ( 2.9)

Предположим, что найден оптимальный базис \{ A_i \}, i \in J_{\delta} и соответствующие оптимальные решения прямой x_j^0 и двойственной y_j^0 задач.

Пусть прибавляется еще один (n+1) -й способ производства, которому отвечает вектор технологических затрат An+1=[ai n+1] и коэффициент целевой функции cn+1. Тогда будем иметь следующую задачу:

\text{максимизировать} \; \sum_{j=1}^n c_j x_j + c_{n+1} x_{n+1} ( 2.10)
при условиях
\sum_{j=1}^n A_j x_j +A_{n+1} x_{n+1} \le b , \; x_j \ge 0, \; j=1,2,.,n+1. ( 2.11)

Нужно определить, изменится ли при этом прежнее оптимальное решение и при каком значении коэффициента cn+1 выпуск (n+1) -го продукта будет рентабельным (то есть x_{n+1}^0 > 0 ).

Чтобы оптимальное решение после ввода вектора An+1 не изменилось, необходимо, чтобы вектор An+1 и переменная xn+1 оставались небазисными, т.е., чтобы \Delta_{n+1} \ge 0. На основании теории двойственности получим

\Delta_{n+1} = \sum_{i \in J_{\delta}} a_{i n+1} y_i^0 -c_{n+1}.

Если \sum_{i \in J} a_{i n+1} y_i^0 -c_{n+1} \ge 0, то прежний оптимальный план не изменится после включения выпуска (n+1) -го вида продукции.

Если же \sum_{i \in J} a_{i n+1} y_i^0 -c_{n+1} < 0, то выпуск (n+1) -го вида продукции становится рентабельным, и прежний оптимальный план изменяется.

< Лекция 5 || Лекция 6: 123 || Лекция 7 >