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

Существует значительная группа экономических задач, в которых в состав линейной целевой функции или правой части ограничивающих условий входит параметр. Например, если эффективность или доход зависят от сезонных колебаний, тогда критерий оптимальности должен эту зависимость отображать. Если снабжение ресурсов также изменяется под влиянием каких-то причин, то в системе ограничений это должно отобразиться. Если продукция, которая изготовлена предприятием, должна некоторое время сохраняться, то ее стоимость состоит из двух частей: постоянной – это стоимость продукции на момент изготовления – и переменной части, которая зависит от срока хранения, причем эта зависимость, как правило, линейная. Целевая функция задачи оптимального планирования такого производства будет иметь коэффициенты, которые линейно зависят от параметра Параметрическое программирование - student2.ru (от времени).

Главная идея метода решения таких задач состоит из двух частей:

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

§ определяют все значения параметра Параметрическое программирование - student2.ru , для которых оптимальное решение сохраняется, то есть для которых экстремальное значение достигается в одной и той же точке. Найденные значения исключают из интервала изменения параметра Параметрическое программирование - student2.ru ; для оставшегося интервала вновь решают задачу.

Эти две части метода повторяют до тех пор, пока не будут найдены решения для всех Параметрическое программирование - student2.ru . Более детально алгоритм будет таким:

1. Задачу готовят к решению: функцию устремляют к минимуму; неравенства преобразуют в уравнения, вводя дополнительные переменные; вводят искусственные переменные, если нужно.

2. Присваивают параметру Параметрическое программирование - student2.ru наименьшее значение из отрезка Параметрическое программирование - student2.ru . Соответственно с этим конкретизируют целевую функцию.

3. Строят І симплексную таблицу в соответствии с правилами.

4. Дополняют І симплекс-таблицу двумя строками. В Параметрическое программирование - student2.ru -строке записывают с противоположным знаком коэффициенты целевой функции, не связанные с параметром Параметрическое программирование - student2.ru . В Параметрическое программирование - student2.ru -строку вносят с противоположным знаком коэффициенты функционала, которые стоят перед параметром Параметрическое программирование - student2.ru .

5. Проводят расчеты всех элементов таблицы в соответствии с правилами симплексного метода, проверяя оптимальность на основе М-строки, а потом Параметрическое программирование - student2.ru -строки.

6. Выписывают оптимальное решение, если критерий эффективности выполнился. После этого строка Параметрическое программирование - student2.ru во внимание не берется.

7. Находят для Параметрическое программирование - student2.ru интервал постоянства решения, рассматривая такие случаи ( Параметрическое программирование - student2.ru - начало интервала, Параметрическое программирование - student2.ru - конец интервала):

а) все Параметрическое программирование - student2.ru положительные Параметрическое программирование - student2.ru - в этом случае частичный интервал определяется следующим образом:

Параметрическое программирование - student2.ru

б) все Параметрическое программирование - student2.ru отрицательные Параметрическое программирование - student2.ru - в этом случае интервал постоянства решения находится так:

Параметрическое программирование - student2.ru

в) Параметрическое программирование - student2.ru принимают как положительные, так и отрицательные значения – в этом случае интервал постоянства решения будет таким:

Параметрическое программирование - student2.ru для Параметрическое программирование - student2.ru

Параметрическое программирование - student2.ru для Параметрическое программирование - student2.ru

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

9. Следующий этап заключается в выборе ключевого столбца – им будет столбец, в котором получено значение Параметрическое программирование - student2.ru . Далее выполняют симплекс-преобразование и определяют новый частичный интервал Параметрическое программирование - student2.ru для нового решения. Эту процедуру повторяют до тех пор, пока будет исчерпан весь отрезок Параметрическое программирование - student2.ru .

Пример.

Найти решение задачи параметрического программирования

Параметрическое программирование - student2.ru

Подготовим задачу к решению:

Параметрическое программирование - student2.ru

где Параметрическое программирование - student2.ru - основные переменные,
Параметрическое программирование - student2.ru - дополнительные переменные,
Параметрическое программирование - student2.ru - искусственная переменная.

Присвоим параметру Параметрическое программирование - student2.ru наименьшее значение из его интервала и конкретизируем целевую функцию: Параметрическое программирование - student2.ru

Сформируем 1 симплекс-таблицу с дополнительными строками:

Таблица 1

Базис С Параметрическое программирование - student2.ru – 6 – 3 М С.О.
Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru М – 1
Параметрическое программирование - student2.ru -строка  
М-строка -1
Параметрическое программирование - student2.ru -строка
Параметрическое программирование - student2.ru -строка -1

Критерий оптимальности не выполняется.

В таблице 1 ключевыми будут столбец Параметрическое программирование - student2.ru и третья строка. В базис входит вектор Параметрическое программирование - student2.ru , выходит искусственный вектор Параметрическое программирование - student2.ru . Генеральный элемент равен 1.

Таблица 2

Базис С Параметрическое программирование - student2.ru – 6 – 3 С. О.
Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru – 2
Параметрическое программирование - student2.ru – 6 – 1
Параметрическое программирование - student2.ru -строка – 12 – 3  
Параметрическое программирование - student2.ru -строка – 14 – 5
Параметрическое программирование - student2.ru -строка – 1

