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

Пример 10. Мультистарт (MLSL): несколько решений

  • Файл: 10_Multistart_MLSL.gma (Каталог: Sources/Files/Examples/Optimization/)
  • Модель: G5
  • Переменных: 4
  • Бюджет: 200

Связанные страницы:

Ниже показана геометрия модели: Геометрия модели

Задача​

Двухшлейфовый согласователь: линия 50 Ом с двумя разомкнутыми шунтирующими шлейфами согласует нагрузку 100 Ом на 2 ГГц.

Отсчёт размеров: оба порта на кромках платы, длина главной линии всегда 100 мм. dL - от порта P2 до оси шлейфа B, s - от оси шлейфа B до оси шлейфа A, lA и lB - от оси главной линии до разомкнутого конца шлейфа. Участок от шлейфа A до порта P1 - свободный отрезок 50 Ом; он согласован и на КСВН не влияет, меняя только фазу.

Нагрузка 100 Ом задана опорным импедансом сосредоточенного порта P2; физического отрезка линии 100 Ом в модели нет.

Развёртка 1,7–2,3 ГГц, быстрый метод, шаг 0,001 ГГц; в полосу цели попадает 201 выборка.

Переменные​

ОбозначениеПараметрТипСтартДиапазон
lAдлина шлейфа A, ммнепрерывная348–42
lBдлина шлейфа B, ммнепрерывная104–38
sмежду осями шлейфов, ммнепрерывная1610–44
dLот порта P2 до шлейфа B, ммнепрерывная103–33

На старте наихудший КСВН в полосе цели равен 5,00 на 1,900 ГГц - согласование отсутствует полностью.

У задачи несколько решений: шлейф длиной l и шлейф длиной l + λg/2 эквивалентны по входной проводимости, а диапазоны заведомо перекрывают половину длины волны (λg = 82,15 мм при 2 ГГц).

Почему старт именно такой. Множество решений у этой задачи большое: на сетке 1 мм цели удовлетворяет около 21,5 тысячи наборов, то есть примерно 1,6 % объёма диапазонов. Поэтому стартовую точку недостаточно выбрать «на глаз расстроенной» - её надо выбрать удалённой от множества решений. У старта 34 / 10 / 16 / 10 расстояние по сумме координат до ближайшего из найденных решений равно 25 мм, до самого далёкого - 48 мм. Это на порядок больше поправки, которую вносят T-сочленения и краевая ёмкость, поэтому старт заведомо не окажется случайно согласованным.

Цели​

№ВеличинаУсловиеЗначениеЕдиницыПолосаВес
1КСВН, порт 1Минимизировать--1,90–2,10 ГГц1

Подпись цели - min VSWR [1] Сосредоточенный порт(1) [1.9; 2.1] ГГц. Агрегация по полосе - Сглаженный максимум.

Почему цель экстремальная, а не пороговая - это принципиально для этого примера. С пороговой целью прогон останавливается в тот момент, когда порог выполнен во всей полосе: это штатный критерий «достигнута цель», он старше и бюджета, и порога стагнации. А Мультистарт по устройству показывает набор решений последовательно - второй спуск начинается только после первого. Значит с пороговой целью вы увидите ровно одно решение, то, которое нашлось первым, и демонстрация не состоится.

Усугубляет то, что попасть в решение легко: гипотетической пороговой цели «КСВН ≤ 1,5» удовлетворяет 1,6 % объёма диапазонов. На контрольном прогоне это проверяется по журналу задним числом: уровень 1,5 по наихудшей выборке был достигнут на четвёртом расчёте, уровень 1,3 - на восьмом. То есть пороговая цель «КСВН ≤ 1,5» закрыла бы прогон на четвёртом расчёте, ещё до конца первого спуска.

Обойти это подбором порога нельзя: даже при «КСВН ≤ 1,2», где решения занимают 0,036 % объёма, первый же успешный спуск завершит прогон. И перезапустить с другим зерном тоже нельзя: у Мультистарта поля зерна нет, точки старта берутся из детерминированной последовательности Соболя, поэтому повторный прогон повторит прежний.

Единственный способ увидеть набор решений - снять порог.

Настройки метода​

ПолеЗначение
МетодМультистарт (MLSL)
Бюджет расчётов200
Локальный методДоверительная область (по умолчанию)
Бюджет одного спуска30
Начальный шаг0,150 (по умолчанию, передаётся локальному методу)
Точность по параметрам0,0010 (по умолчанию)
Останов без улучшения60 - задать обязательно

