- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •1. ЗАДАЧИ ОПТИМИЗАЦИИ
- •1.1. Основные понятия
- •1.2. Некоторые простые примеры
- •1.3. Задачи оптимального проектирования
- •1.4. Задачи оптимального планирования
- •1.5. Классы задач оптимизации
- •Вопросы и задачи
- •2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ
- •2.1. Предварительные замечания
- •2.3. Оптимальный пассивный поиск
- •2.4. Методы последовательного поиска
- •2.5. Сравнение методов последовательного поиска
- •2.6. Методы полиномиальной аппроксимации
- •2.7. Методы с использованием производных
- •Вопросы и задачи
- •3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
- •3.2. Выпуклые функции
- •3.4. Условия минимума выпуклых функций
- •3.5. Сильно выпуклые функции
- •ф{t) = (grad/(а; + th), h)
- •3.6. Примеры минимизации квадратичных функций
- •3.7. Минимизация позиномов
- •Qj = '%2aijci = Q> J = !.*»•
- •Вопросы и задачи
- •4. ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
- •4.1. Релаксационная последовательность
- •4.2. Методы спуска
- •4.4. Минимизация квадратичной функции
- •4.5. Сопряженные направления спуска
- •5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
- •|iufc|
- •5.3. Метод Ньютона
- •5.4. Модификации метода Ньютона
- •5.5. Квазиньютоновские методы
- •Вопросы и задачи
- •6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
- •6.1. Особенности прямого поиска минимума
- •6.2. Использование регулярного симплекса
- •6.4. Циклический покоординатный спуск
- •6.5. Метод Хука — Дживса
- •Щ + bjej,
- •6.6. Методы Розенброка и Пауэлла
- •Вопросы и задачи
- •7. АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. Минимизация при ограничениях типа равенства
- •7.4. Седловая точка функции Лагранжа
- •7.5. Двойственная функция
- •7.6. Геометрическое программирование
- •Вопросы и задачи
- •8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •8.1. Метод условного градиента
- •8.2. Использование приведенного градиента
- •8.5. Метод проекции антиградиента
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Математика в техническом университете Выпуск XIV
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
Вметодах прямого поиска минимума целевой функции (или
мет одах нулевого порядка) используют информацию только о
значениях этой функции. Многие из этих методов не имеют строгого теоретического обоснования и построены на основе эвристических соображений. Поэтому вопросы сходимости ме тодов прямого поиска еще мало изучены, а оценки скорости сходимости обычно отсутствуют. Вместе с тем эти методы идейно связаны с методами первого и вт орого порядков, что в ряде случаев позволяет оценивать эффективность алгорит мов прямого поиска применительно к минимизации некоторых классов функций.
Распространенным способом оценки эффективности мето дов прямого поиска являются вычислительные эксперименты и сравнительный анализ методов по результатам таких экспери ментов. Однако следует учитывать, что этот анализ не во всех случаях может приводить к однозначным выводам о преиму ществах одного метода перед другим.
Во-первых, это связано с тем, что сравнению обычно подвер гаются не только методы, но и программные реализации соот ветствующих алгоритмов. Хороший метод можно пзагубить “ плохим программированием, неудачным выбором параметров алгоритма. Во-вторых, методы могут вести себя по-разному на различных этапах процесса минимизации. Удовлетворитель ного способа преодоления указанных трудностей не существу ет. Единственное, что можно сделать в подобной ситуации, — привести данные о результатах вычислений в развернутой фор ме, позволяющей сравнивать методы по различным критериям. Кроме того, не следует забывать, что поиск решения всегда
остается искусством, которому можно научиться лишь путем проб и ошибок, применяя различные методы при решении кон кретных задач.
6.1. Особенности прямого поиска минимума
Для применения методов прямого поиска минимума целевой функции достаточно располагать лишь возможностью вычисле ния значения .функции в любой точке ее области определения. Это обстоятельство существенно расширяет сферу практиче ского применения таких методов.
Опишем один из наиболее простых алгоритмов минимиза ции функции /(ж), определенной в W1. Выберем в Шп точку ж0, называемую обычно базовой. Вычислим в ней значение f(x°) функции /(ж ), а затем построим n-мерный куб с цен тром в этой точке и с ребрами длиной Z, параллельными ортам базиса. Множество вершин этого куба вместе с точкой ж0 со ставляют так называемый шаблон (или образец). Вычислив значения функции в вершинах куба, выберем в качестве но вой базовой точки ту из вершин, в которой значение функции меньше /(ж 0), и повторим описанную процедуру построения шаблона и выбора следующей базо вой точки. Если же такой верши ны не оказалось, то оставим преж нюю базовую точку ж0 и построим шаблон с уменьшенной (например, вдвое) длиной ребер куба. Про цесс поиска закончим, когда длина ребра куба станет меньше задан ного числа е > 0. Геометрическая иллюстрация описанного алгорит ма, называемого обычно поиском при помощи шаблона (или образ ца), представлена на рис. 6.1 в дву мерном случае.
Основной недостаток поиска при помощи шаблона состо ит в резком росте количества вычислений значений целевой функции при увеличении размерности п (порядка 2П), а глав ное преимущество — в простоте алгоритма. Эффективность этого алгоритма можно повысить за счет использования инфор мации о ранее вычисленных значениях функции, что позволяет уменьшить число рассматриваемых точек путем отбрасывания тех точек, в которых значения функции не существенны для выбора следующей базовой точки. Геометрически это соответ ствует процедуре построения вокруг базовой точки в качестве шаблона не n-мерного куба, а конфигурации с меньшим коли чеством вершин, в которых вычисляют значения функции.
Реализация этой идеи привела к разработке методов сим плексного поиска, получивших к началу 1970-х годов широ кое распространение. Симплекс (от латинского слова simplex — простой) — это простейший выпуклый многогранник в Rn с п + 1 вершинами (в R2 — треугольник, в R3 — тетраэдр). Каждую вершину этого многогранника называют вершиной симплекса. Идея построения алгоритма симплексного поиска состоит в следующем: в вершинах симплекса вычисляют значе ния минимизируемой функции, наихудшую из вершин — ту, в которой значение функции наибольшее, — заменяют по опре деленному правилу новой вершиной, образуя тем самым новый симплекс. Затем эту процедуру повторяют.
В одном из первых разработанных вариантов симплексного поиска был использован регулярный симплекс, у которого все вершины равноудалены друг от друга (в R2 — равносторон ний треугольник, в R3 — правильный тетраэдр). Дж. Нелдер и Р. Мид* в 1965 году впервые рассмотрели произвольный (нерегулярный) симплекс и предложили способ изменения ско рости его движения путем расширения или сжатия симплекса в зависимости от того, удачно ли был выбран шаг поиска в направлении убывания функции или нет. Позднее в исходные
*См.: Базара М., Шетти К.