А. А. Шалыто Санкт-петербург





НазваниеА. А. Шалыто Санкт-петербург
страница4/11
Дата публикации02.09.2013
Размер0.71 Mb.
ТипЗадача
100-bal.ru > Информатика > Задача
1   2   3   4   5   6   7   8   9   10   11

1.2.2.Традиционный генетический алгоритм


В этом разделе приведено краткое описание традиционного генетического алгоритма (conventional genetic algorithm) [54] с одноточечной рекомбинацией и мутацией. В этом алгоритме каждая особь представляет собой битовую строку длины l, а размер популяции равен n.

Шаг 1. Генерации начальной популяции . Для этого, например, можно сгенерировать n битовых строк, в которых каждый из l битов равен 0 или 1 с одинаковой вероятностью.

Шаг 2. Вычислить функцию приспособленности f(x) для каждой особи из текущей популяции. Этот шаг обычно является наиболее трудоемким по времени во всем алгоритме. Отметим, что при вычислении функции приспособленности, как правило, необходимо осуществить декодирование некоторого объекта из двоичной строки.

Шаг 3. Переход к следующему поколению популяции. При создании нового поколения могут использоваться различные стратегии. В качестве примера приведем так называемый метод рулетки (roulette wheel selector) [4].

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

После этого с некоторой наперед заданной вероятностью происходит скрещивание (рекомбинация, кроссовер, кроссинговер) родительских особей. В результате образуются их «потомки» – z1 и z2. Происходит это следующим образом: случайно (с равномерным распределением на множестве {1, 2, …, l}) выбирается число k. Хромосомы «потомков» z1 и z2 теперь строятся следующим образом: для z1 – первые k символов совпадают с первыми k символами x, последние (l-k) – с последними (l-k) символами y, для z2 – наоборот. Например, если l=7, x=1001010, y=0001001, k=3, то z1=1001001, z2=0001010. После этого равновероятно выбирается одна из особей z1 либо z2 – выбранную особь обозначим как z.

С некоторой (как правило, порядка 0.01) вероятностью производится мутация особи z – в ней случайно выбирается один бит и изменяется.

Получившаяся в результате особь z добавляется в следующее поколение.

Шаг 4. Повторять шаги 2 и 3 до тех пор, пока не будет выполнено условие останова (максимальная приспособленность в популяции достигла целевого значения, прекратился рост максимальной приспособленности, число поколений достигло некоторого предела и т.д.).

Отметим, что кроме описанных выше методов одноточечного кроссовера, алгоритма рулетки и мутации изменением случайного бита, существуют и другие – обзор приведен в работе [14].

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


Генетическое программирование (genetic programming), предложенное J.R. Koza в 1992 году [48], предполагает применение генетических алгоритмов для автоматизированного построения программ.

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

Такой подход позволяет определить генетические операции скрещивания и мутации, которые лучше подходят для решаемой задачи. Например, если каждая особь представляет собой программу, то возможны так называемые операции, изменяющие архитектуру, (architecture-altering operations) – например, добавление подпрограммы [20].

1.2.4.Преимущества автоматизированного построения автоматов


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

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

1.2.4.1.Эксперименты Фогеля


Один из создателей эволюционного программирования Л.Фогель рассматривал интеллектуальное поведение индивида, как способность успешно предсказывать поведение среды, в которой он находится, и сообразно с этим действовать. В 60-x прошлого века годах Фогель поставил ряд экспериментов [38] по созданию искусственных систем, способных адаптироваться к первоначально не известной им среде.

В проведенных экспериментах Л. Фогель моделировал поведение простейшего живого существа, которое способно предсказывать изменения параметра среды, обладающего периодичностью. Это живое существо моделировалось конечным автоматом с действиями на переходах – автоматом Мили. В качестве среды выступала последовательность символов над двоичным алфавитом, например, (1111010010)*. На вход автомата в каждый момент времени подавалась битовое значение параметра окружающей среды. Автомат формировал значение выходной переменной – возможное значение рассматриваемого параметра в следующий момент времени. На Рис. 3. приведен один из возможных автоматов, который построен для распознавания, указанной выше последовательности.



  1. Граф переходов эвристически построенного автомата

