Лекция
Сразу хочу сказать, что здесь никакой воды про генетическое программирование , и только нужная информация. Для того чтобы лучше понимать что такое генетическое программирование , настоятельно рекомендую прочитать все из категории Эволюционные алгоритмы.
В искусственном интеллекте генетическое программирование (ГП) — автоматическое создание или изменение программ с помощью генетических алгоритмов. С помощью этой методологии «выращиваются» программы, все лучше и лучше (в соответствии с определенной функцией приспособленности для хромосом) решающие поставленную вычислительную задачу.
Этот раздел не завершен.
Вы поможете проекту, исправив и дополнив его.
|
Выбор способа кодирования программы в генетическом алгоритме — один из основных вопросов генетического программирования. Об этом говорит сайт https://intellect.icu . Программа должна быть закодирована в таком виде, чтобы легко было автоматически вносить случайные изменения (оператор мутации) и объединять два алгоритма в один (оператор скрещивания).
Способы кодирования можно разделить на два класса:
Этот раздел не завершен.
Вы поможете проекту, исправив и дополнив его.
|
В древовидном кодировании каждый узел дерева содержит функцию, а каждый лист — операнд. Выражение, представленное в виде дерева, может быть легко рекурсивно посчитано. Традиционное ГП легче использовать для выращивания программ, написанных на языках, естественным образом воплощающих древовидную структуру: Lisp, Haskell, F# и других функциональных языках программирования.
Недревовидные представления программ также были предложены и успешно реализованы, например, линейное генетическое программирование, подходящее для традиционных императивных языков.
В древовидном представлении оператор скрещивания реализуется обменом между двумя деревьями какими-либо узлами вместе с их потомками (поддеревьями).
Пример:
individual.Children[randomChildIndex] = otherIndividual.Children[randomChildIndex];
В отличие от оператора скрещивания, оператор мутации затрагивает только одну хромосому. В древовидном представлении он может быть реализован изменением информации в узле или добавлением / удалением узла или целого поддерева. При этом надо следить за корректностью результатов оператора.
Пример:
individual.Information = randomInformation();
или
individual = generateNewIndividual();
Метагенетическое программирование — это ГП, в котором изменяется и, тем самым, «выращивается» не только заданная компьютерная программа, но и сами применяемые операторы скрещивания и мутации.
А как ты думаешь, при улучшении генетическое программирование , будет лучше нам? Надеюсь, что теперь ты понял что такое генетическое программирование и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Эволюционные алгоритмы
Из статьи мы узнали кратко, но содержательно про генетическое программирование
Комментарии
Оставить комментарий
Эволюционные алгоритмы
Термины: Эволюционные алгоритмы