Воткрытой развязанной основеEvoX полный эволюционный процесс разбивается на два взаимозаменяемых «кирпичика»:модуль алгоритмаотвечает на вопрос «как искать», амодуль задачи— на вопрос «что оценивать и как среда даёт обратную связь». Оба модуля соединяются через чёткий набор интерфейсных контрактов, образуя переиспользуемый, заменяемый и переносимый эволюционный процесс.
Модуль алгоритма: инкапсулирует «как искать»
- Генерация кандидатных решений и обновление популяции: инициализация, мутация, скрещивание, отбор, элитизм и другие эволюционные механизмы единообразно реализуются модулем алгоритма.
- Управление поиском: число итераций, размер популяции, перезапуск и критерии сходимости, настройка параметров операторов — всё это решения на стороне алгоритма.
- Модуль алгоритма опирается лишь на абстрактную предпосылку «кандидатные решения будут оценены» и не интересуется физическим смыслом и конкретной формой целевой функции.
Модуль задачи: определяет «что оценивать и как среда даёт обратную связь»
- Преобразование кандидатных решений в сравнимую обратную связь: значения цели, приспособленность, величина нарушения ограничений или результат одного взаимодействия со средой.
- Объявление границ задачи и ограничений: размерность переменных, диапазоны значений, правила допустимой области — чтобы алгоритм знал, где можно генерировать кандидатные решения.
- Согласованная оценка одной партии кандидатных решений позволяет сравнивать разные особи, разные поколения и разные алгоритмы.
Интерфейсный контракт: партия кандидатных решений ⇄ результаты оценки
Модуль алгоритма передаёт модулю задачипартию кандидатных решений; модуль задачи возвращаетструктурированные результаты оценки(вектор целей, величину нарушения ограничений и необязательную дополнительную диагностическую информацию); на их основе модуль алгоритма обновляет популяцию и переходит к следующему поколению. Этот цикл «отправка — возврат» составляет одно поколение эволюции.
Преимущества развязки
- Независимое расширение: добавление или замена алгоритма не затрагивает определение задачи; изменение или добавление задачи также не требует переписывать модуль алгоритма.
- Комбинируемость: один и тот же модуль задачи может подключаться к разным эволюционным алгоритмам, а один и тот же модуль алгоритма — переключаться на разные модули задач.
- Переносимость: при стабильном интерфейсном контракте алгоритм и задача могут переиспользоваться, заменяться и переноситься между задачами.
Почему это особенно важно в контексте данного урока: многокритериальные компромиссы и дорогостоящая обратная связь
В этом уроке рассматриваются инженерные задачи из реального физического мира — например,проектирование сверхкритического крылового профиляв COMAC. Такие задачи обычно одновременно обладают тремя особенностями: несколько взаимно противоречивых целей (например, рост подъёмной силы часто ведёт к увеличению сопротивления и снижению устойчивости), взаимно вложенные ограничения (например, критический коэффициент подъёмной силы при бафтинге, максимальное напряжение не должно превышать допустимое значение для материала), а такжедорогостоящая и разреженная обратная связь(одна оценка высокоточной симуляции обходится очень дорого). Разделение на модули и создано именно для того, чтобы справляться с этими тремя аспектами.
На стороне модуля задачи многокритериальность и ограничения единообразно сводятся к сравнимому результату оценки: вектор целей описывает отдельные показатели, величина нарушения ограничений — степень выхода за границы, а при необходимости используютсясуррогатные моделидля дешёвой приближённой оценки, что ослабляет узкое место обратной связи, создаваемое высокоточной симуляцией. На стороне модуля алгоритма поиск больше не стремится к преждевременной сходимости к единственному «оптимальному ответу», а поддерживаетнабор разнообразных кандидатных решений, позволяя экспертам оптимизировать предпочтения и делать компромиссный выбор между подъёмной силой, сопротивлением и запасом безопасности.
Таким образом, контракт «партия кандидатных решений ⇄ результаты оценки» должен нести не только единственную скалярную приспособленность, но и вектор целей с величиной нарушения ограничений: многокритериальные компромиссы требуют от алгоритма недоминируемых сравнений, а обработка ограничений — различения допустимых и недопустимых решений. Если контракт неполон, информация о многокритериальности и ограничениях навсегда теряется на интерфейсе, и вместе с ней исчезают возможности переиспользования и переноса, которые даёт развязка.
