Разработка методов совместного применения генетического и автоматного программирования





НазваниеРазработка методов совместного применения генетического и автоматного программирования
страница7/12
Дата публикации30.08.2013
Размер0.78 Mb.
ТипЗадача
100-bal.ru > Информатика > Задача
1   2   3   4   5   6   7   8   9   ...   12

2.4.Предлагаемый метод


В настоящей работе для решения задачи «Умный муравей–3» также предлагается использовать генетическое программирование, но с использованием другого метода представления автоматов в виде особей генетического алгоритма. Предлагаемый метод является развитием метода представления автоматов с помощью деревьев решений, который описан в работах [6, 7]. При применении этого подхода каждому состоянию автомата соответствует некоторое дерево решений, в листьях которого хранится информация о том, в какое состояние должен перейти автомат и какое выходное воздействие он должен выработать.

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

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

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

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



  1. Переходы из состояния 0 управляющего автомата


Пометки на переходах на Рис. 20. имеют следующий формат: условие/ выходное воздействие. Отметим, что указанная система условий на переходах из состояния 0 является полной и непротиворечивой.

Если использовать представление автоматов с помощью деревьев решений, то дерево для рассматриваемого состояния будет содержать пять вершин (Рис. 21.).



  1. Дерево решений, задающее переходы из состояния 0


Эту же систему переходов можно задать конечным распознавателем, который будет содержать всего три состояния. Его граф переходов изображен на рис. 6 (ему на вход вначале подается значение переменной x1, а затем – значение переменной x2).



  1. Конечный распознаватель, задающий управляющего автомата переходы из состояния 0

На Рис. 22. начальное состояние указано большой стрелкой, а пометки состояний имеют следующий формат: номер состояния [номер состояния, в которое должен перейти управляющий автомат, выходное воздействие, которое он должен выработать].

2.4.1.Описание алгоритма


Приведем описание разработанного алгоритма. Алгоритм генетического программирования состоит из пяти частей:

  • создание начального поколения;

  • мутация;

  • скрещивание (кроссовер);

  • отбор особей для формирования следующего поколения;

  • вычисление функции приспособленности (фитнес-функции).

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

2.4.2.Операция мутации


Для выполнения мутации выбирается один из двух равновероятных вариантов:

  • изменение начального состояния управляющего автомата на выбранное случайно;

  • мутация соответствующего одному из состояний конечного распознавателя, задающего функцию переходов.

При мутации конечного распознавателя случайно выбирается один из следующих равновероятных вариантов:

  • изменение начального состояния – в этом случае новое начальное состояние выбирается случайно и равновероятно;

  • изменение состояния, в которое ведет переход, – случайно и равновероятно выбирается переход. После этого состояние, в которое ведет переход, заменяется на случайно выбранное состояние;

  • изменение условия на переходе – случайно и равновероятно выбирается состояние. После этого переходы из этого состояния, соответствующие символам «0» и «1», меняются местами;

  • изменение пометки одного из состояний – в этом случае равновероятно выбирается один из двух вариантов:

    • изменяется на случайно выбранное состояние, в которое должен перейти управляющий автомат;

    • изменяется выходное воздействие, которое он должен выработать.

2.4.3.Операция скрещивания


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

Оператор скрещивания конечных распознавателей получает на вход два конечных распознавателя и выдает также два конечных распознавателя. Процесс скрещивания происходит следующим образом. Обозначим родительские особи P1 и P2, а потомков – S1 и S2.

Обозначим начальное состояние конечного распознавателя A как A.is. Тогда для потомков S1 и S2 будет верно одно из двух: либо S1.is = P1.is и S2.is = P2.is, либо S1.is = P2.is и S2.is = P1.is, причем оба варианта равновероятны.

Опишем, как устроены переходы конечных распознавателей, которые получаются в результате скрещивания. Обозначим переход из состояния номер i в преобразователе P1 по символу «1» как P1(i, 1), а по символу «0» как P1(i, 0). Аналогичный смысл придадим обозначениям P2(i, 0) и P2(i, 1). Тогда для переходов из состояния с номером i в «потомках» S1 и S2 будет справедливо одно из четырех соотношений:

  • либо S1(i, 0) = P1(i, 0), S1(i, 1) = P2(i, 1) и S2(i, 0) = P2(i, 0), S2(i, 1) = P1(i, 1);

  • либо S1(i, 0) = P2(i, 0), S1(i, 1) = P1(i, 1) и S2(i, 0) = P1(i, 0), S2(i, 1) = P2(i, 1);

  • либо S1(i, 0) = P1(i, 0), S1(i, 1) = P1(i, 1) и S2(i, 0) = P2(i, 0), S2(i, 1) = P2(i, 1);

  • либо S1(i, 0) = P2(i, 0), S1(i, 1) = P2(i, 1) и S2(i, 0) = P1(i, 0), S2(i, 1) = P1(i, 1).