Задача состояла в эволюционном построении автомата, способного как можно более точно в смысле какой-либо разумной функции приспособленности от входа и выхода (например, количества совпавших символов) предсказывать среду – угадывать следующий символ последовательности. Кроме того, Фогель накладывал ограничения на сложность порождаемого автомата, так как строить автоматы равные длине обозреваемой последовательности не представляет труда. Таким образом, предпочтение отдавалось автоматам, угадывающим как можно лучше, и в то же время имеющим как можно меньше состояний.

В начале эксперимента задавалась периодическая последовательность символов над двоичным алфавитом, например (101110011101)*. На начальной фазе выбирался префикс данной последовательности малой длины. После этого создавалась популяция автоматов с небольшим числом состояний (около пяти). Затем каждый из автоматов путем одной из пяти мутаций (выбираемой случайным образом равномерно) производил потомка. Далее над потомком подобным образом производилось еще несколько мутаций (количество определялось случайным образом). Получившийся в результате мутаций автомат добавлялся в популяцию. Были допустимы следующие мутации автомата:

  • добавление состояния;

  • удаление состояния (в случае, если число состояний больше единицы);

  • замена стартового состояния (в случае, если число состояний больше единицы);

  • замена перехода;

  • замена действия на переходе.

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

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

1.2.4.2.Задача «Умный муравей»


Приведем описание задачи «Умный муравей» на основе работ [45, 27]. Используется двумерный тор размером 32 на 32 клетки (Рис. 4.). На некоторых клетках поля расположены яблоки – черные клетки на Рис. 4.. Яблоки расположены вдоль некоторой ломаной линии, но не на всех ее клетках. Клетки ломаной, на которых яблок нет – серые. Белые клетки – не принадлежат ломаной и не содержат яблок. Всего на поле 89 яблок.



  1. Поле с яблоками

В клетке с пом «Start» находится муравей. Он занимает клетку поля и смотрит в одном из четырех направлений (север, запад, юг, восток). В начале игры муравей смотрит на восток. Он умеет определять находится ли яблоко непосредственно перед ним. За ход муравей совершает одно из четырех действий:

  • идет вперед на одну клетку, съедая яблоко, если оно находится перед ним;

  • поворачивается вправо;

  • поворачивается влево;

  • стоит на месте.

Съеденные муравьем яблоки не восполняются. Муравей жив на всем протяжении игры – еда не является необходимым ресурсом для его существования. Никаких других персонажей, кроме муравья, на поле нет. Ломаная строго задана. Муравей может ходить по любым клеткам поля. Игра длится 200 ходов, на каждом из которых муравей совершает одно из четырех описанных выше действий. В конце игры подсчитывается количество яблок, съеденных муравьем. Это значение – результат игры.

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

Конечный автомат, изображенный на Рис. 5., содержит всего пять состояний.



  1. Конечный автомат, задающий муравья

Этот автомат описывает поведение муравья, который не решает задачу – за 200 ходов съедает только 81 яблоко, а за 314 ходов — все 89 яблок. Муравей действует по принципу «Вижу яблоко – иду вперед. Не вижу – поворачиваю. Сделал круг, но яблок нет – иду вперед».

Приведем автомат (Рис. 6.), который построен в работе [45] с помощью генетических алгоритмов и решает поставленную задачу.



  1. Конечный автомат с 13 состояниями, задающий муравья, съедающего все яблоки за 200 ходов

На этом рисунке используются следующие обозначения: N – непосредственно перед муравьем нет еды, F – непосредственно перед муравьем есть еда; M – идти вперед, L – повернуть налево, R – повернуть направо, NO – стоять на месте. Можно заметить, что действие NO никогда не выполняется. Данный автомат изображен некорректно – из одиннадцатого состояния изображен переход, помеченный входным воздействием 0, с «непонятным» действием S. Однако если это действие заменить на N, то автомат корректно решает задачу.

Автомат из работы [27], приведенный на Error: Reference source not found, содержит 11 состояний. По утверждению авторов, он съедает все яблоки за 193 хода. Этот граф некорректен, что отмечено и указано как устранить в разд. 4.2.1.3.



  1. Конечный автомат с 11 состояниями, задающий муравья, съедающего все яблоки за 193 хода


