Применение дарвиновской эволюции в программировании - PullRequest
4 голосов
/ 07 октября 2010

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

К сожалению, я не могу сделать так, чтобы объект звучал почти так же интересно, как звучит вarticle, но я не могу найти статью.

Поскольку это звучит как самая крутая вещь для меня, мне было интересно, какие мутации могут быть внутри программы

Ответы [ 5 ]

4 голосов
/ 07 октября 2010

Да. Это называется Генетическое программирование , где мастер-программа сама пишет программы. И программы, которые он пишет, могут развиваться по определенному критерию.

например. 8 королева может быть решена GP.

2 голосов
/ 07 октября 2010

Я думаю, вы имеете в виду Генетические алгоритмы . Я хочу работать над этой темой для моей диссертации. Я не могу перестать читать об этом: -)

1 голос
/ 07 октября 2010

Нашли статью / статью - это то, что вы имеете в виду? Также найдено этот PDF . Довольно интересная тема

Это звучит так, как будто вы можете использовать самоизменяющийся код, который воспроизводит саму программу на основе оптимизаций самоконтроля. В настоящее время это будет указывать на программы с устным переводом.

0 голосов
/ 28 сентября 2014

Как уже говорилось ранее, это называется Генетическое программирование (GP).

Интересно то, что GP - это систематический, независимый от домена метод получения компьютеров для автоматического решения проблем, начиная свысокоуровневое изложение того, что необходимо сделать.

Используя идеи естественной эволюции, ГП начинает с популяции случайных компьютерных программ и постепенно совершенствует их посредством процессов мутации и кроссовера (рекомбинации), пока не появятся решения.

Все это без необходимости заранее знать или указывать форму или структуру решений.

ГП произвела множество конкурентоспособных для человека результатов и приложений , включая новые научные открытия и патентоспособные изобретения (см. Также Каковы хорошие примеры генетических алгоритмов / решений для генетического программирования?).

Мне было интересно, какие мутации могут быть внутри программы

Существует много генетических операторов (не только мутаций) и много реализаций.Фундаментальное свойство, которое они должны иметь, это замыкание (они должны поддерживать структурную целостность генетической программы).

В общем случае мутация заменяет символ программы совместимым терминалом / функциейвыбирается из группы доступных символов.Оператор кроссовера смешивает информацию двух или более программ.

Вероятно, лучшее бесплатное введение в предмет - Полевое руководство по генетическому программированию

Вот несколько полезных ссылок:

0 голосов
/ 07 октября 2010

Я прочитал статью о Ужасе кодирования о чем-то подобном на днях: Иди так, действительно быстро .По сути, идея, которую я получил, заключалась в том, что программное обеспечение должно постоянно совершенствоваться, что означает постоянное распространение новых версий / выпусков.Похоже, что это соответствует идее эволюции в том, что ваше программное обеспечение постоянно улучшается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...