Способы решения задач нелинейного программирования.

3.2.1..Графоаналитический метод.

Рассмотрим задачу нелинейного программирования следующего содержания.

Предприятие выпускает изделия двух видов, используя два вида сырья, запасы которого Способы решения задач нелинейного программирования. - 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 . В формуле целевой функции проведем преобразования так, чтобы в результате уравнение целевой функции приняло вид:

Способы решения задач нелинейного программирования. - student2.ru , где Способы решения задач нелинейного программирования. - student2.ru - числа.

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

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

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

О
Способы решения задач нелинейного программирования. - student2.ru

Рис. 9. Графическая схема задачи.

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

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

Для выведения второго уравнения запишем формулу пучка прямых, проходящих через точку А:

Способы решения задач нелинейного программирования. - student2.ru ,

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

Способы решения задач нелинейного программирования. - student2.ru .

Откуда получаем Способы решения задач нелинейного программирования. - student2.ru .

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

3.2.2.Метод множителей Лагранжа.

Если ограничения задачи НЛП являются равенствами, то для ее решения можно использовать метод множителей Лагранжа. Основой метода является введение в решение вспомогательной функции Лагранжа. Функция Лагранжа образована двумя слагаемыми. Первое слагаемое – сама целевая функция, второе слагаемое – сумма произведений особых переменных Способы решения задач нелинейного программирования. - 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

Найдем координаты стационарных точек функции Способы решения задач нелинейного программирования. - 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 . Таким образом, Способы решения задач нелинейного программирования. - student2.ru во второй стационарной точке достигает максимального значения. Минимальное и максимальное значение целевой функции определяется путем подстановки в ее формулу значений Способы решения задач нелинейного программирования. - student2.ru в данных стационарных точках.

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

3.3.3.Градиентный метод.

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

Рассмотрим основные шаги процедуры градиентного метода.

1. Выбираем в ОДР начальную точку Способы решения задач нелинейного программирования. - student2.ru .

2. Записываем общее выражение градиента (или антиградиента) целевой функции Способы решения задач нелинейного программирования. - student2.ru или Способы решения задач нелинейного программирования. - student2.ru .

3. Определяем значение компонент градиента или антиградиента в точке Способы решения задач нелинейного программирования. - student2.ru .

4. Записываем выражение для перехода в точку Способы решения задач нелинейного программирования. - student2.ru

Способы решения задач нелинейного программирования. - student2.ru

5. Для вычисления длины шага Способы решения задач нелинейного программирования. - student2.ru записываем выражение Способы решения задач нелинейного программирования. - student2.ru

Вычисляем длину шага по уравнению Способы решения задач нелинейного программирования. - student2.ru

6. Находим координаты Способы решения задач нелинейного программирования. - student2.ru .

7. Находим Способы решения задач нелинейного программирования. - 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 . Откуда получим Способы решения задач нелинейного программирования. - student2.ru .

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

выбираем наименьшее.

10. Определяем Способы решения задач нелинейного программирования. - student2.ru . Данная точка принадлежит границе ОДР.

11. На границе ОДР определяем направление желательного изменения целевой функции. С этой целью возьмем в найденной точке Способы решения задач нелинейного программирования. - student2.ru производную по направлению Способы решения задач нелинейного программирования. - student2.ru .

12. Записываем выражение для точки оптимума Способы решения задач нелинейного программирования. - student2.ru , кроме того, воспользуемся вспомогательной записью Способы решения задач нелинейного программирования. - student2.ru . Для получения длины шага Способы решения задач нелинейного программирования. - student2.ru используем уравнение Способы решения задач нелинейного программирования. - student2.ru .

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

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