Для генерации конечных автоматов, задающего муравья, в работах [27, 45] были применены генетические алгоритмы. В работе [45] приспособленность особи (fitness) определяется как количество яблок, съеденное за 200 ходов. Кодирование автомата, задающего поведение муравья, в особь генетического алгоритма (битовую строку) в этой работе осуществлялось следующим образом: входному воздействию F сопоставлялась единица, а N – ноль. Каждое из четырех действий муравья кодировалось двоичными числами: 00 – NO, 01 – L, 10 – R, 11 – M.

Покажем, как выполняется кодирование автомата в целом. На Рис. 8. приведен пример графа переходов автомата, описывающего поведение некоторого муравья.



  1. Пример автомата, описывающего поведение муравья 

 Кодирование этого графа переходов приведено в табл. Таблица 1..

  1. Кодирование графа переходов

Состояние

Вход

Новое состояние

Действие

00

0

01

01

00

1

00

11

01

0

01

10

01

1

10

11

10

0

11

00

10

1

10

11

11

0

00

01

11

1

11

10


Преобразуем эту таблицу в битовую строку. Для этого сначала требуется запомнить число состояний автомата (в данном случае четыре). В начале строки задан двоичный номер начального состояния автомата (в данном примере – 00). Далее записаны пары (Новое состояние, Действие). Содержимое полей (Состояние, Вход) не записываются, так как они повторяются для каждого автомата с фиксированным числом состояний. Для рассматриваемого примера искомая строка имеет вид:

00 0101 0011 0110 1011 1100 1011 0001 1110

Здесь курсивом выделены биты, соответствующие новому состоянию, а обычным шрифтом — биты, соответствующие выполняемому на переходе действию. Жирным шрифтом выделены биты, кодирующие начальное состояние.

Отметим, что автором настоящей диссертации в бакалаврской работе [23] был предложен генетический алгоритм, с помощью которого был построен автомат, содержащий семь состояний и решающий задачу об «Умном муравье». Диаграмма переходов этого автомата приведена на Рис. 9.. В работе [25] с помощью перебора показано, что автоматы с меньшим, чем семь числом состояний задачу «Умный муравей» решить не могут.



  1. Автомат, решающий задачу «Умный муравей» 

Отметим, что в книге [48] создатель генетического программирования J. R. Koza предлагает другой подход к представлению автомата, нежели кодирование с помощью битовой строки, – поведение муравья задается в виде дерева разбора, которое далее может быть преобразовано в автомат. Апробация этого метода проводилась на другом игровом поле – Santa Fe Trail.

1.2.4.3.Построение конечных детерминированных автоматов для распознавания регулярных языков


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

Задача может быть усилена до построения автомата с минимальным количеством состояний. Однако, в работе [40] показано, что эта задача является NP-трудной.

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

Приведем описание генетической операции репродукции. Число состояний потомка выбирается случайно из диапазона [N – 2, N + 2], где N — число состояний первого родителя. После этого каждый переход копируется из родителей, причем вероятность копирования перехода из заданной особи прямо пропорциональна значению ее функции приспособленности. Переходы, представленные только в одном из родителей, копируются из того родителя, в котором присутствуют. Переходы, отсутствующие в обоих родителях, генерируются случайно.

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

Предложенный подход был проверен на практических задачах. Авторам удалось построить автомат из семи состояний, который распознает по множеству из ста примеров русские двухсложные слова.

В работе [33] для генерации автомата был применен следующий вариант генетического программирования: выводилось выражение, результатом вычисления которого являлся автомат. Выражение описывало последовательность действий, преобразующих исходный автомат (Error: Reference source not found) в результирующий. Для вывода выражений, кодирующих развитие автомата, было применено традиционное генетическое программирование, оперирующее над деревьями выражений.



  1. Исходный автомат

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

  • PARALLEL – создать новое допускающее состояние автомата и направить туда активную дугу. При этом созданное состояние копируется из состояния, в которое активная дуга вела до операции;

  • PARALLEL-REJ – создать новое отвергающее состояние и направить туда активную дугу аналогично PARALLEL;

  • RETRACT – зациклить активную дугу: направить ее в состояние, из которого она исходит;

  • WRITE-NODE – положить в стек состояние, в которое ведет активная дуга;

  • TO-NODE – снять состояние со стека и направить в него активную дугу. Если стек пуст, то активная дуга не модифицируется.

В работе [33] введен единственный терминал DONE, означающий конец редактирования. Пример выражения, использующего эти функции, приведен на Error: Reference source not found. Для наглядности нетерминалы пронумерованы в порядке исполнения. Для нетерминалов PARALLEL и PARALLEL-REJ первый аргумент соответствует действиям, совершаемым над созданным состоянием. При этом активная дуга переходит в первую дугу, исходящую из нового состояния. Второй аргумент этих нетерминалов соответствует действиям, совершаемым над исходным состоянием. При этом активная дуга заменяется следующей дугой, исходящей из состояния. Для остальных нетерминалов единственный аргумент вычисляется аналогично второму аргументу PARALLEL и PARALLEL-REJ.



  1. Выражение, описывающее развитие автомата

На Error: Reference source not found показан процесс развития автомата из исходного по приведенному выражению.



  1. Процесс построения автомата при вычислении выражения

Известно, что регулярные языки могут быть представлены как объединение, пересечение или дополнение других регулярных языков. Следовательно, можно произвести декомпозицию языка на более простые языки, для которых проще найти распознающие автоматы. В работе [33] определено решение в виде комбинации трех автоматов через нетерминалы AND, OR и NOT. Разложение также определяется с помощью генетического программирования. Пример выведенного с помощью этой методики распознавателя изображен на Error: Reference source not found.



  1. Декомпозиция распознавателя

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

В работе [50] произведено сравнение двух подходов к автоматическому построению автоматов: использование генетических алгоритмов и применение эвристики Evidence Driven State Merging (EDSM). После анализа проведенных экспериментов был сделан вывод, что автомат, построенный с помощью генетических алгоритмов, лучше соответствует искомому языку. С другой стороны, эвристика EDSM всегда строит автомат, который верно распознает множество примеров.

Кроме этого, в работе [52] предлагается подход, позволяющий существенно сократить пространство поиска в задаче построения конечного автомата для распознавания регулярного языка. Этот подход состоит в том, что в хромосоме генетического алгоритма кодируется только структура автомата, а его вершины помечаются одним из значений «допускающее состояние» или «не допускающее состояние» с помощью процедуры, которую авторы работы назвали «расстановкой пометок» (smart state labeling). Применение этого подхода позволило существенно ускорить работу генетического алгоритма.

1.2.4.4.Построение конечных преобразователей


Одной из областей применения автоматического построения автоматов является построение конечных преобразователей (Finite State Transducers), которые преобразуют входной поток в последовательность символов выходного алфавита. На Рис. 14. приведен пример простого преобразователя двоичной записи числа N в двоичную запись числа N + 1. При этом двоичная запись числа подается с конца.



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

Более сложным примером использования автоматических преобразователей является синтез речи — отображение последовательности букв в последовательность фонем. Важным достоинством применения конечных автоматов для описания преобразователей является легкость их реализации.

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

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

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

  1. В двух рекомбинируемых графах выбирается по одной случайной вершине.

  2. Подграфы, соответствующие вершинам меняются местами.

  3. Ребра, которые ведут наружу, направляются в случайные вершины.

На Рис. 15. приведен пример рекомбинации.



  1. Пример рекомбинации графов переходов

Операция мутации реализуется следующим образом.

  1. Выбирается случайная вершина графа.

  2. Подграф, соответствующий выбранной вершине, удаляется.

  3. Из вершины выращивается случайный подграф.

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

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

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

Кроме этого, исследуются три подхода к вычислению функции приспособленности – на основе строго сравнения выходной последовательности с последовательностью из «обучающего множества», на основе вычисления расстояния Хэмминга [42] и на основе вычисления редакционного расстояний (расстояния Левенштейна) [9]. Из этих трех методов наиболее эффективным оказался метод, основанный на редакционном расстоянии.

Результаты этой работы показывают, что наиболее эффективно (для рассмотренных в этой работе) примеров работает алгоритм RMHC (random mutation hill climber), использующий только операцию мутации. Вторым по эффективности является генетический алгоритм, а наименее эффективно работает эвристическое объединение состояний.

1.2.4.5.Работы в СПбГУ ИТМО


