Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

генетическое программирование

Лекция



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

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

 

Содержание

    
  • 1 История
  • 2 Кодирование алгоритма
    • 2.1 Нейронные сети
    • 2.2 Древовидное
      • 2.2.1 Оператор скрещивания
      • 2.2.2 Оператор мутации
  • 3 Метагенетическое программирование
  • 4 Ссылки
  • 5 Литература

 

История

Кодирование алгоритма

Выбор способа кодирования программы в генетическом алгоритме — один из основных вопросов генетического программирования. Об этом говорит сайт https://intellect.icu . Программа должна быть закодирована в таком виде, чтобы легко было автоматически вносить случайные изменения (оператор мутации) и объединять два алгоритма в один (оператор скрещивания).

Способы кодирования можно разделить на два класса:

  • Прямое кодирование — генетический алгоритм работает с программой в явном виде.
  • Косвенное кодирование — генетический алгоритм работает не с самим кодом программы, а с правилами его построения. То есть генетический алгоритм работает с программой, которая генерирует нужную нам программу.

Нейронные сети

Древовидное

генетическое программирование
генетическое программирование
Функция, представленная в древовидной форме

В древовидном кодировании каждый узел дерева содержит функцию, а каждый лист — операнд. Выражение, представленное в виде дерева, может быть легко рекурсивно посчитано. Традиционное ГП легче использовать для выращивания программ, написанных на языках, естественным образом воплощающих древовидную структуру: Lisp, Haskell, F# и других функциональных языках программирования.

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

Оператор скрещивания

генетическое программирование
генетическое программирование
Оператор скрещивания для древовидного представления программ

 

В древовидном представлении оператор скрещивания реализуется обменом между двумя деревьями какими-либо узлами вместе с их потомками (поддеревьями).

Пример:

individual.Children[randomChildIndex] = otherIndividual.Children[randomChildIndex];

Оператор мутации

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

Пример:

individual.Information = randomInformation();

или

individual = generateNewIndividual();

Метагенетическое программирование

Метагенетическое программирование — это ГП, в котором изменяется и, тем самым, «выращивается» не только заданная компьютерная программа, но и сами применяемые операторы скрещивания и мутации.

Ссылки

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

Из статьи мы узнали кратко, но содержательно про генетическое программирование
создано: 2014-08-20
обновлено: 2021-03-13
132761



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Эволюционные алгоритмы

Термины: Эволюционные алгоритмы