Для связи в whatsapp +905441085890

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

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

Важно знать, как изменится решение задачи линейного программирования в процессе изменения ее параметров: коэффициентов целевой функции, элементов матрицы и правой части условий-ограничений. Но особенно важно знать, при каких изменениях параметров задачи ее оптимальное решение остается неизменным.

Изменение параметров задачи линейного программирования может происходить за счет изменения условий функционирования описываемых объектов (например, цены на комплектующие изделия и трудовые ресурсы, стоимости продукции на рынке и т.д.). Эти изменения порождают неопределенность параметров задачи и являются в данном случае детерминированными величинами.

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

Как правило, в подобных ситуациях для получения ответа решают серию прямых близких задач, изменяя значения параметров.

Особенность задач линейного программирования состоит в том, что полученное оптимальное решение может не меняться при изменении значений параметров в целевой функции и условиях-ограничениях в достаточно широких пределах. Более привычным является «непрерывный» вариант: при небольших изменениях параметров задачи обязательно изменяется и решение — координаты точки оптимума. В этом смысле можно использовать параметрическое программирование, когда определяется поведение решения задачи линейного программирования в зависимости от параметра включенного в выражения коэффициентов целевой функции, элементы матрицы и правой части условий-ограничений. Но эти процедуры даже для одного параметра t громоздки; и его введением не удается описать все возможные изменения параметров задачи. Рассмотрим алгоритм, который позволят определить допустимые множества значений параметров задачи линейного программирования, не приводящих к изменению найденного оптимального решения, и, таким образом указать диапазон изменения каждого параметра.

Имеем следующую задачу линейного программирования (с одним критерием):

найти максимум целевой функции

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

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

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

где Анализ устойчивости оптимального решения задачи линейного программирования — вектор, коэффициентами которого являются коэффициенты (параметры) целевой функции; Анализ устойчивости оптимального решения задачи линейного программирования — значение целевой функции; Анализ устойчивости оптимального решения задачи линейного программирования — вектор исходных (структурных) переменных; Анализ устойчивости оптимального решения задачи линейного программирования и Анализ устойчивости оптимального решения задачи линейного программирования — векторы правых частей; Анализ устойчивости оптимального решения задачи линейного программирования и Анализ устойчивости оптимального решения задачи линейного программирования — матрицы системы ограничений неравенств и равенств.

Для аналитического решения эта задача записывается в канонической форме:

найти целевую функцию

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

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

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

где Анализ устойчивости оптимального решения задачи линейного программирования — вектор, включающий в себя исходные и дополнительные (слабые) переменные; Анализ устойчивости оптимального решения задачи линейного программирования — прямоугольная матрица размерности Анализ устойчивости оптимального решения задачи линейного программирования, расширенная за счет столбцов дополнительных переменных, превращающих неравенства (2.10) в равенства; Анализ устойчивости оптимального решения задачи линейного программирования — вектор правых частей (объединяет векторы Анализ устойчивости оптимального решения задачи линейного программирования и Анализ устойчивости оптимального решения задачи линейного программирования).

Будем исследовать устойчивость точки оптимального решения задачи (2.9), (2.10), (2.11) в следующих вариантах:

  1. неопределенность или погрешность содержится только в координатах вектора Анализ устойчивости оптимального решения задачи линейного программирования целевой функции;
  2. неопределенность или погрешность содержится только в элементах вектора Анализ устойчивости оптимального решения задачи линейного программирования;
  3. неопределенность или погрешность содержится только в элементах матриц Анализ устойчивости оптимального решения задачи линейного программирования и Анализ устойчивости оптимального решения задачи линейного программирования (т.е. в элементах матрицы Анализ устойчивости оптимального решения задачи линейного программирования, исключая элементы, относящиеся к дополнительным переменным).

Алгоритмы учета других комбинаций неопределенностей основываются на этих случаях.

В дальнейшем будем полагать, что задача линейного программирования решается с помощью симплекс-метода.

Неопределенность в коэффициентах целевой функции. Точка оптимума в симплекс-методе определяется условием

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

где Анализ устойчивости оптимального решения задачи линейного программирования — вектор из элементов Анализ устойчивости оптимального решения задачи линейного программирования относящихся к базисным переменным; Анализ устойчивости оптимального решения задачи линейного программирования-й столбец матрицы Анализ устойчивости оптимального решения задачи линейного программирования.

Значение целевой функции Анализ устойчивости оптимального решения задачи линейного программирования.

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

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

тогда условие оптимума будет определяться величиной

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

