- •1. ВВЕДЕНИЕ
- •1.1. Постановка задач оптимизации
- •1.2. Математическая постановка задач оптимизации
- •1.2.1. Виды ограничений
- •1.2.2. Критерии оптимальности
- •1.2.3. Классификация задач
- •2. ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ
- •2.1. Методы сужения интервала неопределенности
- •2.1.1. Общий поиск
- •2.1.2. Унимодальные функции
- •2.1.3. Метод деления интервала пополам
- •2.1.4. Метод золотого сечения
- •2.1.5. Установление первоначального интервала неопределенности
- •2.2. Ньютоновские методы
- •3. МИНИМУМ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ
- •3.1. Рельеф функции
- •3.2. Метод покоординатного спуска (Метод Гаусса)
- •3.3. Метод оврагов
- •4. МЕТОДЫ С ИСПОЛЬЗОВАНИЕМ ПРОИЗВОДНЫХ
- •4.1. Градиентные методы
- •4.2. Метод Нюьтона
- •4.3. Метод Марквардта
- •5. УСЛОВНАЯ ОПТИМИЗАЦИЯ
- •5.1. Задачи с ограничениями в виде равенств
- •5.1.1. Множители Лагранжа
- •5.2. Задачи с ограничениями в виде неравенств
- •5.2. Методы штрафных функций
- •5.3. Метод факторов
- •6. Случайный поиск
- •6.1. Простой случайный поиск
- •6.2. Ненаправленный случайный поиск
- •6.3. Направленный случайный поиск
- •6.3.1. Алгоритм парной пробы
- •6.3.2. Алгоритм наилучшей пробы
- •6.3.3. Метод статистического градиента
- •6.3.4. Алгоритм наилучшей пробы с направляющим гиперквадратом
- •6.4. Алгоритмы глобального поиска
- •7. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •7.1. Примеры задач линейного программирования
- •7.1.1. Задача об использовании сырья
- •7.1.2. Задача об использовании мощностей оборудования
- •7.1.3. Транспортная задача
- •7.1.4. Задача о питании
- •7.2. Основная задача линейного программирования
- •7.3. Основная задача линейного программирования с ограничениями-неравенствами
- •7.4. Геометрическое толкование задач линейного программирования
- •7. СИМПЛЕКС МЕТОД ИЛИ МЕТОД ПОСЛЕДОВАТЕЛЬНОГО УТОЧНЕНИЯ ОЦЕНОК
- •7.1. Алгоритм симплекс метода
- •7.2. Вырожденность в задачах линейного программирования
- •7.3. Двойственность задачи линейного программирования
- •Теоремы двойственности
- •7.4. Метод последовательного уточнения оценок
- •7.5. Методы решения транспортной задачи
- •7.5.1. Метод северо-западного угла
- •7.5.2. Метод минимального элемента
- •7.5.3. Метод потенциалов
- •СПИСОК ЛИТЕРАТУРЫ
- •СОДЕРЖАНИЕ
Рис. 24. Построение включающег гиперпараллелепипеда (А, В – границы параллелепипеда)
Различают направленный и ненаправленный случайный поиск.
6.2. Ненаправленный случайный поиск
Все случайные испытания строят совершенно независимо от результатов предыдущих. Скорость сходимости такого поиска очень мала, но имеется важное преимущество: возможность решать многоэкстремальные задачи (искать глобальный экстремум). Примером является рассмотренный выше простой случайный поиск.
6.3. Направленный случайный поиск
В этом случае отдельные испытания связаны между собой. Результаты проведенных испытаний используются для формирования последующих. Скорость ходимости таких методов, как правило, выше, но сами методы обычно приводят к локальным экстремумам.
Приведем простейшие алгоритмы направленного случайного поиска.
6.3.1.Алгоритм парной пробы
Вданном алгоритме четко разделены пробный и рабочий шаги. Пусть xk – найденное на k -м шаге наименьшее значение минимизируемой функции f (x).
По равномерному закону генерируется случайный единичный вектор ξ и по обе стороны от исходной точки xk делаются две пробы: проводят вычисление
функции в точках x1,2k = xk ± g ξ , где g -величина пробного шага (рис. 25). Рабочий шаг делается в направлении наименьшего значения целевой функция. Очередное приближение определяется соотношением
xk+1 = xk + ∆xk = xk +a ξ sign (f (xk − gξ) − f (xk + gξ)),
45
1, x ≥ 0,
где sign(x) =
−1, x < 0.
Рис. 25. К алгоритму парной пробы
Особенностью данного алгоритма является его повышенная тенденция к «блужданию». Даже найдя экстремум, алгоритм уводит систему в сторону.
6.3.2. Алгоритм наилучшей пробы
На k -м шаге мы имеем точку xk . Генерируется m случайных единичных
векторов ξ1, ..., ξm . |
Делаются пробные шаги в направлениях g ξ1, ..., g ξm и в |
||||
точках xk + g ξ , ..., |
xk + g ξ |
m |
вычисляются значения функции (рис. 26). Выби- |
||
|
1 |
|
|
|
|
рается тот |
шаг, |
который приводит к наибольшему уменьшению функции: |
|||
ξ* = arg min |
f (xk |
+ g ξi ). В данном направлении делается шаг ∆xk = λ ξ . Па- |
|||
i=1,m |
|
|
|
|
|
раметр λ может определяться как результат минимизации по определенному направлению или выбирается по определенному закону.
С увеличением числа проб выбранное направление приближается к направлению антиградиента − f (x).
Если функция f (x) близка к линейной, то есть возможность ускорить по-
иск, выбирая вместе с наилучшей и наихудшую пробу. Тогда рабочий шаг можно делать или в направлении наилучшей пробы, или в направлении, противоположном наихудшей пробе.
Рис. 26. К алгоритму наилучшей пробы
46
6.3.3. Метод статистического градиента
Из исходного состояния xk делается m независимых проб g ξ1 ,..., g ξm и
вычисляются соответствующие значения минимизируемой функции в этих точках (рис. 27). Для каждой пробы запоминются приращения функции
∆f j = f (xk + g ξj )− f (xk ).
m
После этого формируют векторную сумму ∆f = ∑ξj ∆f j . В пределе при
j=1
m → ∞ она совпадает с направлением градиента целевой функции. При конечном m вектор ∆f представляет собой статистическую оценку направления гра-
диента. Рабочий шаг делается в направлении ∆f . Очередное приближение определяется соотношением
xk+1 = xk −λ ∆∆ff .
При выборе оптимального значения λ, которое минимизирует функцию в заданном направлении, получают случайный вариант метода наискорейшего спуска. Существенным преимуществом перед детерминированными алгоритмами является возможность принятия решения о направлении рабочего шага при m < n . При m = n и неслучайных ортогональных рабочих шагах, направленных вдоль осей координат, алгоритм вырождается в градиентный метод.
Рис. 27. К алгоритму статистического градиента
6.3.4. Алгоритм наилучшей пробы с направляющим гиперквадратом
Внутри допустимой области строится гиперквадрат. В этом гиперквадрате случайным образом разбрасывается m точек x1, ..., xm , в которых вычисляются
значения функции (рис. 28). Среди построенных точек выбирают наилучшую. Опираясь на эту точку, строят новый гиперквадрат. Точка, в которой достигается минимум функции на k -м этапе, берется в качестве центра нового гиперквадрата на (k +1) -м этапе. Координаты вершин гиперквадрата на (k +1) -м этапе
определяются соотношениями
aik+1 = xik+1 − bik −2 aik , bik+1 = xik+1 + bik −2 aik ,
где xk – наилучшая точка в гиперквадрате на k -м этапе.
47