В рамках исследований по теме «Технология генетического программирования для генерации автоматов управления системами со сложным поведением» на кафедре «Технологии программирования» СПбГУ ИТМО был разработан ряд методов генерации конечных автоматов с помощью генетических алгоритмов.

Один из этих методов – метод сокращенных таблиц переходов был предложен Н. Поликарповой и В. Точилиным в работе [16]. Этот метод позволяет решить проблему экспоненциального роста размера описания автомата, которая возникает при использовании полных таблиц переходов – число строк в таблице есть , где – число предикатов. Опыт показывает, что в реальных задачах управляющие автоматы, построенные вручную, имеют гораздо меньше переходов, чем (здесь как |S| обозначено размер множества состояний автомата). Причина этого состоит в том, что в большинстве задач предикаты имеют «локальную природу» по отношению к управляющим состояниям. В каждом состоянии значимым является лишь определенный, небольшой поднабор предикатов, остальные же не влияют на значение управляющей функции. Именно это свойство позволяет существенно сократить размер описания состояний. Кроме того, использование этого свойства в процессе оптимизации позволяет получить результат, более похожий на автомат, построенный вручную, а следовательно, и более понятный человеку.

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

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



  1. Хромосома состояния: сокращенная таблица (n = 6, m = 3, r = 2, |S| = 3)

Число строк таблицы в этом случае , однако, константа обычно невелика. Ее выбор зависит от сложности задачи. Как показывает опыт, для большинства автоматизированных объектов среднее по всем состояниям значение не больше пяти.

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

  • внутренние узлы помечены символами переменных;

  • ребра – значениями переменных;

  • листья – значениями искомой функции.

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

Метод представления автомата с помощью деревьев решений заключается в следующем: функции переходов и выходов автомата выражаются с помощью деревьев решений. Более формально: зададим для каждого состояния функцию , такую что для . Здесь – множество состояний автомата, – множество входных воздействий, – множество выходных воздействий, – функция переходов, – функция выхода. Каждая из этих функций может быть определена собственным деревом решений. Таким образом, автомат в целом может быть представлен упорядоченным набором деревьев решений и стартовым состоянием.

Каждое состояние автомата представляется с помощью соответствующего дерева решений. Деревья решений состоят из узлов, среди которых выделяется корень. Каждый узел представляется следующим образом:

  • номер переменной, соответствующей метке узла;

  • указатель на дочерний узел, соответствующий нулевому значению переменной (для внутренних узлов);

  • указатель на дочерний узел, соответствующий единичному значению переменной (для внутренних узлов);

  • ассоциированное выходное действие (для листьев);

  • номер состояния, в которое ведет переход из данной вершины (для листьев).

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

class TreeAutomata {

Tree[] trees;

int startState;

}



class Tree {

Node root;

private class Node {

Node left;

Node right;

int transState;

int action;

}

}

Третий метод – метод совместного применения конечных автоматов и нейронных сетей был предложен автором настоящей диссертации в работах [23, 24]. При использовании этого метода для управления системой со сложным поведением предлагается совместно применять нейронную сеть и конечный автомат, которые совместно строятся генетическим алгоритмом.

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



  1. Структурная схема системы управления при использовании метода совместного применения конечных автоматов и нейронных сетей

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



  1. Возможная структура нейронной сеть и ее взаимодействие с конечным автоматом

Символами S на Рис. 18. обозначены нейроны с сигмоидальной функцией активации, символом L – нейроны с пороговой функцией активации. Рядом с нейронами указаны их номера (они используются при описании операции скрещивания нейронных сетей). На каждый из трех выходов нейронной сети поступает число равное нулю или единице. Таким образом, существует восемь вариантов комбинаций выходных сигналов нейронной сети (000, 001, 010, 011, 100, 101, 110, 111), подаваемых на вход конечного автомата.

Указанные методы применялись для построения конечных автоматов управления моделью беспилотного летательного аппарата. При этом в ряде случаев построенные автоматы были более эффективными, чем построенные вручную [17].

1.2.4.6.Другие работы по построению конечных автоматов с помощью генетических алгоритмов


Кроме указанных выше задач, генетические алгоритмы успешно применяются для построения автоматов в следующих задачах:

  • итерированная дилемма узника (теория игр) [29, 36];

  • распознавание изображений [32];

  • выбор праймера для полимеразной цепной реакции [Error: Reference source not found];

  • автоматические переговоры [56, 59];

  • управление человекоподобным роботом [61].
