Что ж, кажется, что есть некоторая разница между программированием экспрессии генов (GEP) и декартовым генетическим программированием (CGP или то, что я рассматриваю как классическое генетическое программирование), но эта разница может быть больше раздута, чем на самом деле должно быть. Обратите внимание, что я никогда не использовал GEP, поэтому все мои комментарии основаны на моем опыте работы с CGP.
В CGP нет различия между генотипом и фенотипом, другими словами, если вы смотрите на «гены» CGP, вы также смотрите на их экспрессию. Здесь нет кодировки, т.е. деревом экспрессии является сам ген.
В GEP генотип выражается в фенотипе, поэтому, если вы посмотрите на гены, вы не всегда понятно, как будет выглядеть выражение. «Изобретатель» GP Кандида Феррейра написала действительно хорошую статью и есть несколько других ресурсов, которые пытаются дать краткий обзор всей концепции.
Ферриера говорит, что преимущества «очевидны», но я действительно не вижу ничего, что обязательно делало бы GEP лучше, чем CGP. По-видимому, GEP является мультигенным, что означает, что несколько генов участвуют в выражении признака (т. Е. Дерево экспрессии). В любом случае пригодность рассчитывается на выраженном дереве, поэтому не похоже, что GEP делает что-либо для повышения пригодности. Автор утверждает, что GEP увеличивает скорость достижения пригодности (то есть за меньшее количество поколений), но, честно говоря, вы можете увидеть резкие сдвиги в производительности по сравнению с CGP просто за счет другого алгоритма отбора, другой структуры турнира, разделения популяция в племена, миграция особей между племенами, включение разнообразия в приспособленность и т. д.
Выбор:
- случайный
- колесо рулетки
- топ-n
- взять половину
- и Т. Д.
Частота турниров:
- один раз в эпоху
- один раз для каждого экземпляра данных
- один раз в поколение.
Структура турнира:
- Возьмите 3, убейте 1 и замените его потомком двух других.
- Отсортируйте всех участников турнира по пригодности, убейте нижнюю половину и замените ее потомством верхней половины (где более низкая приспособленность хуже, а верхняя - лучше).
- Случайным образом выберите особей из турнира, чтобы спарить и убить лишних особей.
Племя
Население можно разделить на племена, которые развиваются независимо друг от друга:
- Миграция - периодически отдельные лица из племени перемещаются в другое племя.
- Племена логически разделены, так что они похожи на свои отдельные популяции, живущие в разных средах.
Разнообразие пригодности
Включите разнообразие в приспособленность, подсчитывая, сколько индивидуумов имеют одинаковое значение приспособленности (таким образом, они, вероятно, имеют одинаковый фенотип), и наказываете их приспособленность пропорциональным значением: чем больше людей с одинаковым значением пригодности, тем больше штраф для этих людей. Таким образом, будут поощряться экземпляры с уникальными фенотипами, поэтому стагнация популяции будет намного меньше.
Это лишь некоторые из факторов, которые могут сильно повлиять на производительность CGP, и когда я говорю «сильно», я имею в виду, что они находятся в том же порядке или выше, чем производительность Ferriera. Так что, если бы Ферриера не слишком сильно возилась с этими идеями, она могла бы увидеть гораздо более медленную работу CGP... особенно если бы она не предпринимала ничего для борьбы со стагнацией. Так что я был бы осторожен при чтении статистики производительности GEP, потому что иногда люди не учитывают все доступные «оптимизации».
person
Kiril
schedule
14.08.2010