Перейти к основному содержимому

Управляемый случайный поиск (CRS2)

КлассВоспроизводимостьСтартовая точкаСвёртка по полосе
глобальныйпри фиксированном зернеиспользуется (первая точка)любая

Ниже приведена страница настроек метода:

Назначение

Стохастический глобальный поиск с популяцией точек: начальная популяция — текущая конструкция плюс случайные точки — постепенно «стягивается» к перспективным областям через симплекс-преобразования. Основной глобальный метод при n > 8 и при сильно изрезанной целевой функции, где систематическое деление пространства дорого.

Алгоритм

Управляемый случайный поиск с популяцией (Controlled Random Search). Начальная популяция из N точек — текущая конструкция плюс случайные точки в диапазонах. Далее на каждой итерации из популяции выбираются случайные n+1 точек, одна из которых — текущая лучшая, и строится проба отражением

xt=2xˉxn+1,xˉ=1ni=1nxix_t = 2 \bar{x} - x_{n+1}, \qquad \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i

где x_t — проба, x_{n+1} — последняя из выбранных точек, а — центр остальных. Если проба попала в диапазоны и оказалась лучше худшей точки популяции, она эту худшую заменяет, иначе отбрасывается. С некоторой вероятностью вместо отражения строится «локальная мутация» — проба в окрестности лучшей точки; это и добавляет к глобальной разведке дожим.

Отсюда устройство прогона: популяция не сменяется целиком, за итерацию заменяется не более одной точки, а число расчётов на попытку переменное — поэтому поколений у метода нет (см. «Что видно в мониторе»). Масштаб шагов метод не настраивает, он задаётся самой популяцией: по мере её стягивания к перспективной области отражения становятся короче. Собственный критерий сходимости — величина этого стягивания (поле Точность).

Параметры

ПараметрПоле в интерфейсеПо умолчаниюДиапазонНа что влияет
Бюджет расчётовБюджет расчетов (0 = авто)0 = авто≥ размера популяциипредел числа расчётов; первые «размер популяции» расчётов — заполнение популяции (первый из них — текущая конструкция)
Размер популяцииРазмер популяции (0 = авто)0 = авто: 10·(n+1)≥ n+2больше — шире разведка и устойчивость к локальным минимумам, но дороже старт; при дорогих расчётах допустимо снижать до 5·(n+1)
Зерно ГСЧЗерно ГСЧ10 — случайноефиксированное значение делает прогон воспроизводимым; 0 — каждый запуск даёт новую траекторию (полезно для серии независимых попыток)
Останов без улучшенияОстанов без улучшения (0 = выкл)0 = выкл0–100000остановиться при стагнации популяции
Точность по параметрам (доля диапазона)Точность0,00100–1останов, когда очередная улучшающая точка отличается от прежней лучшей меньше чем на этот допуск по каждой оси. Это собственный критерий сходимости CRS2; 0 — выключить и работать до бюджета. Значение по умолчанию совпадает с тем, что метод использовал до вывода поля в интерфейс, поэтому старые проекты считаются как прежде

Что видно в мониторе

Популяция у метода есть, а поколений нет: CRS2 не сменяет популяцию целиком, а заменяет в ней по одной точке за итерацию, тратя на каждую попытку переменное число расчётов. Границу «поколения» у такого перебора провести нечем, поэтому флажок «Популяция» в мониторе на прогоне CRS2 неактивен. Рестартов у метода тоже нет.

Рекомендации

  • Найденную точку дожимайте локальным методом (конвейер делает это автоматически и выбирает CRS2 первым этапом при 9 ≤ n ≤ 16; выше — ISRES).
  • Серия коротких запусков с зерном 0 иногда информативнее одного длинного: разброс результатов показывает мультимодальность задачи.
  • Хорошо работает с дискретными осями (переменные «с шагом» / «список»).