В таблице 2 критерий оптимальности не выполняется. В новый базис входит Параметрическое программирование - student2.ru , выходит из базиса Параметрическое программирование - student2.ru . Генеральной элемент равен 5.

Таблица 3

Базис С Параметрическое программирование - student2.ru – 6 – 3 С.О.
Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru 16/5 – 3/5 15/8
Параметрическое программирование - student2.ru – 2/5 1/5
Параметрическое программирование - student2.ru – 6 3/5 1/5
Параметрическое программирование - student2.ru -строка – 18 – 3/5 – 6/5  
Параметрическое программирование - student2.ru -строка – 21 – 11/5 – 7/5
Параметрическое программирование - student2.ru -строка 8/5 1/5

В таблице 3 достигнут минимум Параметрическое программирование - student2.ru и максимум Параметрическое программирование - student2.ru . Оптимальные значения основных переменных такие:

Параметрическое программирование - student2.ru .

Это решение определяет вершину Параметрическое программирование - student2.ru . Оно будет сохраняться для определенных значений Параметрическое программирование - student2.ru . Поскольку все Параметрическое программирование - student2.ru положительны, то мы имеем случай а) пункта 7:

Параметрическое программирование - student2.ru .

Значит, вершина Параметрическое программирование - student2.ru обеспечивает максимум для Параметрическое программирование - student2.ru . Этот интервал не перекрывает отрезок Параметрическое программирование - student2.ru , поэтому решение надо продолжить. Ключевым столбцом будет столбец Параметрическое программирование - student2.ru , так как именно в нем получено значение Параметрическое программирование - student2.ru . В новый базис включаем Параметрическое программирование - student2.ru , выключаем Параметрическое программирование - student2.ru , генеральный элемент равен Параметрическое программирование - student2.ru . Все расчеты выполняем в соответствии с правилами симплексного метода. Получим таблицу 4.

Таблица 4

Базис С Параметрическое программирование - student2.ru – 6 – 3 С.О.
Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru -3 30/16 5/16 – 3/16
Параметрическое программирование - student2.ru 28/16 2/16 2/16
Параметрическое программирование - student2.ru – 6 30/16 -3/16 5/16
Параметрическое программирование - student2.ru -строка – 270/16 3/16 – 21/16  
Параметрическое программирование - student2.ru -строка – 270/16 11/16 – 29/16
Параметрическое программирование - student2.ru -строка -8/16 8/16

В таблице 4 получено новое решение:

Параметрическое программирование - student2.ru .

Оно определяет вершину Параметрическое программирование - student2.ru . Эта вершина будет обеспечивать оптимальность для других значений Параметрическое программирование - student2.ru , которые находятся на основе случая в) пункта 7, так как величины Параметрическое программирование - student2.ru имеют разные знаки:

Параметрическое программирование - student2.ru .

Таким образом, в точке Параметрическое программирование - student2.ru достигается максимум, если Параметрическое программирование - student2.ru . Этот интервал тоже не охватывает значения отрезка Параметрическое программирование - student2.ru , необходимо двигаться дальше, искать решения для оставшихся значений Параметрическое программирование - student2.ru . Ключевым станет столбец Параметрическое программирование - student2.ru , вектор Параметрическое программирование - student2.ru войдет в базис, выйдет из базиса вектор Параметрическое программирование - student2.ru , генеральный элемент равен Параметрическое программирование - student2.ru . Получим таблицу 5.

Таблица 5

Базис С Параметрическое программирование - student2.ru – 6 -3
Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru Параметрическое программирование - student2.ru
Параметрическое программирование - student2.ru – 3 3/5 1/5
Параметрическое программирование - student2.ru – 2/5 1/5
Параметрическое программирование - student2.ru 16/5 – 3/5
Параметрическое программирование - student2.ru -строка – 9 21/5 – 3/5
Параметрическое программирование - student2.ru -строка – 6 29/5 – 3/5
Параметрическое программирование - student2.ru -строка – 3 – 8/5 – 1/5

В таблице 5 получено такое решение: Параметрическое программирование - student2.ru . Оно отвечает вершине Параметрическое программирование - student2.ru . Поскольку все Параметрическое программирование - student2.ru отрицательные, то вершина Параметрическое программирование - student2.ru , в соответствии со случаем б) пункта 7, будет оптимальной для следующих значений Параметрическое программирование - student2.ru :

Параметрическое программирование - student2.ru .

Подводя итоги, конкретизируем выводы:

§ если Параметрическое программирование - student2.ru принадлежит интервалу Параметрическое программирование - student2.ru , то целевая функция достигает максимума в точке Параметрическое программирование - student2.ru ;

§ если Параметрическое программирование - student2.ru принимает значение из интервала Параметрическое программирование - student2.ru , то максимум будет в вершине Параметрическое программирование - student2.ru ;

§ если Параметрическое программирование - student2.ru изменяется от Параметрическое программирование - student2.ru до 5, то максимум достигается в точке Параметрическое программирование - student2.ru .

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

  3. Задания для самостоятельного решения  

Наши рекомендации