Модуль 7. методы и модели нелинейного программирования

7.1. Постановка и геометрический смысл общей задачи нелинейного программирования

В общем виде задача нелинейного программирования состоит в определении максимального (минимального) значения функции

модуль 7. методы и модели нелинейного программирования - student2.ru (7.1)

при условии, что ее переменные удовлетворяют соотношениям

модуль 7. методы и модели нелинейного программирования - student2.ru , (7.2)

где f и gi – некоторые неизвестные функции n переменных, а bi – заданные числа, а знак ( модуль 7. методы и модели нелинейного программирования - student2.ru ) означает, что при различных i ограничения (7.2) могут выражаться со знаком модуль 7. методы и модели нелинейного программирования - student2.ru или модуль 7. методы и модели нелинейного программирования - student2.ru , или уравнениями. Здесь имеется в виду, что в результате решения задачи будет определена точка модуль 7. методы и модели нелинейного программирования - student2.ru , координаты которой удовлетворяют соотношениям (7.2) и такая, что для всякой другой точки модуль 7. методы и модели нелинейного программирования - student2.ru , удовлетворяющей условиям (7.2), выполняется в задаче на максимум (минимум) неравенство

модуль 7. методы и модели нелинейного программирования - student2.ru

Если f и gi – линейные функции, то задача является задачей линейного программирования.

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

В евклидовом пространстве Еn система ограничений (7.2) определяет область допустимых решений задачи. В отличие от задачи линейного программирования она не всегда является выпуклой.

Если определена область допустимых решений, то нахождение решения задачи (7.1)-(7.2) сводится к определению такой точки этой области, через которую проходит гиперповерхность наивысшего (наинизшего) уровня: модуль 7. методы и модели нелинейного программирования - student2.ru . Указанная точка может находиться как на границе области допустимых решений, так и внутри нее.

Процесс нахождения решения задачи нелинейного программирования (7.1)-(7.2) с использованием ее геометрической интерпретации включает следующие этапы:

1. Находят область допустимых решений задачи, определяемую соотношениями (7.2) (если она пуста, то задача не имеет решения).

2. Строят гиперповерхность модуль 7. методы и модели нелинейного программирования - student2.ru .

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

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

Пример:

Найти максимальное и минимальное значение функции

модуль 7. методы и модели нелинейного программирования - student2.ru (7.3)

при условиях

модуль 7. методы и модели нелинейного программирования - student2.ru (7.4)

x1≥0, x2 ≥ 0

Решение: Областью допустимых решений исходной задачи является многоугольник ABCDE (рис. 7.1), а линиями уровня – окружности модуль 7. методы и модели нелинейного программирования - student2.ru с центром F(4, 3) и радиусом модуль 7. методы и модели нелинейного программирования - student2.ru .

модуль 7. методы и модели нелинейного программирования - student2.ru

Рис.7.1 Геометрическая иллюстрация

Из рисунка. 7.1 видно, что целевая функция принимает минимальное значение в точке F(4, 3), а максимальное значение – в точке С (13, 21/2). Следовательно, Fmin=0 , Fmax=137,25.

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

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

модуль 7. методы и модели нелинейного программирования - student2.ru ; (7.5)

модуль 7. методы и модели нелинейного программирования - student2.ru (7.6)

В курсе математического анализа задачу (7.5) – (7.6) называют задачей на условный экстремум или классической задачей оптимизации.

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

модуль 7. методы и модели нелинейного программирования - student2.ru (7.7)

Находят частные производные модуль 7. методы и модели нелинейного программирования - student2.ru и модуль 7. методы и модели нелинейного программирования - student2.ru и рассматривают систему n+m уравнений

модуль 7. методы и модели нелинейного программирования - student2.ru (7.8)

с n+m неизвестными модуль 7. методы и модели нелинейного программирования - student2.ru . Всякое решение системы уравнений (7.8) определяет точку модуль 7. методы и модели нелинейного программирования - student2.ru , в которой может иметь место экстремум функции модуль 7. методы и модели нелинейного программирования - student2.ru . Следовательно, решив систему уравнений (7.8), получают все точки, в которых функция (7.5) может иметь экстремальные значения. Дальнейшее исследование найденных точек проводят так же, как и в случае безусловного экстремума.

Таким образом, определение экстремальных точек задачи(7.5) – (7.6) методом множителей Лагранжа включает следующие этапы:

1. Составляют функцию Лагранжа.

2. Находят частные производные от функции Лагранжа по переменным xj и λi и приравнивают их к нулю.

3. Решая систему уравнений (7.8), находят точки, в которых целевая функция задачи может иметь экстремум.

4. Среди точек, подозрительных на экстремум, находят такие, в которых достигается экстремум, и вычисляют значения функции (7.5) в этих точках.

Градиентные методы

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

Функция модуль 7. методы и модели нелинейного программирования - student2.ru называется целевой функцией или функцией цели.

Если функция модуль 7. методы и модели нелинейного программирования - student2.ru дифференцируема в точке модуль 7. методы и модели нелинейного программирования - student2.ru , то градиентом модуль 7. методы и модели нелинейного программирования - student2.ru в точке модуль 7. методы и модели нелинейного программирования - student2.ru называется n-мерный вектор

модуль 7. методы и модели нелинейного программирования - student2.ru .

Градиент в каждой точке модуль 7. методы и модели нелинейного программирования - student2.ru , в которой он существует, направлен по нормали к линии уровня поверхности модуль 7. методы и модели нелинейного программирования - student2.ru и показывает направление наискорейшего возрастания функции в данной точке (рис 7.2)

модуль 7. методы и модели нелинейного программирования - student2.ru

Рис. 7.2. Свойства вектора градиента

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

Вектор «- модуль 7. методы и модели нелинейного программирования - student2.ru », противоположный градиенту, называется антиградиентом и указывает направление наискорейшего убывания функции модуль 7. методы и модели нелинейного программирования - student2.ru .

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

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