Глобальный → локальный (конвейер или pipeline)
| Класс | Воспроизводимость | Стартовая точка | Свёртка по полосе |
|---|---|---|---|
| связка | да | используется | любая |
Воспроизводимость полная при любом выборе этапов: этап всегда работает с зерном случайных чисел по умолчанию, а собственные настройки методов глобального и локального этапа здесь не применяются (см. «Настройки этапа» ниже).

Назначение
Рекомендуемый метод по умолчанию для поиска в широких диапазонах:
- этап 1 (глобальная разведка) находит перспективную область,
- этап 2 (локальный дожим) уточняет лучшую точку в её окрестности; остаток бюджета расходуется на дожим следующих кандидатов (рестарты).
Повторные расчёты одинаковых геометрий исключаются кэшем и бюджет не тратят.
Алгоритм
Собственного алгоритма поиска у конвейера нет: это двухфазная схема над двумя методами каталога.
Общий бюджет B делится долей s (поле Доля глобального этапа): разведка получает s·B расчётов, остаток (1−s)·B и уходит на дожимы.
Разведка работает по всей области и нужна лишь для того, чтобы найти
перспективные бассейны притяжения; дожим работает в окне вокруг кандидата x*
по каждой оси, где r — поле Радиус локального этапа. Сужение области — и
есть главный приём схемы: локальному методу не приходится бороться с глобальным
рельефом, а глобальному — доводить точку до допуска по параметрам.
Кандидаты дожима берутся из всех точек, посчитанных разведкой: список
сортируется (допустимость, затем величина нарушения, затем F) и прореживается
по расстоянию d (поле Мин. расстояние рестартов) — кандидат отбрасывается,
если он ближе d к уже дожатому. Это тот же фильтр бассейнов, что у
Мультистарта, но радиус здесь постоянный и задаётся
пользователем, а не убывает по числу проб.
Переход между фазами не привязан жёстко к доле бюджета: разведке назначается порог стагнации в четверть её доли, и при отсутствии улучшений её остаток передаётся дожиму. Повторные расчёты одной геометрии исключает кэш, поэтому ни переход, ни рестарты лишних расчётов не стоят.
Поле Пресет
| Пресет | Поведение |
|---|---|
| Авто(рекомендуется) | этапы подбираются автоматически (см. лестницу ниже). Поля Глобальный этап / Локальный этап недоступны для правки |
| Разведка → Дожим | оба этапа задаются вручную в полях Глобальный этап / Локальный этап |
| Тщательный | как Разведка → Дожим (та же ручная пара этапов, поля доступны), но рестарты по всем кандидатам разведки включены принудительно |
Поля этапов при пресете Авто показывают не тот выбор, который будет сделан. Они остаются на паре, сохранённой в проекте, и только гаснут; фактические этапы вычисляются по лестнице ниже в момент запуска прогона, когда известны число переменных, режим агрегации и наличие жёстких ограничений. Какая пара действительно взята, видно в журнале решателя: блок старта печатает её строками «Глобальный этап» / «Локальный этап».
Лестница пресета Авто:
- есть цели с признаком «жёсткое ограничение»: этап 1 — Адаптивная эволюция (ISRES), этап 2 — Поиск с ограничениями (COBYLA);
- иначе этап 1 — по числу параметров n: n ≤ 8 → Систематический глобальный (DIRECT-L), 9 ≤ n ≤ 16 → Управляемый случайный поиск (CRS2), n > 16 → Адаптивная эволюция (ISRES);
- иначе этап 2 — Симплекс (SBPLX) при агрегации «худшая точка», в остальных случаях Доверительная область (BOBYQA).
Какие методы доступны как этапы
Списки полей Глобальный этап / Локальный этап строятся из общего списка методов, поэтому названия в них совпадают с названиями в поле выбора метода.
- Глобальный этап (7 методов): Систематический глобальный (DIRECT-L), Управляемый случайный поиск (CRS2), Мультистарт (MLSL), Адаптивный глобальный (MaxLIPO), Ковариационная адаптация (CMA-ES), Адаптивная эволюция (ISRES), Эволюционная стратегия (ESCH).
- Локальный этап (3 метода): Доверительная область (BOBYQA), Симплекс (SBPLX), Поиск с ограничениями (COBYLA).
Сам конвейер этапом быть не может и в этих списках отсутствует. Мультистарт (MLSL) предлагается глобальным этапом, хотя в общем списке методов он стоит в группе «С дожимом»: по характеру поиска это глобальный метод (см. Методы оптимизации).
Настройки этапа
От конвейера этап получает свою долю бюджета расчётов и критерий останова по достижению целей (допуск цели). Всё остальное — встроенные значения по умолчанию движка этапа: страница метода в диалоге на этап не влияет. Выбор Ковариационной адаптации (CMA-ES) этапом 1 не берёт sigma0 со страницы CMA-ES — ровно так же, как этап DIRECT-L не берёт флаг Равномерное покрытие со своей страницы.
Встроенные значения по умолчанию этапа — это значения его собственного метода: этап получает ровно то, что страница метода показывает в новом проекте. Начальный шаг и точность по параметрам у этапа Симплекс (SBPLX) — 0,100 и 0,0050, точность у этапа Поиск с ограничениями (COBYLA) — 0,0020, и так далее.
Одно исключение — этапы Систематический глобальный (DIRECT-L) и Эволюционная стратегия (ESCH): им точность по параметрам выставляется в 0, потому что своей сходимости по параметрам у этих методов нет. Это то же значение, с которым они работают при одиночном запуске, — метод не ведёт себя по-разному в зависимости от того, запущен он этапом или сам по себе.
Кроме бюджета и допуска цели конвейер задаёт глобальному этапу ещё две величины:
- размер популяции — автоматическое значение зажимается так, чтобы в бюджет этапа влезало не меньше примерно четырёх «поколений». Это относится к этапам CRS2, ISRES, ESCH и CMA-ES;
- порог остановки при стагнации — если разведка перестала улучшать результат, этап 1 завершается досрочно и конвейер раньше переходит к дожиму (у метода, выбранного одиночно, такая остановка по умолчанию выключена). Порог назначает сам конвейер — четверть доли глобального этапа, — поэтому у этапов Систематический глобальный (DIRECT-L), Эволюционная стратегия (ESCH) и Адаптивный глобальный (MaxLIPO), у которых своей сходимости нет, досрочный переход к дожиму всё равно работает. Порог не действует только у этапа Ковариационная адаптация (CMA-ES): у этого метода такой настройки нет, зато есть собственные критерии сходимости.
Локальному этапу конвейер, кроме бюджета и допуска цели, настроек не переопределяет: ни популяцию (у методов дожима её нет), ни порог остановки при стагнации. Область поиска и стартовую точку дожима задаёт сам конвейер — см. «Радиус локального этапа» в таблице параметров.
Персональные настройки этапов в файле проекта не сохраняются — хранятся только сами выбранные методы этапов.
Параметры
| Параметр | По умолчанию | Диапазон | На что влияет |
|---|---|---|---|
| Бюджет расчётов | 0 = авто | — | общий предел на оба этапа и рестарты |
| Доля глобального этапа | 0,60 | 0,3–0,8 | больше — лучше разведка (меньше риск пропустить бассейн), слабее дожим. При стагнации разведки переход к дожиму происходит раньше автоматически |
| Радиус локального этапа | 0,150 | 0,05–0,30 | размер окна вокруг найденной точки, в котором работает дожим. Меньше — быстрее и точнее в найденном бассейне; больше — шанс выбраться из мелкого бассейна ценой скорости |
| Мин. расстояние рестартов | 0,100 | 0,05–0,25 | кандидаты ближе этого расстояния к уже дожатым считаются тем же бассейном и пропускаются |
| Рестарты | вкл | — | после сходимости дожима остаток бюджета тратится на спуски от следующих кандидатов разведки |
Рекомендации
- Начинайте с пресета Авто и авто-бюджета; ручная настройка этапов нужна редко.
- Заданная стартовая точка считается первой оценкой прогона до разведки и отдельно добавляется кандидатом дожима. Удачная исходная конструкция не потеряется, даже если разведка её не нашла и даже если расчёт прервать в середине разведки: результат конвейера не бывает хуже старта. Лишней оценки это не стоит — точка попадает в кэш и позже берётся оттуда.
- Куда ушёл бюджет, видно на графике сходимости в виджете мониторинга: этапы разделены нейтральными полосами (разведка, затем дожим и каждый рестарт — своей полосой), а каждый рестарт вдобавок отмечен вертикальной линией с подписью «рестарт N» — полосы дают границы, линия даёт номер. Рестартами считаются дожимы со следующих кандидатов: разведка и первый, плановый дожим рестартами не считаются, поэтому первая линия стоит перед третьим этапом. В таблице шагов первый шаг рестарта помечен токеном «рестарт N», а номера рестарта и поколения видно во всплывающей подсказке любой строки; отдельной колонки с номером этапа в таблице нет, номер этапа хранится только в журнале прогона. Число рестартов печатается в итогах прогона строкой «Рестартов поиска: N». В журнал решателя поитерационные пометки не пишутся; там есть лишь строки «Глобальный этап» / «Локальный этап» блока старта с названием выбранного метода этапа.
- Если глобальный этап генерационный (ISRES, ESCH, Ковариационная адаптация), на его шагах работает и флажок «Популяция»: разброс поколений виден на этапе разведки, а на локальном дожиме его нет — у локальных методов популяции не бывает.
- Жёсткие ограничения конвейер соблюдает только локальным этапом. При пресете Auto и наличии целей с признаком «жёсткое ограничение» этапы назначаются автоматически (ISRES → COBYLA), ограничения и их допуск пробрасываются в под-задачу и соблюдаются как условия допустимости. При ручном пресете с локальным этапом BOBYQA или SBPLX эти методы ограничения не поддерживают, поэтому цели-ограничения свёртываются в целевую функцию взвешенным штрафом, а в журнале печатается предупреждение «Локальный этап … не поддерживает ограничения…». См. Цели и целевая функция.
- Глобальный этап проверяется на поддержку ограничений отдельно. Из методов, доступных этапу 1, ограничения поддерживает только ISRES, поэтому при ручном пресете с любым другим глобальным этапом разведка тратит свою долю бюджета, не видя ограничений: она ищет минимум целевой функции, в которую ограничения не входят. Ограничения при этом всё равно соблюдаются локальным этапом, но в журнале печатается предупреждение «Глобальный этап … не поддерживает ограничения и ведёт разведку без них…». Выход — пресет Авто либо ISRES в качестве этапа 1.
- Кандидаты дожима упорядочены по допустимости независимо от того,
видел ли ограничения глобальный этап. Нарушение измеряется в момент
расчёта точки, а не при отборе, поэтому конвейер знает его для каждой
посчитанной точки; список сортируется «сначала допустимые, затем по
величине нарушения, затем по F», и уже по этому порядку идёт прореживание
по полю
Мин. расстояние рестартов. Дожим начинается с допустимой точки, если разведка на неё наткнулась, — даже когда лучшая по F точка нарушает ограничения сильнее всех. У прогона без ограничений нарушение всюду нулевое, и порядок вырождается в прежний — по F. - Статус завершения различает три случая: «бюджет исчерпан», «сошёлся (достигнута точность)» — когда КАЖДЫЙ выполненный локальный спуск завершился по своей точности, — и «остановлен без улучшения», когда бюджет остался, но сходимость не установлена (спуск закончился по своему лимиту расчётов, список кандидатов был оставлен из-за выключенных рестартов либо ни один спуск не выполнялся). Нерастраченный остаток бюджета печатается отдельной строкой сводки.
- Хорошо работает с дискретными осями (переменные «с шагом» / «список»).