Нарушение условия оптимальности зависит от конкретных зна-чений последнего слагаемого в выражении (2.13): если все

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

то оптимальное решение не изменяется; при наличии хотя бы одного

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

возможно изменение оптимального решения.

Система неравенств

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

определяет то множество значений элементов

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

(куда входят и элементы вектора Анализ устойчивости оптимального решения задачи линейного программирования), которые не нарушают условия оптимума в данной точке.

Пример:

Рассмотрим задачу линейного программирования о выпуске продукции предприятием (см. разд. 2.4). Математическая модель этой задачи имеет следующий вид:

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

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

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

Оптимальное решение задачи приведено в симплекс-таблице:

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

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

Неопределенность имеют коэффициенты исходной целевой функции. Поэтому неопределенность Анализ устойчивости оптимального решения задачи линейного программирования для Анализ устойчивости оптимального решения задачи линейного программирования для

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

Рассчитаем значения

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

для различных Анализ устойчивости оптимального решения задачи линейного программирования:

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

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

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

Множество Анализ устойчивости оптимального решения задачи линейного программирования таких значений представляет собой часть плоскости Анализ устойчивости оптимального решения задачи линейного программирования заключенную между двумя лучами, выходящими из точки (-10,-20) в направлениях

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

Проблему устойчивости точки оптимума в задаче линейного программирования при неопределенности только коэффициентов целевой функции можно свести к геометрическому аналогу. Плоскость, вектор нормали которой определен коэффициентами целевой функции, в точке оптимума может быть повернута таким образом, чтобы она касалась граней выпуклого многогранника, содержащих точку оптимума.

Диапазон изменения углов поворота плоскости и будет определять допустимый разброс значений коэффициентов целевой функции.

Для удобства все уравнения линейных поверхностей запишем в нормальном (нормированном) виде. Таким образом, мы будем иметь дело с направляющими косинусами плоскостей; в трехмерном пространстве это

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

Чтобы определить грани многогранника, содержащие точку оптимума, подставим координаты точки оптимума в ограничения (2.10) и (2.11). Те ограничения, которые выполняются в виде равенств, и определяют искомые грани.

Пусть некоторая гран ь в трех мерном пространстве описывается уравнением

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

нормальное уравнение этой плоскости имеет вид

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

где Анализ устойчивости оптимального решения задачи линейного программирования — текущие координаты; Анализ устойчивости оптимального решения задачи линейного программирования — параметры уравнения плоскости; Анализ устойчивости оптимального решения задачи линейного программирования — параметр, определяющий расстояние до плоскости от начала координат;

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

Для плоскости, соответствующей целевой функции с параметрами

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

получим

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

Здесь важны не сами значения Анализ устойчивости оптимального решения задачи линейного программирования, а их отношения:

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

Если некоторая Анализ устойчивости оптимального решения задачи линейного программирования-я грань многогранника имеет направляющие косинусы

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

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

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

не изменит положение оптимальной точки. Проанализировав таким путем все грани, которым принадлежит оптимальная точка, найдем диапазоны отношений параметров (коэффициентов) плоскости Анализ устойчивости оптимального решения задачи линейного программирования, которым должны удовлетворять плоскости, проходящие через оптимальную точку и не изменяющие оптимальное решение задачи. Отсюда легко получить возможный диапазон неопределенностей значений коэффициентов целевой функции, не влияющих на решение задачи.

Пример:

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

Определим грани многоугольника, которым принадлежит точка оптимума. Подставим оптимальное решение задачи Анализ устойчивости оптимального решения задачи линейного программирования Анализ устойчивости оптимального решения задачи линейного программирования в исходную модель (2.15) и найдем, что оптимальная точка есть точка пересечения прямых

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

Вектор нормали целевой функции имеет координаты <10; 20}; вектор нормали первой прямой — {1; 3,5}; вектор нормали второй прямой — {1; 1}. С одной стороны, вектор нормали целевой функции может быть повернут до вектора нормали первой прямой, с другой стороны — до второй, т.е. согласно (2.16)

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

Окончательно условие (2.16) имеет вид

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

Таким образом, если отношение коэффициентов целевой функции лежит в пределах от 1 до 3,5, то координаты оптимальной точки не изменятся. Полученный результат полезно сравнить с приведенным выше аналитическим расчетом.

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

