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