Я пишу систему генетического программирования (GP) (в C, но это небольшая деталь). Я читал много литературы (Koza, Poli, Langdon, Banzhaf, Brameier и др.), Но есть некоторые детали реализации, которые я никогда не видел. Например:
Я использую устойчивое состояние, а не подход поколений, прежде всего для использования всей памяти компьютера, а не резервной половины для промежуточного населения.
Q1. В GP, в отличие от GA, когда вы выполняете кроссовер, вы выбираете двух родителей, но вы создаете одного ребенка или два, или это ваш свободный выбор?
Q2. В устойчивом состоянии GP, в отличие от системы поколений, какие члены населения делают дети, созданные кроссовером, заменяют? Это то, что я не видел. Это два родителя, или это два других, случайно выбранных члена? Я могу понять, если это последнее, и что вы можете использовать отрицательный выбор турнира, чтобы выбирать членов для замены, но разве это не создало бы преждевременную конвергенцию? (После события кроссовера население содержит двух родительских родителей плюс двух детей этих родителей, а два других случайных члена удаляются. Элитизм присущ.)
Q3. Есть ли веб-форум или список рассылки, посвященный GP? Как ни странно, я его не нашел. Yahoo GP group используется почти исключительно для анонсов, форум Poli/Langdon Field Guide почти бесшумный, и обсуждения в GP на общих/игровых сайтах программирования, таких как gamedev.net, очень просты.
Спасибо за любую помощь, которую вы можете предоставить!