Локальный метод - второе по важности поле после бюджетов: Мультистарт это оболочка, и дожимает каждый бассейн именно он. Доступны Доверительная область и Симплекс; Симплекс берут при агрегации «худшая точка» или явной негладкости. У этой модели агрегация «Сглаженный максимум», поэтому правильное значение - Доверительная область.

Здесь агрегацию выбирает не постановка, а локальный метод, и это важное отличие от примера 9. Цель «Минимизировать КСВН» в паре с «Худшей точкой» дала бы честный минимакс, но негладкую функцию, на которой Доверительная область ломается, - пришлось бы брать Симплекс и терять в скорости дожима. Здесь демонстрируется набор решений, а не выравнивание пульсаций, поэтому взят сглаженный максимум. Разница видна прямо в панели «Цели»: на лучшей точке A_g = 0,216 при M_g = 0,232, то есть агрегат лежит на 7 % ниже настоящей наихудшей выборки.

Поля зерна ГСЧ у Мультистарта нет: точки старта берутся из детерминированной последовательности, поэтому прогон воспроизводим без всякой настройки.

Соотношение общего и локального бюджета - главная настройка метода. При 200 и 30 помещается шесть-семь спусков; контрольный прогон уместил пять. При локальном бюджете 60 будет три спуска - глубже, но обзор хуже; при 20 будет десять - обзор шире, но каждый спуск не дойдёт до дна.

Порог стагнации здесь обязателен. Экстремальная цель отменяет останов по достижению, а своей сходимости у Мультистарта нет: точность по параметрам ограничивает каждый спуск, а не серию. Сошедшийся спуск лишь заставляет начать следующий, возвращая остаток своего бюджета в общий. Поэтому без порога прогон гарантированно израсходует весь бюджет.

Пояснения​

Заданная пользователем стартовая точка участвует как первый старт, остальные берутся из квазислучайной последовательности Соболя, покрывающей диапазоны равномернее случайной выборки. Кластер-фильтр не даёт запускать повторные спуски в уже исследованный бассейн притяжения.

Каждый локальный спуск отмечен в мониторе как рестарт: вертикальная штрихпунктирная линия с подписью «рестарт N» перед его первым шагом, токен «рестарт N» в колонке статуса этого шага и номер спуска во всплывающей подсказке любой строки спуска. До первого спуска номера нет - там идёт фаза выборки кандидатов. Флажок «Популяция» на этом прогоне неактивен: поколений у метода нет, и полос этапов не будет - этап у прогона один.

Отдельный статус «Расчёт остановлен вложенным методом» существует потому, что отказ очередного локального спуска завершил бы весь прогон. На практике он не появляется: спуски заканчиваются штатно - по своей точности либо по своему бюджету. Если он всё же появится, а результат не улучшится, задача скорее всего уже в оптимуме либо численный шум сравним с разницей между кандидатами.

Что должно получиться​

ПоказательЗначение
Расчётов160 из 200; 40 не израсходованы
Статуснет улучшения за отведённое число шагов
Лучший шаг100, A_g = 0,216021
Отказов0
РезультатlA = 35,64 · lB = 29,88 · s = 29,14 · dL = 12,51 мм
Наихудшая выборкаM_g = 0,232378 φ на 2,1 ГГц, КСВН 1,141

Наихудший КСВН в полосе падает с 5,00 до 1,141.

Пять спусков, пять разных решений. Это и есть то, ради чего берут Мультистарт:

Расчёты спускаlA, ммlB, ммs, ммdL, ммНаихудший КСВН
9–3637,746,0422,2726,641,233
39–6633,714,9411,9533,001,425
77–10035,6429,8829,1412,511,129
107–13541,058,9819,9726,561,170
145–1608,0012,1818,3227,601,248

Разброс по lB - от 4,9 до 29,9 мм, по dL - от 12,5 до 33,0. Это далеко разнесённые конструкции, а не окрестность одного решения, и любую из них можно записать в модель кнопкой Применить к модели на нужном шаге. Два спуска упёрлись в границу диапазона (lA = 8,00 и dL = 33,00): у них решение лежит за границей, и это тоже результат - диапазоны заданы уже, чем множество решений.

