- •1. Введение в оптимизацию 4
- •2. Безусловная оптимизация функции одной переменной 13
- •1. Введение в оптимизацию
- •Ограничения на допустимое множество
- •Структура оптимизационных задач математического программирования
- •Примеры постановки задачи оптимизации для решения методами математического программирования
- •Классификация методов оптимизации
- •2. Безусловная оптимизация функции одной переменной
- •Свойства функции одной переменной
- •Идентификация экстремумов функции одной переменной
- •Прямые методы поиска экстремума функции одной переменной
- •Метод равномерного поиска
- •Метод золотого сечения
- •Сравнение методов исключения интервалов
- •Полиномиальная аппроксимация
- •Методы с использованием производных
- •Метод Ньютона-Рафсона
- •Метод средней точки
- •Метод секущих
- •3. Безусловная оптимизация функции нескольких переменных
- •Критерии оптимальности для функции нескольких переменных
- •Методы прямого поиска для нескольких переменных
- •Метод эволюционной оптимизации
- •Метод поиска по симплексу ( метод)
- •Градиентные методы
- •Метод Коши (Наискорейшего спуска)
- •Метод покоординатного спуска.
- •С хема метода Гаусса – Зейделя
- •4. Условная оптимизация. Линейное программирование
- •Общие сведения о линейном программировании
- •Постановка задачи линейного программирования
- •Пример постановки задачи линейного программирования
- •Геометрическая интерпретация задачи линейного программирования
- •Симплекс-метод решения задачи линейного программирования.
- •5. Классическое вариационное исчисление
- •Критерий оптимизации в задачах вариационного исчисления
- •Вариация функционала
- •Необходимые условия экстремума. Уравнение Эйлера.
- •Уравнение Эйлера и условия Лежандра для функционалов, зависящих от нескольких функций и от высших производных
- •6. Динамическое программирование
- •Задача о Черепашке
- •Оптимальное управление представляет собой вектор, определяемый последовательностью оптимальных пошаговых управлений
- •Организация процесса оптимизации в динамическом программировании
Метод поиска по симплексу ( метод)
Одна из наиболее
популярных стратегий прямого поиска
экстремума функции нескольких переменных
представляет собой поиск по симплесу
или
метод. Регулярный симплекс в
-мерном
пространстве представляет собой
многогранник, образованный
равноотстоящими друг от друга
точками-вершинами. Например, в случае
двумерного пространства это равнобедренный
треугольник (рис. 3.2а), в случае трех
переменных – тетраэдр (рис. 3.2б). В
алгоритме симплексного метода используется
важное свойство симплекса, согласно
которому новый симплекс можно построить
на любой грани первоначального симплекса
путем переноса выбранной вершины на
надлежащее расстояние вдоль прямой,
проведенной через центр тяжести остальных
вершин начального симплекса. Полученная
таким образом точка является вершиной
нового симплекса, а выбранная вершина
начального симплекса исключается.
Рис. 3.2 Симплексы в двумерном пространстве
Работа алгоритма
начинается с построения начального
симплекса и оценивания целевой функции
в каждой из его вершин. При этом
определяется вершина, которой соответствует
максимальное из значений
.
Затем найденная вершина проецируется
через центр тяжести остальных вершин
нового симплекса в новую точку, которая
используется в качестве вершины нового
симплекса. Если функция убывает достаточно
плавно, итерации продолжаются пока не
будет накрыта точка минимума или не
начнется циклическое движение по
симплексам. Признаком циклического
движения является то, что некоторая
вершина не исключается на протяжении
более
итераций.
В таких ситуациях можно воспользоваться следующими правилами.
Правило 1. Если вершина, которой соответствует наибольшее значение целевой функции, построена на предыдущей ирерации, то вместо нее берется вершина, которой соответствует следующее по величине значение целевой функции.
Правило 2. Если некоторая вершина не исключается на протяжении более итераций, то размеры симплекса следует уменьшить с помощью коэффициента редукции и построить новый симплекс относительно базовой точки, за которую берется точка достигнутого минимума целевой функции.
Поиск завершается, когда или размеры симплекса или разности между значениями функции в вершинах становятся достаточно малыми.
Реализация данного алгоритма основана на вычислениях двух типов:
построении исходного регулярного симплекса при заданной базовой точке и масштабном множителе;
расчете координат отраженной точки.
Обе процедуры являются
достаточно простыми. При заданных
координатах начальной точки и масштабном
множителе
координаты остальных
вершин симплекса в
-мерном
пространстве вычисляются по формуле
для
и
.
Приращения
и
,
зависящие только от масштабного множителя
и размерности пространства
,
определяются по формулам
Величина
выбирается исследователем исходя из
характера решаемой задачи. При
ребра симплекса имеют единичную длину.
Вычисления второго
типа, связанные с отражение относительно
центра тяжести, также не сложны. Пусть
- точка подлежащая отражению. Центр
тяжести остальных
точек расположен в точке
.
Все точки прямой,
проходящей через
и
,
задаются формулой
.
При
получаем исходную точку, при
получаем центр тяжести. Симметричное
отражение будет при
.
Таким образом, новая точка может быть
получена по формуле
.
(3.1)
Пример.
Минимизировать функцию
.
Прежде всего, требуется
задать начальную точку и масштабный
множитель. Примем
и
.
Вычислим и . Имеем
Используя эти два параметра вычислим координаты остальных вершин симплекса:
Рис.3.3. Иллюстрация поиска по симплексу
Этим точкам соответствуют
значения целевой функции
.
Так как точкой максимума целевой функции является точка , именно эту точку следует отразить относительно центра тяжести остальных вершин симплекса. Используя формулу (3.1) получаем
В полученной точке
,
т.е. наблюдается уменьшение целевой
функции. В новом симплексе, образованном
точками
наибольшее значение целевой функции
дает точка
,
поэтому именно ее следует отобразить
относительно центра тяжести точек
и
.
Преимущества метода:
расчеты и логическая структура отличаются относительной простотой. Соответственно программу будет короткой;
уровень требований к объему памяти ЭВМ невелик, массив имеет размерность
;используется сравнительно небольшое число заранее установленных параметров;
алгоритм эффективен даже при большой ошибке вычисления целевой функции, поскольку используются наибольшие значения в вершинах, а не наименьшие.
Недостатки метода:
алгоритм работает слишком медленно, т.к. полученная на предыдущих итерациях информация не используется для ускорения счета;
необходимо масштабировать переменные, чтобы они были сравнимы по величине.
Некоторое улучшение характеристик метода может быть получено, если отказаться от регулярности симплекса, допустив при отражении возможность его растяжения и сжатия.
