Скачать 0.78 Mb.
|
3.2.Описание предлагаемого методаИсходными данными для построения конечного автомата управления системой со сложным поведением являются:
Отметим, что для таких тестов справедливо свойство, которое можно сформулировать следующим образом – «префиксы тестов являются тестами» – если из входной последовательности событий удалить часть событий, находящихся в ее конце, то результат обработки автоматом этой последовательности будет префиксом исходной выходной последовательности. Поэтому естественно в набор тестов включать все префиксы теста. 3.2.1.Представление конечного автомата в виде хромосомы генетического алгоритмаКонечный автомат в алгоритме генетического программирования представляется в виде объекта, который содержит описания переходов для каждого из состояний и номер начального состояния. Для каждого из состояний хранится список переходов. Каждый переход описывается событием, при поступлении которого этот переход выполняется и числом выходных воздействий, которые должны быть сгенерированы при выборе этого перехода. Таким образом, в особи кодируется только «скелет» управляющего конечного автомата, а конкретные выходные воздействия, вырабатываемые на переходах, определяются с помощью алгоритма расстановки пометок, который аналогичен предложенному в работе [53]. Выбор представления графа переходов автомата с помощью списков ребер (в отличие от работы [52], в которой применялись полные таблицы переходов) обоснован тем, что, как правило, в автоматах управления системами со сложным поведением не в каждом состоянии определена реакция на каждое событие. 3.2.1.1.Обработка входных переменныхОтметим, что в общем случае функция переходов и функция действий зависят не только от события, поступившего на вход автомату, но и от значений входных переменных, которые, как правило, имеют логический тип. При построении автомата вручную, например, с использованием инструментального средства UniMod [5] переходы обычно помечаются не только событиями, но и так называемыми «охранными условиями» (guard conditions) – логическими формулами, которые задают ограничения на значения входных переменных. 3.2.1.2.Алгоритм расстановки пометокИдея алгоритма расстановки пометок состоит в том, что генетическим алгоритмом строится только «скелет» конечного автомата, а пометки на переходах – вырабатываемые на них выходные воздействия – расставляются на основе тестов. При этом расстановка пометок происходит таким образом, чтобы получившийся в результате автомат как можно лучше «соответствовал» тестам. В работе [53] аналогичный принцип использовался при построении конечных автоматов для распознавания регулярных языков. Главное отличие состоит в том, что в этой работе расставлялись пометки на состояниях – на основе тестов определялось, будет состояние допускающим или нет. Опишем алгоритм расстановки пометок на переходах, применяемый в настоящей работе. Как было сказано выше, для каждого из перехода в особи генетического алгоритма записано, сколько выходных воздействий должно вырабатываться при его выборе. Подадим на вход конечному автомату последовательность событий, соответствующую одному из тестов, и будем наблюдать, за тем, какие переходы выполняет автомат. Зная эти переходы и информацию о том, сколько выходных воздействий должно быть сгенерировано на каждом из переходов, можно определить, какие выходные воздействия должны вырабатываться на переходах, использовавшихся при обработке входной последовательности. Например, пусть входной последовательности событий A, T, T, M, H, T, T соответствует выходная последовательность z5, z5, z4, z3, z5, z5, и при обработке входной последовательности выполняются следующие переходы: 1 → 2 → 2 → 2 → 3 → 4 → 2 → 2. Пусть при этом на первом из переходов не должно выполняться ни одно выходное воздействие, а на каждом из остальных – должно выполняться одно (Рис. 24.).
На Рис. 24. для каждого из переходов кроме события, при возникновении которого он выполняется, указано число выходных воздействий, которые ему соответствуют. Тогда на основании этого теста можно сделать вывод о том, что на переходе по событию T из второго состояния в себя должно вырабатываться выходное воздействие z5, на переходе по событию M из второго состояния в третье должно вырабатываться выходное воздействие z4, на переходе по событию H из третьего состояния в четверное должно вырабатываться z5, а на переходе по событию T из четвертого состояния во второе – z3 (Рис. 25.).
Таким образом, на основании одного теста можно расставить выходные воздействия на части переходов автомата. Если тестов больше одного, то возможны различные ситуации:
В первом случае ситуация аналогична ситуации с одним тестом. Во втором дело обстоит иначе. Во-первых, понятно, что рассматриваемый «скелет» автомата не позволяет пройти все тесты. С другой стороны, на этом переходе должны выполняться некоторые выходные воздействия. Поэтому предлагается пометить этот переход тем выходным воздействием, которое чаще всего вырабатывается на нем в тестах. Этот же принцип можно распространить на случай, когда на переходе должно вырабатываться более одного выходного воздействия. Для каждого перехода T и каждой последовательности выходных воздействий zs вычисляется величина C[T][zs] – число раз, когда при обработке входной последовательности, соответствующей одному из тестов, на переходе T должны быть выработаны выходные воздействия, образующую последовательность zs. Далее, каждый переход помечается той последовательностью zs0, для которой величина C[T][zs0] максимальна. 3.2.1.3.Операция мутацииПри выполнении операции мутации с заданной вероятностью (по умолчанию, она равна 0.05) выполняется каждое из действий:
При изменении начального состояния оно заменяется на выбранное случайным образом. При изменении описания перехода с равной вероятностью выполняется одно из следующих действий:
После выполнения операции мутации в автомате может возникнуть ситуация, когда в автомате из одного состояния присутствуют два перехода по донному и тому же событию. Для устранения таких переходов применяется операция удаления дублирующихся переходов, описанная в следующем разделе. 3.2.1.4.Операция удаления дублирующихся переходовДля удаления дублирующихся переходов для каждого состояния проделывается следующие операции: последовательно просматривается список переходов из этого состояния, и при этом запоминаются события, переходы по которым определены для этого состояния. Если очередной переход T происходит по событию, для которого в списке уже есть переход, то переход T удаляется из списка. 3.2.1.5.Операция скрещиванияСкрещивание описаний автоматов производится следующим образом. Обозначим как P1 и P2 «родительские» особи, а как S1 и S2 – особи-«потомки». Для начальных состояний S1.is и S2.is автоматов S1 и S2 будет верно одно из двух соотношений:
Опишем, как устроены переходы автоматов S1 и S2. Скрещивание описаний автоматов производится отдельно для каждого состояния. Обозначим список переходов из состояния номер i автомата P1 как P1.T[i], а список переходов из состояния номер i автомата P2 как P2.T[i]. Для выполнения «скрещивания переходов» с равной вероятностью может быть выбран один из двух методов. При использовании традиционного метода скрещивания списки переходов S1.T[i] и S2.T[i] строятся следующим образом:
При использовании метода скрещивания с учетом тестов списки переходов S1.T[i] и S2.T[i] строятся следующим образом:
В обоих случаях к получившимся в результате скрещивания автоматам S1 и S2 применяется операция удаления дублирующихся переходов. 3.2.1.6.Генерация начального поколенияНачальное поколение заполняется автоматами, сгенерированными случайным образом. При этом все автоматы содержат одинаковое число состояний, из каждого их которых число переходов определяется случайным образом в диапазоне от нуля до числа событий, которые присутствуют в рассматриваемой системе со сложным поведением. 3.2.2.Генетический алгоритмГенетический алгоритм, применяемый для построения управляющего конечного автомата, аналогичен описанному в разд. 2.4.1. Начальное поколение также генерируется случайным образом, при этом все конечные автоматы содержат одинаковое число состояний. При генерации очередного поколения, как и ранее, применяется метод элитизма – фиксированная доля особей с наибольшими значениями функции приспособленности напрямую переходит в следующее поколение. Программная реализация описанного алгоритма генетического программирования выполнена на языке программирования Java будет опубликована на сайте http://is.ifmo.ru в разделе «Генетические алгоритмы». 3.2.3.Вычисление функции приспособленностиФункция приспособленности основана на редакционном расстоянии. Для ее вычисления выполняются следующие действия: на вход автомату подается каждая из последовательностей Input[i]. Обозначим последовательность выходных воздействий, которую сгенерировал автомат на входе Input[i] как Output[i]. После этого вычисляется величина , где как ED(A, B) обозначено редакционное расстояние между строками A и B. Отметим, что значения этой функции лежат в пределах от 0 до 1, при этом, чем «лучше» автомат соответствует тестам, тем больше значение функции приспособленности. Функция приспособленности зависит не только от того, насколько «хорошо» автомат работает на тестах, но и числа переходов, которые он содержит. Она вычисляется по формуле: , где как cnt обозначено число переходов в автомате. Эта функция приспособленности устроена таким образом, что при одинаковом значении функции FF1, отражающей «прохождение» тестов автоматом, преимущество имеет автомат, содержащий меньше переходов. Кроме этого, автомат, который «идеально» проходит все тесты, оценивается выше, чем автомат, проходящий тесты не идеально. Учет числа переходов в функции приспособленности необходим по двум причинам. Во-первых, минимизация числа переходов приводит к тому, что в результирующем автомате отсутствуют неиспользуемые в тестах переходы – так как они не используются, то могут быть удалены из автомата без ущерба для его поведения на тестах. Во-вторых, чем меньше в автомате переходов, тем более «общее» поведение он задает. Таким образом, частично решается проблема «переобучения», заключающаяся в том, что автомат демонстрирует правильное поведение только на тестовых входных последовательностях. Две указанные особенности должны учитываться при построении набора обучающих тестов. Оценим время вычисления функции приспособленности. Время вычисления редакционного расстояния пропорционально произведению длин последовательностей, для которых оно вычисляется. Таким образом, время вычисления функции приспособленности есть . Заметим также, что добавление в набор тестов «префиксов» тестов не увеличивает время вычисления функции приспособленности, так как достаточно вычислить редакционное расстояние только для «самых больших» тестов, а для их префиксов редакционное расстояние взять из вычисленной таблицы динамического программирования. |
Разработка методов совместного применения генетического и автоматного программирования Комитета по скалолазанию, тренерского совета и спортсменов-скалолазов, членов сборной команды Украины | Царев Федор Николаевич Разработка метода совместного применения генетического... История развития географической науки и роль выдающих ученых в формировании системы географических знаний | ||
Рабочая программа по дисциплине с 3 «Технологии и методы программирования» Цель преподавания дисциплины: Целью изучения дисциплины «Технологии и методы программирования» является изучение современных технологий... | Программа учебной дисциплинЫ «Микропроцессорная техника» Целью дисциплины является формирование знаний студентов по вопросам теории, принципам построения и функционирования основных технических... | ||
Программа учебной дисциплинЫ «программируемые логические контроллеры» Целью дисциплины является формирование знаний студентов по вопросам теории, принципам построения и функционирования основных технических... | Разработка урока Автор: Целюрик Юлия Петровна Тема: «Знакомство со... Используемые программные приложения из пакета спо: Среда программирования Скретч (Scratch) | ||
Рабочая программа учебной дисциплины «Проектирование web-страниц» является изучение теоретических основ и принципов прикладного программирования на примере построения... | Методическая разработка «Одномерные массивы» на языке программирования... «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт»/ Методическая разработка.... | ||
Отчет о научно-исследовательской работе разработка методов макроэкономической... «Разработка методов макроэкономической оценки расходов федерального бюджета», шифр темы 0111-03-09 | Рабочая программа дисциплины «программирование и алгоритмизация» Автоматизация технологических процессов и производств”, с основами алгоритмизации, основными понятиями программирования, несколькими... | ||
Разработка методов информационной защиты в экономических информационных... Динамическая эквивалентность как способ преодоления различий в национальных картинах мира | Перечень научно-исследовательских, опытно-конструкторских и технологических... Изучение закономерностей дифференцировки стволовых и прогениторных клеток из различных источников в условиях in vitro и in vivo и... | ||
Отчет о научно-исследовательской работе Целью работы является разработка технических решений повышения эффективности совместного использования вычислительных ресурсов центров... | Сулейманов галем альбкаевич разработка мер борьбы с основными гельминтозами... Разработка методов государственного регулирования процессов рождаемости, смертности, брачности и разводимости | ||
Тема : 2 Разработка занятия по системе объектно-ориентированного программирования Scratch | Тема урока: среда программирования qbasic цели урока Программы пишут программисты на разных языках программирования. Одним из языков программирования является язык qbasic |