Лучшая по целевой функции точка и точка с наименьшим КСВН - разные. Прогон записывает в модель шаг 100 (A_g = 0,2160, наихудший КСВН 1,141), тогда как наименьший наихудший КСВН - 1,129 - был на соседнем шаге того же спуска. Геометрии отличаются на сотые доли миллиметра, а порядок по двум величинам противоположный. Так и должно быть: сглаженный максимум с p = 8 - это ландшафт поиска, а M_g - наихудшая выборка, и на близких точках они расходятся. Отбор лучшей точки идёт по F; если нужен именно минимакс, ставьте агрегацию «худшая точка» и локальным методом Симплекс.

Прогон закончился порогом стагнации Последнее улучшение - на 100-м расчёте, останов - на 160-м, ровно через 60 расчётов без улучшения. Без порога эти 40 расчётов ушли бы на спуски в уже просмотренные бассейны.

Как читается график сходимости. Границы спусков размечены линиями рестартов, но структура прогона видна и без них: длинная серия медленно убывающих точек и есть спуск, а короткий всплеск высоких значений перед ней - фаза выборки, в которой метод оценивает точки-кандидаты и решает, стоит ли начинать в этом бассейне спуск. Ось F линейная, а не логарифмическая: вклад экстремальной цели знаковый.

Оценка на идеальных линиях оптимистична Расчёт на идеальных линиях даёт для этой задачи предел 1,06 и четыре решения; прогон воспроизвёл два из них со сдвигом в 1…3 мм по координате и с уровнем хуже на 0,06…0,07 по КСВН. Разница не в прогоне: идеальная модель не знает ни T-сочленения шлейфа с линией, ни краевой ёмкости разомкнутого конца, а они удлиняют шлейф электрически. Два других решения прогон не посетил - спусков было пять, а бассейнов у задачи больше. Сверяйте результат по характеристике, а не по этим числам.

Если все спуски пришли в одну точку, проверьте, что диапазоны действительно перекрывают половину длины волны и что локальный бюджет не поглощает весь общий.

Когда этот метод - правильный выбор​

  • Возможно несколько решений, и нужен именно их набор, а не одно значение.
  • Размерность 3–10.
  • Локальный метод на этой задаче работает: MLSL - это оболочка над локальным спуском, и если локальный метод плох, мультистарт не поможет.
  • Нужно понять структуру задачи, а не только получить число.

Когда его брать не стоит​

  • Решение одно. Все спуски придут в одну точку, и мультистарт окажется прямой тратой бюджета: один локальный прогон дешевле в разы.
  • Дискретные оси - локальный спуск наследует все ограничения Доверительной области.
  • Размерность больше 10: каждый спуск дорог, а нужно несколько. Лучше один CMA-ES.
  • Малый бюджет: при 80 расчётах получится один-два спуска, то есть просто локальный метод с накладными расходами.
  • Есть жёсткие ограничения.

Чем заменить​

СитуацияЗамена
решение оказалось одноДоверительная область или Симплекс
размерность больше 10Ковариационная адаптация, пример 9
появились дискретные осиСистематический глобальный или Эволюционная стратегия
появились жёсткие ограниченияАдаптивная эволюция (ISRES), пример 6
нужен один хороший ответ, а не набор решенийГлобальный → локальный - дешевле

Что попробовать дополнительно​

Сравнение с локальным методом. Запустите на этой модели Доверительную область с бюджетом 80 из того же старта. Метод спустится в ближайший к старту бассейн и остановится по своей точности по параметрам - останова «достигнута цель» здесь не бывает, цель экстремальная. Результат будет корректным, но одним: из пяти решений вы увидите то, что ближе к старту, и не узнаете ни про решение с наименьшим КСВН, ни про то, что два бассейна упираются в границы диапазонов.

Соотношение бюджетов. Поставьте локальный бюджет 20, затем 60. В первом случае спусков будет вдвое больше, чем в контрольном прогоне, и каждый мельче; во втором на весь бюджет их поместится три. Сравнивайте не рекорд, а число разных решений: у этого метода в нём и смысл.

Пороговая цель вместо экстремальной. Замените условие на «Меньше 1,5» и запустите. Прогон закончится на четвёртом расчёте, ещё до конца первого спуска. Полезно проделать один раз, чтобы увидеть, как останов по достижению цели убивает демонстрацию набора решений.

Выключенный порог стагнации. Обнулите поле и запустите. Прогон выберет все 200 расчётов, а рекорд останется тем же, что на сотом: остаток уйдёт на спуски в уже просмотренные бассейны.