Научная статья на тему 'Метод представления автоматов деревьями решений для использования в генетическом программировании'

Метод представления автоматов деревьями решений для использования в генетическом программировании Текст научной статьи по специальности «Математика»

CC BY
277
41
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / GENETIC PROGRAMMING / ДЕРЕВО РЕШЕНИЙ / DECISION TREE / КОНЕЧНЫЙ АВТОМАТ / FINITE STATE MACHINE / АВТОМАТНОЕ ПРОГРАММИРОВАНИЕ / AUTOMATA-BASED PROGRAMMING

Аннотация научной статьи по математике, автор научной работы — Данилов В. Р.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Данилов В. Р.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A method of representing automata with decision trees for genetic programming

The paper proposes a new method for representation of automaton as an individual in an evolutionary algorithm based on a decision trees. Application of this method greatly reduces amount of memory needed for running evolutionary algorithm. The method of genetic programming based on the proposed representation is created. Efficiency of this method is illustrated on the example of solving one of the variants of Artificial ant problem.

Текст научной работы на тему «Метод представления автоматов деревьями решений для использования в генетическом программировании»

9. Поликарпова Н.И., Точилин В.Н., Шалыто А.А. Разработка библиотеки для генерации управляющих автоматов методом генетического программирования. - 2007 -С. 84-87.

10. Непейвода Н.Н., Скопин И.Н. Основания программирования. - Ижевск-Москва: Институт компьютерных исследований, 2003.

11. Поликарпова Н.И., Шалыто А.А. Автоматное программирование. Учебно-методическое пособие. - СПб.: СПбГУ ИТМО, 2007.

12. Лобанов П.Г., Шалыто А.А. Использование генетических алгоритмов для автоматического построения конечных автоматов в задаче о «флибах» // Известия РАН. Теория и системы управления. - 2007. - №5. - С. 127-136.

13. Мандриков Е.А., Кулев В. А., Шалыто А.А. Применение генетических алгоритмов для создания управляющих автоматов в задаче о «флибах» // Информационные технологии - 2008. - №1. - С. 42-45.

14. Бедный Ю.Д., Шалыто А.А. Применение генетических алгоритмов для построения автоматов в задаче «Умный муравей». - СПбГУ ИТМО, 2007.

УДК 004.4'242

МЕТОД ПРЕДСТАВЛЕНИЯ АВТОМАТОВ ДЕРЕВЬЯМИ РЕШЕНИЙ ДЛЯ ИСПОЛЬЗОВАНИЯ В ГЕНЕТИЧЕСКОМ ПРОГРАММИРОВАНИИ

В.Р. Данилов

(Санкт-Петербургский государственный университет информационных технологий, механики и оптики)

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

Введение

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

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

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

Представление автомата с помощью деревьев решений

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

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

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

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

Для определения значения функции по значениям переменных необходимо спуститься от корня до листа, и получить значение, которым помечен найденный лист. При этом из вершины, помеченной переменной х, переход производится по ребру, помеченному значением переменной х. На рис. 1 показано дерево, реализующее булеву функцию Г=алсу-1а л—]Ь

Рис. 1. Пример дерева решений

Опишем предлагаемый метод представления автомата. Для задания автомата необходимо выразить его функции переходов и выходов с помощью деревьев решений. Осуществим следующее преобразование автомата: вместо задания функций переходов и выходов для автомата в целом представим эти функции для каждого состояния. Более формально это выглядит следующим образом: зададим для каждого состояния д е Q функцию Од : X ^ Q х У, такую что Од (х) = (5(д, х), Х(ц, х)) для Ух е X, где 2

- множество состояний, X - множество входных воздействий.

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

- все возможные пары (Новое Состояние, Действие). Таким образом, автомат в целом задается упорядоченным набором деревьев решений.

Генетические операции

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

• случайное порождение автомата - в каждом состоянии создается случайное дерево решений;

• скрещивание автоматов - скрещиваются деревья решений в соответствующих состояниях;

• мутация автомата - в случайном дереве решений производится мутация.

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

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

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

• Мутация - выбирается случайный узел в поддереве. После этого поддерево, соответствующее выбранному узлу, заменяется на случайно сгенерированное (рис. 2, а).

• Скрещивание - в скрещиваемых деревьях выбираются два случайных узла. После этого поддерево, соответствующее выбранному узлу в первом дереве, заменяется поддеревом, соответствующим узлу второго дерева (рис. 2, б).

а б

Рис. 2. Мутация деревьев решений

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

Апробация

Разработанный подход был протестирован на задаче «Умный муравей-2» [7]. Приведем описание задачи. Муравей находится на случайном игровом поле. Поле представляет собой тор размером 32*32 клетки. При этом муравей видит перед собой некоторую область (рис. 3).

Еда в каждой клетке располагается с некоторой вероятностью д. Значение д является параметром задачи. Игра длится 200 ходов, за каждый из которых муравей может сделать одно из трех действий: поворот налево или направо, шаг вперед. Если после хода муравей попадает на клетку, где есть еда, то еда съедается. Целью задачи является построение стратегии поведения муравья, при которой математическое ожидание съеденной еды максимально.

Рис. 3. Видимая муравью область

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

Таблица. Результаты экспериментов

0.01

Фитнесс-функция

Число состояний 2 4 8 16

Битовые строки 2.74 2.93 2.83 2.89

Таблица переходов 2.68 3.49 3.74 3.78

Предложенный метод 2.71 2.92 2.88 3.69

1 0.02

Фитнесс-функция

Число состояний 2 4 8 16

Битовые строки 7.66 8.38 7.95 6.98

Таблица переходов 6.12 7.32 7.24 7.28

Предложенный метод 7.68 8.04 7.32 8.25

1 0.03

Фитнесс-функция

Число состояний 2 4 8 16

Битовые строки 14.46 13.81 13.23 11.93

Таблица переходов 12.48 12.17 11.72 11.15

Предложенный метод 14.14 13.86 13.77 14.18

1 0.04

Фитнесс-функция

Число состояний 2 4 8 16

Битовые строки 19.11 18.68 17.47 15.10

Таблица переходов 17.18 15.94 15.03 13.68

Предложенный метод 18.28 20.28 18.60 20.18

Предложенный подход сравнивался с генетическими алгоритмами над битовыми строками и генетическими алгоритмами, оперирующими над таблицами переходов. Эксперимент заключался в сравнении полученных значений фитнесс-функции (объема съеденной еды) за фиксированное число шагов с одинаковыми настройками. Запуск алгоритмов производился со следующими настройками: стратегия отбора - элитизм, для размножения отбираются 25 % популяции, имеющих наибольшее значение фитнесс-функции; частота мутации - 2 %; размер популяции - 200 особей; число популяций - 100; фитнесс-функция - среднее значение съеденной еды на 200 случайных картах, карты внутри одной популяции совпадают, карты различных популяций различны.

Результаты эксперимента приведены в таблице. Последнее измерение фитнесс-функции осуществлялось на случайном наборе из 2000 карт.

Анализ показывает, что в случаях, когда важны значения почти всех предикатов (при д = 0.02), предлагаемый метод работает хуже известных. Это можно объяснить тем, что искомые автоматы плохо описываются деревьями решений. Однако при больших значениях д предложенный метод работает лучше, особенно при большом числе состояний. Результаты экспериментов приведены в таблице.

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

Заключение

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

Литература

1. Шалыто А. А. Технология автоматного программирования. // Труды первой Всероссийской научной конференции «Методы и средства обработки информации», МГУ. 2003. С. 528-535. - Режим доступа: http://is.ifmo.ru/works/tech_aut_prog/

2. Koza J. Genetic programming: On the Programming of Computers by Means of Natural Selection. - MA: The MIT Press, 1992.

3. Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы. - М.: Физ-матлит, 2006.

4. Andre D., Bennet F., Koza J. Discovery by Genetic Programming of a Cellular Automata Rule that is Better than any Known Rule for the Majority Classification Problem. - Режим доступа: http://citeseer.ist.psu.edu/33008.html

5. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. - М.: Вильямс, 2002.

6. Шеннон К. Работы по теории информации и кибернетике. - М.: Изд-во иност. литер., 1963.

7. Бедный Ю.Д., Шалыто А.А. Применение генетических алгоритмов для построения автоматов в задаче «Умный муравей». - СПбГУ ИТМО. 2007. - Режим доступа: http://is.ifmo.ru/works/ant

i Надоели баннеры? Вы всегда можете отключить рекламу.