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

Пример 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 расчётов, а рекорд останется тем же, что на сотом: остаток уйдёт на спуски в уже просмотренные бассейны.