Влияние выбора области фитнес-функции на многокритериальную эволюционную оптимизацию

Я использую эволюционные алгоритмы, например. алгоритм NSGA-II для решения задач неограниченной оптимизации с несколькими целями.

Поскольку мои функции пригодности иногда имеют очень разные домены (например, f1(x) генерирует значения пригодности в пределах [0..1] и f2(x) > внутри [10000..10000000]) Мне интересно, влияет ли это на поведение выбранного алгоритма при поиске.

Влияет ли выбор домена фитнес-функции (например, объединение всех доменов в общий домен из [lb..ub]) на качество решения и скорость поиска хороших решений? Или общего ответа на этот вопрос нет?

К сожалению, ничего не нашел по этой теме. Любые подсказки приветствуются!


person Cord Kaldemeyer    schedule 13.07.2018    source источник


Ответы (2)


Ваш вопрос связан со стратегией выбора, реализованной в алгоритме. В случае оригинальной NSGA II выбор осуществляется с использованием сочетания парето-ранга и расстояния скученности. В то время как ранг Парето (т. е. идентификатор не доминируемого фронта точки) не меняется при масштабировании числовых значений на некоторую константу, расстояние скученности меняется.

Таким образом, ответ — да, если ваша вторая цель находится в диапазоне [10000 .. 10000000], ее вклад в расстояние скопления может съедать один из другой цели.

В алгоритмах типа NSGA II учитываются единицы измерения!

person Dario Izzo    schedule 15.07.2018
comment
Большое спасибо за ваше объяснение! - person Cord Kaldemeyer; 16.07.2018

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

Мой научный руководитель — Калянмой Деб, который предложил NSGA-II, и я самостоятельно реализовал алгоритм (доступен в нашей эволюционной многоцелевой среде оптимизации пиму). Поэтому я могу с уверенностью сказать, что нормализация должна быть включена в алгоритм. Если вас интересует реализация векторизованного расстояния скученности, не стесняйтесь взглянуть на pymoo/algorithms/nsga2.py в pymoo на GitHub.

person Julian    schedule 03.06.2020