Все четыре варианта равновероятны. Возможные варианты переходов при графически изображены на Рис. 23..



  1. Возможные варианты переходов при скрещивании

2.4.4.Формирование следующего поколения


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

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

Кроме этого, если на протяжении достаточно большого числа поколений не происходит увеличения приспособленности, то применяются «малая» и «большая» мутации поколения. При «малой» мутации поколения ко всем особям, кроме 10% лучших, применяется оператор мутации. При «большой» мутации каждая особь либо мутирует, либо заменяется на случайно сгенерированную.

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

2.4.5.Настраиваемые параметры алгоритма


Следующие параметры алгоритма генетического программирования могут быть изменены:

  • размер поколения;

  • доля особей, переходящих в следующее поколение;

  • число состояний в управляющем автомате;

  • число состояний в конечных распознавателях, задающих функцию переходов;

  • вероятность мутации;

  • время до «малой» мутации поколения;

  • время до «большой» мутации поколения.

Программная реализация описанного алгоритма генетического программирования выполнена на языке программирования Java будет опубликована на сайте http://is.ifmo.ru в разделе «Генетические алгоритмы».
1   2   3   4   5   6   7   8   9   ...   12

Похожие:

Разработка методов совместного применения генетического и автоматного программирования iconРазработка методов совместного применения генетического и автоматного программирования
Комитета по скалолазанию, тренерского совета и спортсменов-скалолазов, членов сборной команды Украины
Разработка методов совместного применения генетического и автоматного программирования iconЦарев Федор Николаевич Разработка метода совместного применения генетического...
История развития географической науки и роль выдающих ученых в формировании системы географических знаний
Разработка методов совместного применения генетического и автоматного программирования iconРабочая программа по дисциплине с 3 «Технологии и методы программирования»
Цель преподавания дисциплины: Целью изучения дисциплины «Технологии и методы программирования» является изучение современных технологий...
Разработка методов совместного применения генетического и автоматного программирования iconПрограмма учебной дисциплинЫ «Микропроцессорная техника»
Целью дисциплины является формирование знаний студентов по вопросам теории, принципам построения и функционирования основных технических...
Разработка методов совместного применения генетического и автоматного программирования iconПрограмма учебной дисциплинЫ «программируемые логические контроллеры»
Целью дисциплины является формирование знаний студентов по вопросам теории, принципам построения и функционирования основных технических...
Разработка методов совместного применения генетического и автоматного программирования iconРазработка урока Автор: Целюрик Юлия Петровна Тема: «Знакомство со...
Используемые программные приложения из пакета спо: Среда программирования Скретч (Scratch)
Разработка методов совместного применения генетического и автоматного программирования iconРабочая программа учебной дисциплины
«Проектирование web-страниц» является изучение теоретических основ и принципов прикладного программирования на примере построения...
Разработка методов совместного применения генетического и автоматного программирования iconМетодическая разработка «Одномерные массивы» на языке программирования...
«Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт»/ Методическая разработка....
Разработка методов совместного применения генетического и автоматного программирования iconОтчет о научно-исследовательской работе разработка методов макроэкономической...
«Разработка методов макроэкономической оценки расходов федерального бюджета», шифр темы 0111-03-09
Разработка методов совместного применения генетического и автоматного программирования iconРабочая программа дисциплины «программирование и алгоритмизация»
Автоматизация технологических процессов и производств”, с основами алгоритмизации, основными понятиями программирования, несколькими...
Разработка методов совместного применения генетического и автоматного программирования iconРазработка методов информационной защиты в экономических информационных...
Динамическая эквивалентность как способ преодоления различий в национальных картинах мира
Разработка методов совместного применения генетического и автоматного программирования iconПеречень научно-исследовательских, опытно-конструкторских и технологических...
Изучение закономерностей дифференцировки стволовых и прогениторных клеток из различных источников в условиях in vitro и in vivo и...
Разработка методов совместного применения генетического и автоматного программирования iconОтчет о научно-исследовательской работе
Целью работы является разработка технических решений повышения эффективности совместного использования вычислительных ресурсов центров...
Разработка методов совместного применения генетического и автоматного программирования iconСулейманов галем альбкаевич разработка мер борьбы с основными гельминтозами...
Разработка методов государственного регулирования процессов рождаемости, смертности, брачности и разводимости
Разработка методов совместного применения генетического и автоматного программирования iconТема : 2
Разработка занятия по системе объектно-ориентированного программирования Scratch
Разработка методов совместного применения генетического и автоматного программирования iconТема урока: среда программирования qbasic цели урока
Программы пишут программисты на разных языках программирования. Одним из языков программирования является язык qbasic


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск