Совместное использование фитнеса в многоцелевой оптимизации

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

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

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

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

Благодарность

n


person Noam Naveh    schedule 19.04.2016    source источник


Ответы (1)


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

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

E.g.

Общий класс эквивалентности

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

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

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

Дополнительные сведения см. в статье Многокритериальная оптимизация с использованием Нишевый генетический алгоритм Парето Джеффри Хорна и Николаса Нафплиотиса (он также содержит некоторые детали реализации).

person manlio    schedule 20.04.2016