1   2   3   4   5   6   7   8   9   10   11

Похожие:

А. А. Шалыто Санкт-петербург iconНовые поступления 2 Сельское хозяйство 2 Общие вопросы сельского хозяйства 2
Агрофизический научно-исследовательский институт (Санкт-Петербург). Материалы координационного совещания Агрофизического института,...
А. А. Шалыто Санкт-петербург iconСпециальная /коррекционная/ общеобразовательная школа (VII вида)...
Субъект Российской Федерации Санкт-Петербург, в лице Комитета по Образованию Санкт-Петербурга. Место нахождения Учредитель -1: 190000,...
А. А. Шалыто Санкт-петербург iconЭкскурсионные туры в карелию
Санкт- петербург приозерск – ладожское озеро валаам – сортавала – парк «рускеала» олонец александро-свирский монастырь старая ладога...
А. А. Шалыто Санкт-петербург iconDhl открывает новое сервисное отделение в Санкт-Петербурге Санкт-Петербург, 20 марта 2008 г
Санкт-Петербург, 20 марта 2008 г. Компания dhl, мировой лидер в области экспресс-доставки и логистики, расширяет свое присутствие...
А. А. Шалыто Санкт-петербург iconМетодическое пособие для врачей Санкт-Петербург 2007
В. Г. Беспалов, д м н., старший научный сотрудник, руководитель группы химиопрофилактики рака фгу "нии онкологии им. Н. Н. Петрова...
А. А. Шалыто Санкт-петербург iconРеферата «г. Санкт-Петербург, как символ новой культуры, великое...
Актуальность темы. Санкт-Петербург один из основных смысловых образов русской культуры. Это город-программа, город-концепция, имеющий...
А. А. Шалыто Санкт-петербург iconПатентам и товарным знакам (19)
Санкт-Петербург, ул. Политехническая, 29, Санкт-Петербургский гту (цпи), С. В. Козыреву
А. А. Шалыто Санкт-петербург iconРеальное и виртуальноЕ в медиапространстве современности
Санкт-Петербургский Гуманитарный университет профсоюзов, г. Санкт-Петербург, Россия
А. А. Шалыто Санкт-петербург iconЗа 2011 год Санкт-Петербург 2011г
Показатели административных правонарушений по районам Санкт-Петербурга в 2010 году 47
А. А. Шалыто Санкт-петербург iconПрограмма по формированию навыков безопасного поведения на дорогах...
Адрес: 191187, Санкт-Петербург, ул. Гагаринская, 3, Европейский Университет в Санкт-Петербурге
А. А. Шалыто Санкт-петербург iconГбоу школа №619 Калининский район Санкт-Петербург
Министерства образования и науки Российской Федерации, Комитета по образованию Санкт-Петербурга и школьным Положением «Об информационном...
А. А. Шалыто Санкт-петербург iconПрограмма по формированию навыков безопасного поведения на дорогах...
Санкт-Петербургский городской дворец творчества юных, спб гбоу лицей искусств «Санкт-Петербург»
А. А. Шалыто Санкт-петербург iconЛабораторные работы на уроках биологии с использованием цифрового микроскопа
Государственное бюджетное образовательное учреждение гимназия №42 Приморского района Санкт-Петербурга (гбоу гимназия №42 Приморского...
А. А. Шалыто Санкт-петербург iconНалогообложение субъектов малого бизнеса в Республике Казахстан (на примере тоо «Рэтро-2»)
Государственной комиссии по защите магистерских диссертаций в Санкт-Петербургском университете управления и экономики по адресу:...
А. А. Шалыто Санкт-петербург iconАлексей Береснев администрирование gnu/Linux с нуля санкт-Петербург «бхв-петербург» 2007
Прилагаемый компакт-диск содержит требования и проверочные тесты для экзаменов lpi-101, lpi-102, а также свободно распространяемое...
А. А. Шалыто Санкт-петербург iconКлассический санкт-петербург (5 дней / 4 ночи)
Санкт-Петербургу, Петропавловская крепость, Петергоф (ансамбль фонтанов Нижнего парка), Эрмитаж, Дворцовая площадь, Царское Село...


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


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