
- •Часть I «Экономико-математический аппарат и его роль в
- •Часть II «Методы принятия решений в операционном менеджменте»
- •Часть I «Экономико-математический аппарат и его роль в обосновании управленческих решений»
- •Цели, задачи и актуальность методов нелинейного программирования
- •Специфика нелинейных программ и методы их решения
- •История разработки основных методов нелинейного программирования
- •Основные методы нелинейного программирования
- •Градиентные методы
- •Методы Монте-Карло
- •Методы выпуклого программирования. Метод множителей Лагранжа
- •. Теорема Куна-Таккера
- •Области применения методов нелинейного программирования
- •Эволюционное моделирование и его применение
Основные методы нелинейного программирования
Градиентные методы
Градиентные методы, в основе которых лежит свойство градиента функции в точке (вектора частных производных, вычисленного в точке) как указателя направления наибольшего роста функции в окрестности точки.
Так при отсутствии ограничений одна из простейших разновидностей градиентных методов - метод наискорейшего спуска предлагает выбрать некоторую точку (план) Xk и начальный шаг Hk, вычислить градиент функции в выбранной точке grad F(Xk) и осуществить переход по градиенту (при максимизации) с выбранным шагом. Если значение функции в новой точке больше предыдущего, новая точка принимается за исходную и повторяется такая же процедура. При попадании в точку с меньшим значением уменьшается шаг (например, вдвое) и переход повторяется от исходной точки. Переходы продолжаются до достаточно малого шага .
Например, если нужно решить систему уравнений
(X2+1)(Y-1)=3,Y=ln(X+1),
то можно заменить эту задачу задачей минимизации функции F(X,Y)=[(X2+1)(Y-2)-3]2+[Y-ln(X+1)]2 (если система имеет решение, то искомый минимум равен нулю).
Градиент этой функции определяется вектором
Grad F(X,Y) = {2[(X2+1)(Y-2)-3] 2X (Y-2) - 2[Y-ln(X+1)]/(X+1), 2 [(X2+1)(Y-2)-3](X2+1) - 2[Y-ln(X+1)]}.
Выбираем начальную точку M0(2,1) и шаг h=1.Здесь значение функции F(M0)=64, градиент в этой точке grad F(M0) =[ 64.066, -80.197], нормированный градиент (вектор единичной длины, составленный из компонент, деленных на корень из суммы их квадратов) gradн F(M0) = [0.62, -0.78]. Смещаемся в направлении, обратном градиенту (ищем минимум), с выбранным шагом в точку М1=М0-h gradн F(M0)=(2-1 0.62, 1+1 0.78)=(1.38, 1.78) и обнаруживаем, что F(M1)=14 < F(M0).
Аналогичный переход с учетом gradн F(M1) = [0.19, -0.98] приводит в точку М2(1.19, 2.76), где F(M2) 5.26, gradн F(M2) = [-0.96, -0.27]. Переход в очередную точку М3(2.15, 3.03) дает F(M3) 11.33 > F(M2).Соответственно уменьшаем шаг вдвое (h=0.5) и получаем точку М4(2.15, 3.03), где F(M4)=3.78, gradн F(M2) = [0.12, 0.99].
Очередной переход приводит в точку с большим значением функции и приходится еще уменьшать шаг и т.д.
Есть и более эффективные переходы по градиенту, связанные с выбором различного шага по разным координатам или с автоматическим определением шага (при каждом переходе решается задача поиска экстремума функции в заданном направлении). Однако, гарантии нахождения глобального экстремума нет (при разных начальных точках или шагах можно получить разные решения для многоэкстремальных функций).
Градиентные методы для задач с ограничениями, где при смещениях по градиенту приходится сталкиваться с опасностью "выскочить" за пределы допустимого множества решений, существенно усложняются.
Существует обширная литература по численному анализу, где значительное внимание уделяется градиентным и другим итерационным методам, но тем не менее решение нелинейных задач оптимизации при наличии ограничений иногда весьма затруднительно.
Методы Монте-Карло
Методы Монте-Карло. Здесь отыскивается n - мерный параллелепипед, включающий в себя множество планов, и затем моделируются N случайных точек с равномерным законом распределения в параллелепипеде (практически во всех программных средах предусмотрено наличие соответствующих датчиков псевдослучайных чисел).
В
точках, попавших во множество планов,
вычисляются значения функции и
запоминается точка текущего экстремума.
После этого берется параллелепипед
меньших размеров с центром в найденной
точке, и в нем вновь моделируются N
случайных точек. Процесс такого
стохастического моделирования
заканчивается при малых размерах
параллелепипеда. Методы Монте-Карло
имеют преимущество над моделированием
на детерминированной сетке, так как их
точность имеет порядок
1/
и
не зависит от размерности задачи.
Естественно, этими методами никто не
пользуется при ручном счете; они просты
для программной реализации и обычно
используются при поиске начального
приближения для градиентных методов.