Фитнес-обмен в многоцелевой оптимизации

Я пишу генетический алгоритм, который использует совместное использование фитнеса при выборе турнира. во всей соответствующей литературе, которую я нашел ( например, Сарени), упоминается, что собственную пригодность решения (Fi) следует разделить на сумму его нишевых расстояний (Mi).

Чего я не понимаю, так как мы оптимизируем несколько целей, то каждое решение имеет более одной пригодности. каков тогда его "фитнес" Fi? я должен видеть это как умножение всей его пригодности?

например, в коде я пишу (обработка):

float sharedFitnessA = (a.f2*a.f3) / nicheCountA;

Спасибо

N

1 ответ

Для многоцелевой оптимизации цель совместного использования пригодности (для распределения популяции по ряду различных пиков в пространстве поиска, причем каждый пик получает долю популяции пропорционально высоте этого пика) часто преследуется по-разному.

Когда два кандидата либо оба доминируют, либо оба не доминируют (так что, вероятно, они находятся в одном классе эквивалентности), подсчитывают нишу Mi используется для выбора наиболее подходящего кандидата.

Например

Совместное использование класса эквивалентности

(здесь максимизация по оси X и минимизация по оси Y)

Кандидаты не доминируют в наборе сравнения. С точки зрения Парето ни один из них не является предпочтительным. С помощью Mi мы выбираем Candidate2 (наименьшее количество ниш и, следовательно, наименьшее количество людей в своей нише).

Это называется разделением классов эквивалентности и не основано на ухудшении физической формы (т.е. Fi / Mi), но в любом случае сохраняет разнообразие вдоль фронта.

Для получения дополнительной информации взгляните на Многоцелевую Оптимизацию, Используя Генетический Алгоритм Niched Pareto Джеффри Хорна и Николаса Нафплиотиса (он также содержит некоторые детали реализации).

Другие вопросы по тегам