Ответ 1
Ну, кажется, что существует определенная разница между программированием экспрессии генов (GEP) и декартовым генетическим программированием (CGP или тем, что я рассматриваю как классическое генетическое программирование), но разница может быть более раздутой, чем это действительно должно быть. Обратите внимание, что я никогда не использовал GEP, поэтому все мои комментарии основаны на моем опыте работы с CGP.
В CGP нет различия между генотипом и фенотипом, другими словами - если вы смотрите на "гены" CGP, вы также смотрите на их выражение. Здесь нет кодировки, т.е. Дерево выражений является самим геном.
В GEP генотип выражается в фенотип, поэтому, если вы смотрите на гены, вы не будете легко знать, что такое выражение будет выглядеть. "Изобретатель" GP, Cândida Ferreira, написал действительно хорошую бумагу, и есть некоторые другие ресурсы, которые пытаются дать более краткий обзор всей концепции.
Феррира говорит, что преимущества "очевидны", но я действительно ничего не вижу, что обязательно сделает GEP лучше, чем CGP. По-видимому, GEP является многогенным, что означает, что в выражении признака участвуют множественные гены (т.е. Дерево выражений). В любом случае фитнес рассчитан на выраженное дерево, поэтому не похоже, что GEP делает что-то, чтобы увеличить фитнес. То, что автор утверждает, заключается в том, что GEP увеличивает скорость достижения фитнеса (т.е. В меньшем количестве поколений), но, откровенно говоря, вы можете увидеть резкие изменения производительности от CGP, просто имея другой алгоритм выбора, другую структуру турнира, разделяющую население в племена, мигрирующие экземпляры между племенами, включая разнообразие в фитнес и т.д.Выбор:
- случайное
- рулетка колесо
- верхнего п
- возьмите половину
- и др.
Частота турниров:
- один раз за эпоху
- один раз для каждого экземпляра данных
- один раз за поколение.
Структура турнира:
- Возьмите 3, убейте 1 и замените его потомком двух других.
- Отсортируйте всех людей в турнире по фитнесу, убейте нижнюю половину и замените ее потомством верхней половины (где ниже хуже фитнес, а верхнее - лучше фитнес).
- Случайно выбирайте людей из турнира, чтобы спариваться и убивать лишних людей.
Tribes
Население можно разделить на племена, которые эволюционируют независимо друг от друга:
- Миграция - периодически, отдельные лица из племени перемещаются в другое племя.
- Племена логически разделены, так что они похожи на их собственные отдельные популяции, работающие в разных средах.
Разнообразие Фитнес
Включите разнообразие в фитнес, где вы подсчитываете, сколько людей имеют одинаковое значение для фитнеса (таким образом, вероятно, тот же фенотип), и вы наказываете их пригодность пропорционально: чем больше людей с одинаковым значением пригодности, тем больше штраф за эти люди. Таким образом, будут поощряться образцы с уникальными фенотипами, поэтому будет гораздо меньше застоя населения.
Это лишь некоторые из вещей, которые могут сильно повлиять на производительность CGP, и когда я говорю, что я имею в виду, что он в том же порядке или выше производительности Ферриеры. Поэтому, если Ферриера не слишком много переделывала эти идеи, она могла бы увидеть гораздо более медленную работу CGP... особенно если она ничего не сделала для борьбы с застоем. Поэтому я был бы осторожен при чтении статистики производительности GEP, потому что иногда люди не учитывают все доступные там "оптимизации".