Представим матрицу полного ранга Анализ устойчивости оптимального решения задачи линейного программирования из (2.12) в виде двух блоков Анализ устойчивости оптимального решения задачи линейного программирования, где Анализ устойчивости оптимального решения задачи линейного программирования состоит из небазисных столбцов Анализ устойчивости оптимального решения задачи линейного программирования, а Анализ устойчивости оптимального решения задачи линейного программирования — из базисных. Аналогично векторы Анализ устойчивости оптимального решения задачи линейного программирования и Анализ устойчивости оптимального решения задачи линейного программирования состоят из базисных и небазисных координат:

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

Следовательно, имеем

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

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

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

где Анализ устойчивости оптимального решения задачи линейного программирования-й столбец в исходной матрице Анализ устойчивости оптимального решения задачи линейного программирования из (2.12).

Столбцы матрицы Анализ устойчивости оптимального решения задачи линейного программирования — это столбцы тех переменных текущей матрицы Анализ устойчивости оптимального решения задачи линейного программирования, которые были базисными в исходной таблице (как правило, это последние Анализ устойчивости оптимального решения задачи линейного программирования столбцов), так как Анализ устойчивости оптимального решения задачи линейного программирования, а столбцы Анализ устойчивости оптимального решения задачи линейного программирования, относящиеся к базису исходной таблицы, образуют единичную матрицу, т.е. матрицу Анализ устойчивости оптимального решения задачи линейного программирования мы всегда имеем в процессе решения.

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

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

Поскольку в столбце свободных членов оптимального решения не должно быть отрицательных элементов, то условие стабильности примет вид

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

Пример:

Рассмотрим описанный пример в предположении, что исходный вектор правой части

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

имеет неопределенность

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

т.е. надо рассматривать вектор

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

Матрица Анализ устойчивости оптимального решения задачи линейного программирования занимает пять последних столбцов симплекс-таблицы оптимального решения:

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

Условие стабильности оптимального решения данной задачи имеет вид:

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

Отсюда находятся те комбинации

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

при которых оптимальное решение не изменится.

Неопределенность в элементах матриц Анализ устойчивости оптимального решения задачи линейного программирования. Если неопределенность имеет место в отдельных элементах матриц Анализ устойчивости оптимального решения задачи линейного программирования, то можно воспользоваться тем, что элементы матрицы Анализ устойчивости оптимального решения задачи линейного программирования оптимального решения определяются через матрицу Анализ устойчивости оптимального решения задачи линейного программирования и исходную матрицу Анализ устойчивости оптимального решения задачи линейного программирования из (2.12):

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

Пусть только один элемент Анализ устойчивости оптимального решения задачи линейного программирования имеет неопределенность Анализ устойчивости оптимального решения задачи линейного программирования. В матрице Анализ устойчивости оптимального решения задачи линейного программирования оптимального решения получим элемент, имеющий вид

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

По знаку рассматриваемого элемента Анализ устойчивости оптимального решения задачи линейного программирования принимается соответствующее решение.

Этот подход приемлем для небольшого числа элементов матриц, имеющих неопределенность.

Рассмотрим более общий подход. Пусть все элементы матриц Анализ устойчивости оптимального решения задачи линейного программированияимеют неопределенности

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

«Перенесем» неопределенности Анализ устойчивости оптимального решения задачи линейного программирования в неопределенности правой части. В таком случае надо вычислить неопределенность Анализ устойчивости оптимального решения задачи линейного программирования-й линейной комбинации

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

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

Рассмотрим два случая. В первом — неопределенность Анализ устойчивости оптимального решения задачи линейного программирования является детерминированной величиной (например, показывает изменение цены некоторого ресурса); во втором (в задачах линейного программирования с другим физическим содержанием) — случайной величиной, для которой известны математическое ожидание и дисперсия. Тогда в первом случае неопределенность Анализ устойчивости оптимального решения задачи линейного программирования-й линейной комбинации Анализ устойчивости оптимального решения задачи линейного программирования будет равна Анализ устойчивости оптимального решения задачи линейного программирования а полная неопределенность Анализ устойчивости оптимального решения задачи линейного программирования-й координаты вектора правой части

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

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

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

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

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

а полная неопределенность (погрешность) Анализ устойчивости оптимального решения задачи линейного программирования-й координаты вектора правой части

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

В формулах (2.17) и (2.18) значения

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

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

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

Эта теория взята со страницы лекций по предмету «математическое программирование»:

Предмет математическое программирование

Возможно эти страницы вам будут полезны:

Задачи о покрытии множества
Дробно-линейное программирование
Основные направления развития методов решения задач математического программирования
Понятие о параметрическом программировании