Математика / Начала анализа
Тернарный поиск минимума непрерывной унимодальной функции
Тернарный поиск сравнивает функцию в двух точках, делящих интервал на трети. При унимодальности одно сравнение позволяет удалить крайнюю треть и сохранить интервал, содержащий минимум.
Формула
На каждом из показанных шагов отбрасывается правая треть.
Обозначения
- $a,b$
- концы интервала, единица аргумента
- $u,v$
- точки на одной и двух третях интервала, единица аргумента
- $L_n$
- длина после n обычных сокращений, единица аргумента
- $f$
- целевая функция, единица результата
Условия применения
Рассматривается непрерывная функция, строго убывающая до минимума и строго возрастающая после него. Сравнения выполняются без ошибки, меняющей их порядок. В этой записи аргумент вещественный: правила завершения дискретного поиска по индексам требуют отдельной обработки оставшихся целых точек.
Ограничения
На плоских участках с последующим новым спадом обычное правило равенства может удалить лучший минимум, поэтому одной слабой монотонности недостаточно. Схема обычно требует два свежих вычисления за шаг. При шуме близкие значения нельзя уверенно упорядочить; фиксированное число шагов не устраняет ошибку данных.
Подробное объяснение
Название связано с тремя частями интервала, но после сравнения обычно сохраняются две из них. Если f(u) больше f(v), минимум не расположен в левой трети: строго убывающая ветвь должна продолжаться хотя бы до более низкого правого значения. При противоположном сравнении удаляется правая треть.
При точном равенстве внутренних значений строгая унимодальность помещает минимум между u и v. Можно сохранить только центральную треть. Приведённая единообразная версия оставляет [a,v], что тоже безопасно, но сокращает интервал лишь в отношении 2/3. Поэтому формула длины относится именно к этой версии алгоритма.
После n обычных шагов Lₙ = (2/3)ⁿL₀. Оценку числа шагов получают логарифмированием, не забывая, что ln(2/3) отрицателен. Для заданной ошибки середины ε достаточно Lₙ ≤ 2ε. Проверка ближайшего целого числа подстановкой надёжнее округления логарифма на границе.
У золотого сечения внутренние точки выбирают так, чтобы одна из них точно сохранилась в новой конфигурации. У деления на трети такого совпадения обычно нет. Поэтому тернарная схема проще геометрически, но может оказаться дороже при трудоёмком вычислении функции.
Задача минимизации отличается от решения f(x) = 0. Функция (x−2)²+7 не обращается в нуль на вещественной оси, однако её минимум прекрасно находится сравнением высот. Значение минимума и положение минимизатора следует записывать раздельно.
Как пользоваться формулой
- Выберите вещественный интервал и подтвердите строгую унимодальность; определите допустимую ошибку положения минимума.
- Найдите точки u и v на одной и двух третях текущего отрезка; вычислите функцию в обеих точках без грубого округления.
- Сравните высоты: при большем левом значении отбросьте левую треть, иначе правую; сохраните замкнутый интервал.
- Проверьте длину оставшегося отрезка и верните его середину, когда половина длины станет не больше заданного допуска.
Историческая справка
Сокращение интервала по сравнению пробных значений относится к алгоритмической традиции одномерной оптимизации XX века. Её основной вопрос — какую область можно уверенно исключить после ограниченного числа вычислений функции. Университетское изложение золотого сечения в CS 357 формулирует тот же принцип исключения через две внутренние точки; деление на трети получается при их фиксированном выборе на 1/3 и 2/3 длины. Здесь тернарная схема представлена как прямое следствие унимодальности, без приписывания отдельного открытия конкретному математику. Различие с золотым сечением относится прежде всего к повторному использованию значений и расходу вычислений, а не к новой теории экстремумов.
Историческая линия формулы
У схемы используется описательное имя: две пробные точки делят отрезок на три части. Приведённое доказательство опирается на унимодальность, как и университетские методы исключения интервала. Единственный автор этой элементарной версии здесь не устанавливается.
Пример
Пусть f(x) = (x−2)²+1, исходный интервал [0,9]. Внутренние точки равны u = 3 и v = 6. Получаем f(3) = 2 и f(6) = 17, поэтому минимум сохраняется на [0,6]. Следующие точки равны 2 и 4, значения — 1 и 5; остаётся [0,4]. Точный минимум x = 2 остаётся внутри обоих интервалов. За два обычных сокращения длина уменьшилась с 9 до 4, что совпадает с 9·(2/3)². Средина последнего интервала случайно совпала с точным ответом, но общая гарантия пока равна лишь половине длины, то есть 2. Совпадение в этом примере не заменяет критерий остановки. Все числа и координаты здесь безразмерны.
Частая ошибка
Не называйте сохраняемую длину одной третью при обычном неравном сравнении: сохраняются две трети. Не переносите вещественное правило остановки на целые индексы без финального перебора. Не разрешайте произвольные плато при заявленной гарантии. Не считайте случайное попадание середины доказательством точности.
Практика
Задачи с решением
Пять шагов
Условие. Исходная длина 27. Какова длина после пяти обычных сокращений?
Решение. Получаем 27·(2/3)⁵ = 32/9 ≈ 3,555556. Это длина, а не ошибка середины.
Ответ. 32/9.
Равные значения
Условие. Для f(x) = (x−3)² на [0,6] сравните точки 2 и 4. Что можно сохранить?
Решение. Оба значения равны 1. При строгой унимодальности минимум лежит в [2,4]; обычное правило также безопасно оставляет [0,4].
Ответ. Можно сохранить [2,4]; стандартная версия оставит [0,4].
Дополнительные источники
- https://cs357.cs.illinois.edu/textbook/notes/optimization.html
- https://courses.grainger.illinois.edu/cs357/fa2019/references/ref-12-opt-nd/
Связанные формулы
Математика
Метод золотого сечения: сужение интервала минимума
Золотое сечение находит минимум унимодальной функции без производных. Два внутренних значения позволяют отбросить часть интервала, а удачное отношение длин сохраняет одно вычисление для следующего шага.
Математика
Параболическая интерполяция для поиска минимума функции
Через три значения функции строят квадратичный интерполянт и используют его вершину как новую пробную точку минимума. В отличие от деления интервала схема учитывает высоты всех трёх точек.
Математика
Градиентный спуск с постоянным шагом: условие убывания
Постоянный шаг градиентного спуска смещает точку против градиента. При липшицевом градиенте известная граница шага обеспечивает уменьшение функции и объясняет, почему слишком крупный шаг вызывает расходимость.
Математика
Правило Армихо: обратный поиск длины шага спуска
Обратный поиск по правилу Армихо уменьшает пробный шаг, пока функция не снизится на заданную долю линейного прогноза. Он выбирает длину движения вдоль уже найденного направления спуска.