Пример 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, мм | непрерывная | 34 | 8–42 |
lB | длина шлейфа B, мм | непрерывная | 10 | 4–38 |
s | между осями шлейфов, мм | непрерывная | 16 | 10–44 |
dL | от порта P2 до шлейфа B, мм | непрерывная | 10 | 3–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–36 | 37,74 | 6,04 | 22,27 | 26,64 | 1,233 |
| 39–66 | 33,71 | 4,94 | 11,95 | 33,00 | 1,425 |
| 77–100 | 35,64 | 29,88 | 29,14 | 12,51 | 1,129 |
| 107–135 | 41,05 | 8,98 | 19,97 | 26,56 | 1,170 |
| 145–160 | 8,00 | 12,18 | 18,32 | 27,60 | 1,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 расчётов, а рекорд останется тем же, что на сотом: остаток уйдёт на спуски в уже просмотренные бассейны.