Генетическое программирование | это... Что такое Генетическое программирование? (original) (raw)

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

Содержание

История

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

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

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

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

Древовидное

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

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

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

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

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

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

Пример:

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

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

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

Пример:

individual.Information = randomInformation();

или

individual = generateNewIndividual();

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

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

Ссылки

Литература

.

Просмотр этого шаблона Искусственный интеллект
Философия Тест ТьюрингаКитайская комната Nuvola apps Talk.PNG Портал
Направления Агентный подходАдаптивное управлениеИнженерия знанийМодель жизнеспособной системыМашинное обучениеНейронные сетиНечёткая логикаОбработка естественного языкаРаспознавание образовРоевой интеллектЭволюционные алгоритмыЭкспертная система
Применение Голосовое управлениеЗадача классификацииКлассификация документовКластеризация документовКластерный анализЛокальный поискМашинный переводОптическое распознавание символовРаспознавание речиРаспознавание рукописного вводаИгровой ИИ
Исследователи Норберт ВинерАлан ТьюрингВ. М. Глушков • Г. С. Осипов • Д. Э. Попов • Д. А. Поспелов • М. Г. Гаазе-Рапопорт • Т. А. Гаврилова • В. Ф. Хорошевский • Г. С. ПоспеловМарвин МинскиДжон МаккартиФрэнк РозенблаттЧарльз БэббиджАллен НьюэллГерберт СаймонНоам ХомскийДжуда ПерлСеймур ПапертКлод ШеннонДжозеф УайзенбаумПатрик ВинстонВ. К. Финн
Организации Государственный университет информатики и искусственного интеллектаSingularity Institute for Artificial Intelligence