Реализация перекрестного соединения в генетическом [закрытом] программировании

13
задан manlio 8 May 2015 в 16:01
поделиться

5 ответов

Во-первых, расслабиться.

В GP нет «правильных» методов. ГП - это больше искусства, чем наука. Попробуйте много схем и выберите те, которые работают лучше всего.

Q1: 1, 2 или много. Твой выбор.

Q2: Заменить, 1, 2, все. Или попробуйте элитарность.

Q3: Вы, вероятно, не найдете форумы, обсуждая эти вопросы B / C, нет прав / наилучших ответов. Извини.

PS. В моих исследованиях кроссовер никогда не выступал хорошо ...

8
ответ дан 2 December 2019 в 01:10
поделиться

Это классическая проблема производителя/потребителя. Это можно решить с помощью переименования файлов, которое является атомарным в системах POSIX.

-121--1462283-

Это по проекту. Следуя совету @ Wayne Conrad, я добавил переключатель -d и смог наблюдать, что первая попытка не удалась, потому что требовалась NTLM, а вторая попытка провалилась, потому что первая попытка NTLM была только на уровне 1, где требовался ответ на вызов NTLM уровня 3. WGET, наконец, обеспечивает необходимую аутентификацию с третьей попытки.

WGET получает файл cookie, чтобы предотвратить повторную аутентификацию в течение сеанса, что предотвратит это, если соединение не будет прервано между файлами. Мне нужно будет передать WGET список файлов, чтобы это произошло, однако я не могу, потому что я не знаю имена файлов заранее.

-121--4859861-

Если вы можете прочитать Python, вы можете взглянуть на Pyevolve . Я в основном участвую в нем на стороне GA, но у него есть поддержка и для GP. Может быть, вы можете получить намек там.

1
ответ дан 2 December 2019 в 01:10
поделиться
  1. Как говорит Рэй, в основном это зависит от тебя, но обычно в стационарной установке ты создаешь только одного отпрыска.

  2. Опять же, у тебя есть варианты. Я бы не заменил родителей. Если бы они были выбраны в качестве родителей, исходя из их пригодности, вы могли бы устранить некоторых из наиболее пригодных членов населения. Самое простое - это случайный выбор человека, которого нужно заменить. В качестве альтернативы, вы можете заменить наименее подходящего человека, но это может привести к преждевременной конвергенции. Другой вариант - использовать ту же стратегию отбора, которую вы используете для выбора родителей, но использовать обратный фитнес, чтобы отдавать предпочтение менее приспособленным индивидуумам.

  3. Вы можете попробовать comp.ai.genetic на USENET (и Google Groups ).

0
ответ дан 2 December 2019 в 01:10
поделиться

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

Они в первую очередь обсуждают нейроэволюцию алгоритма топологий (или аккуратных), которые представляют собой генетический алгоритм, используемый для развития нейронных сетей. Но такие темы, как элитарность и кроссоверические стратегии, довольно общее и могут применяться к алгоритмам GA и GP.

В противном случае, как сказал Дан и Рэй, многие из этих решений сделаны после экспериментов со своим конкретным программным обеспечением и доменом. Попробуйте применить свой алгоритм к разным проблемам и обратить внимание на то, как он ведет себя - через некоторое время вы, вероятно, разработаете интуицию для того, что работает и что нет.

0
ответ дан 2 December 2019 в 01:10
поделиться

Q1 - ваш выбор, но одинокий ребенок, вероятно, будет более распространенным. Каждый раз, когда вы делаете лотерейный выбор родителей, вы применяете давление выбора, которое вы хотите.

Q2: отрицательный отбор турнира является именно правильный подход. Да, потеря с низким содержанием фитнеса населения первоначально вызывает быструю конвергенцию, но после того, как ваше население попадет в труднодоступную часть пространства решения, он не будет таким же, как вытесняется, которые теряют турнир / лотерея. Что вы делают , должны остерегаться стагнации генного бассейна; Я предлагаю контролировать энтропию генома для отслеживания его неоднородности. «Элитарность присуща - ну, да, это точка! ;-)

Q3: comp.ai.genetic - это, вероятно, ваша лучшая ставка. Иногда тема поднята в развитие игры FORA, как на Гамасутра.

P.S. Генетика Программирование в C?!? Как вы уделяете жизнеспособность потомства? Делая генетическое программирование на немоконическом языке - реальная задача.

1
ответ дан 2 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: