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

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 18.01.2018
Размер файла 126,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

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

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

Данилов В.Р., магистрант

Шалыто А.А., д.т.н., профессор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 3. Скрещивание деревьев решений

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

Апробация

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

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

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

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

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

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

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

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

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

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

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

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

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

Литература

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

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

2. Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПб.: Питер, 2009.

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

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

5. 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.

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

7. Шеннон К. Работы по теории информации и кибернетике. М.:Иностранная литература, 1963.

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

9. Шалыто А.А. Логическое управление. Методы аппаратной и программной реализации алгоритмов. СПб.: Наука, 2000.

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [128,0 K], добавлен 24.06.2013

  • Принципы и понятия автоматного программирования. Виды конечных автоматов, их применение при построении лексических и синтаксических анализаторов. Описание конечных автоматов Миля и Мура, их различий в зависимости от способа формирования функций выхода.

    курсовая работа [430,9 K], добавлен 26.05.2015

  • Вычисление значения функции с помощью программирования. Рабочий набор исходных данных. Таблица идентификаторов, текст программы, контрольный расчет. Подключение модуля, объявление константы и переменных вещественного типа. Шаг изменения аргумента.

    контрольная работа [118,4 K], добавлен 28.09.2012

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

    курсовая работа [1,3 M], добавлен 11.03.2014

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

    курсовая работа [336,4 K], добавлен 01.06.2014

  • Устройство управления и синхронизации в структуре микропроцессора. Порядок синтеза конечного автомата (КА) для устройства управления ЭВМ. Алгоритм функционирования КА, заданный с помощью графа, функции переходов. Состояние триггеров в микросхеме.

    методичка [1019,0 K], добавлен 28.04.2009

  • Основные операции с АВЛ-деревьями, добавление и удаление элемента из сбалансированного дерева. Эффективность сортировки вставкой в АВЛ–дерево и итераторы. Алгоритм реализации АВЛ–деревьев через классы объектно–ориентированного программирования.

    курсовая работа [281,1 K], добавлен 29.11.2010

  • Понятие и назначение дискретного (цифрового) автомата, сферы и правила его использования. Граф-дерево автомата Мура и мили, их отличительные черты. Таблица переходов с распределением неопределённостей. Представление функции возбуждения и ее минимизация.

    курсовая работа [423,7 K], добавлен 11.10.2008

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

    учебное пособие [2,3 M], добавлен 17.06.2014

  • Характеристика методов нечеткого моделирования и изучение системы кластеризации в пакетах прикладных программ. Разработка и реализация алгоритма для оптимизации базы правил нечеткого классификатора с помощью генетического алгоритма аппроксимации функции.

    дипломная работа [1,9 M], добавлен 21.06.2014

  • Создание программы для поиска минимума функции двух вещественных переменных в заданной области с помощью генетического алгоритма. Генетические алгоритмы и операторы. Создание начальной популяции. Размножение. Мутация и селекция. Тестирование программы.

    курсовая работа [131,6 K], добавлен 22.02.2015

  • Входная грамматика в структурированной форме. Функции переходов символьного преобразователя. Работа лексического анализатора. Структуры данных, символы действия. Описание семантики перевода. Построение и программная реализация атрибутного преобразователя.

    курсовая работа [128,9 K], добавлен 03.07.2013

  • Понятие, виды и функции тестов, компьютерное тестирование. Государственные стандарты создания компьютерных тестов и практическая реализация комплекса генерации тестов: СУБД и язык программирования, пользовательский интерфейс, экономическая эффективность.

    дипломная работа [2,1 M], добавлен 29.06.2012

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

    курсовая работа [27,9 K], добавлен 23.07.2011

  • Теоретические основы эквивалентности конечных автоматов-распознавателей и их минимизация. Определение математических моделей Мили и Мура. Их графическое и табличное представление. Примеры построения конечных автоматов, распознающих некоторые языки.

    курсовая работа [567,8 K], добавлен 02.05.2015

  • Описание принципа работы генетического алгоритма, проверка его работы на функции согласно варианту на основе готовой программы. Основные параметры генетического алгоритма, его структура и содержание. Способы реализации алгоритма и его компонентов.

    лабораторная работа [20,2 K], добавлен 03.12.2014

  • Задачи линейного программирования. Многоугольник решений системы. Вычисление значения целевой функции. Интервальная группировка данных. Среднее квадратическое отклонение выборки. Вычисление коэффициента корреляции. Закон распределения случайной величины.

    контрольная работа [389,6 K], добавлен 11.01.2012

  • Общие сведения о языке программирования Matlab. Функции работы с векторами и матрицами. Операторы условных переходов. Построение двумерных графиков. Построение гистограммы изображения. Функции его преобразования и зашумления, метрики определения качества.

    лабораторная работа [853,5 K], добавлен 25.10.2015

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

    курсовая работа [39,3 K], добавлен 29.10.2012

  • Вычисление значения интеграла функции, заданной графически. Постановка задач. Составление таблицы значений функции, заданной в виде разложения в ряд. Математическая формулировка. Численный метод решения. Схемы алгоритмов. Инструкции пользователям.

    курсовая работа [56,3 K], добавлен 05.07.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.