- •Методы оптимизации
- •Методы оптимизации
- •1. Основные понятия и определения.
- •1.1 Место и роль методов оптимизации при моделировании и решении прикладных задач.
- •1.2 Общая постановка прикладной задачи.
- •1.3 Классификация оптимизационных методов и моделей.
- •1.4 Основные этапы построения оптимизационных моделей.
- •2. Линейное программирование.
- •2.1 Пример постановки задачи линейного программирования.
- •2.2 Общая постановка задачи линейного программирования.
- •2.3 Методика составления экономико-математических моделей.
- •2.4 Геометрическая интерпретация решения злп.
- •Выполнить самостоятельно. Задание №1.
- •2 .6 Симплекс-метод (см) решения злп
- •2.7 Отыскание опорного и оптимального решения злп с использованием табличного алгоритма с заменой базисных переменных.
- •Выполнить самостоятельно.
- •2.8 Двойственные задачи линейного программирования (дзлп).
- •2.9 Алгоритм составления двойственных злп:
- •3. Теорема двойственности
- •3. Целочисленное программирование.
- •3.1 Постановка задачи целочисленного программирования (зцп)
- •3.2 Метод отсечения (метод Гомори).
- •3.3 Алгоритм решения злцп
- •4. Нелинейное программирование.
- •4.1Классические методы оптимизации.
- •4.2 Метод множителей Лагранжа.
- •5. Методы направленного поиска экстремумов.
- •5.1 Методы определения экстремума унимодальной функции.
- •5.2 Методы определения локального экстремума функции нескольких переменных
5.2 Методы определения локального экстремума функции нескольких переменных
а) Метод Гаусса – Зейделя
Метод поочередного изменения параметров (переменных), или метод покоординатного спуска (подъема).
Суть метода: поочередная оптимизация последовательно по каждой переменной.
Обрабатывается функция n переменных. По каждой переменной задана область изменения. Случайным образом выбирается т. А1 .
А1:х1′,х2′, х3′ ,…, хn′ => f(х1′,х2′ , х3′,…, хn′)
=
х1 рассматривается в целевой функции, а другие переменные фиксируются. Применяется один из рассмотренных ранее методов. Затем находится т.А2.
А1:х12,х2′, х3′ ,…, хn′ => f(х12 , х2′ , х3′,…, хn′)
=
Берется следующая переменная – х2. Целевую функцию рассматриваем как функцию переменной х2 ,остальные переменные фиксируются. Используем один из методов для функции одной переменной и получаем т. А3.
А3=:х12,х22, х3′ ,…, хn′ и т.д. процесс повторяется.
Характерные черты метода: Спираль выбранных точек имеет прямые углы. Метод обеспечивает поиск только локального экстремума. Результаты анализа целевой функции зависят от первоначально выбранной точки.
Преимущество: простота алгоритмизации. Алгоритм останавливается, когда разница между значениями целевой функции достаточно мала (она задается).
б) Метод градиента(наиболее распространен)
Суть метода: нахождение направления движения, в котором целевая функция наибольшим образом изменяется и осуществление следующего шага в этом направлении.
Градиент функции – вектор, который характеризует направление наибольшего возрастания функции.
Антиградиент – уменьшение функции. grad fN(х1,х2, ...,хn)=(∂ fN/∂ х1, ∂ fN/∂ х2,..., ∂ fN/∂ хn ), вычисленный в точке N
∂ fN/∂ х1 = tgα > 0(≤α < 90 *) - значит ∂ fN/∂ х1 = tgα <0 - значит нужно шагать вправо(увеличивать х). нужно шагать вправо(увеличивать х).
∂ fN/∂ х2 = tgβ< 0(≤α > 90 *) - ∂ fN/∂ х2 = tgβ> 0 - значит нужно шагать влево.
значит нужно шагать влево (уменьшать х).
( уменьшить х).
Для max следующая точка хN+1 = xN+ (∂ fN/∂ хn) ∙ h
h- вспомогательная величина.
Если ∂ fN/∂ хn =0 , то в этой точке экстремум.
Для min следующая точка хN+1 = xN- (∂ fN/∂ хn) ∙ h
В случае n- мерного пространства:
_
хi N+1=xiN+(∂fN/∂хin)∙h; i=1,n – max
_ (1)
хi N+1 = xiN - (∂ fN/∂ хi n) ∙ h; i=1, n - min
Алгоритм метода
Случайно выбираемся точка с некоторыми координатами. Затем по формуле (1) рассчитывается следующая точка.
Алгоритм останавливается либо при уменьшении модуля рабочего шага, либо по значению целевой функции.
Модуль рабочего шага
b=h
Преимущества:
-метод сходится быстрее.
Недостаток:
-необходимость вычислять частные производные.
в) Метод наискорейшего спуска
Представляет собой ускоренный метод градиента
При поиске min
f(x1, x2, … xm)- целевая функция
xiN+1=xiN – t ∂f/∂xiN = x(t) i=1, … m
будем считать t – переменной
f(x1(t), x2(t), . . .,xm(t)) = (t), в этом случае целевая функция есть функция одной переменной t.
Составим уравнение =0, найдем t*.
xiN+1=xiN – t* ∂f/∂xiN
чем ближе к min – тем меньше , тем меньше шаг надо делать.