Модель генератора конечных преобразователей, основанная на применении генетического и автоматного программирования

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

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

На рис. 9 приведена фотография поперечного сечения «предволокна» с двумя слоями гексагональных воздушных отверстий. «Предволокно» было вытянуто из капиллярной сборки на основе опорной трубки сечением 3,0/1,5 мм/мм, восемнадцати капилляров с поперечным сечением 280/50 мкм/мкм и центрального волокна диаметром 300 мкм. Внешний диаметр «предволокна» составлял ~ 600 мкм. Отношение диаметров воздушных отверстий к периоду структуры d/Л составляло ~ 0,4. Используя аналогичное «предволокно» диаметром ~ 950 мкм и опорную трубку поперечным сечением 4,0/1,0 мм/мм, методом «штабик-трубка» было вытянуто дырчатое волокно с внешним диаметром 125 мкм, демонстрировавшее одномодовый режим распространения излучения во всем спектральном диапазоне прозрачности кварцевого стекла.

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

Библиографический список

1. Желтиков, А.М. Дырчатые световоды / А.М. Жел-тиков. // Успехи физических наук. - 2000. - С. 1204-1215.

2. Дукельский, К.В. Реализация фотонно-кристаллического волоконного световода и генерация в нем широкополосного лазерного излучения / К.В. Дукельский, А.М. Желтиков, Ю.Н. Кондратьев и др. // Оптический журнал. - 2003. - № 8. - С. 101-103.

3. Замятин, А.А. Спекание капиллярных сборок для микроструктурированных оптических волокон / А.А. Замятин, А.А. Маковецкий. // Оптический журнал. - 2006. - № 1. - С. 66-72.

4. J.A. Lewis. The collapse of viscous tube. // J. Fluid Mech., 1977, 81, pp. 129 - 135.

5. N.A. Issa. High numerical aperture in multimode microstructured optical fibers. // Appl. Opt., 2004, 43, pp. 6191 - 6197.

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

Л.В. НАЙХАНОВА, доц. каф. систем информатики Восточно-Сибирского ГТУ, канд. техн. наук

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

Технологией генетического программирования для генерации автоматов управления системами со сложным поведением зани-

nlv@esstu.ru

маются многие ученые различных научных школ в мире [5-8]. В России наиболее известной школой, занимающейся такими исследованиями, является Санкт-Петербургская школа по автоматному программированию под руководством профессора А.А. Шалыто. В зарубежных университетах - Массачусетском технологическом институте, Университете Южной Калифорнии и других научных центрах - исследования выполняются в следующих прикладных областях: теория игр, робототехника, оптимизация, распознавание, классификация, поиск в заданном пространстве состояний, построение интеллектуальных искусственных систем, построение автоматических преобразователей, проектирование логических схем для автоматов Мили, эволюционное построение клеточных автоматов и т.д. Следует отметить, что в них строятся

ЛЕСНОЙ ВЕСТНИК 6/2008

157

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

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

Системы со сложным поведением включают два широких класса систем: реактивные системы и системы с логическим управлением, которые активно разрабатываются на основе технологии автоматного программирования. Результатами разработок являются либо конечные автоматы, либо конечные преобразователи. Школа А.А. Шалыто в настоящее время большее внимание уделяет исследованиям реактивных систем и генерации конечных автоматов для них. Исследования данной работы посвящены технологии генетического программирования для генерации автоматических преобразователей (Finite State Transducer - FST), предназначенных для решения прикладной задачи, связанной с представлением знаний о методах естественноязыковой обработки научного текста в виде продукционных систем (Production System - PS). Данные методы реализуются, как правило, в виде систем логического управления.

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

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

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

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

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

2. Создается новая популяция.

3. К каждой особи популяции применяются генетические операторы.

4. Каждая новая особь (созданный автомат) подвергается тестированию, которое состоит из двух этапов: эвристической проверки корректности автомата и расширенного тестирования, в рамках которого генерируется AML-описание модели автомата; запуска автомата на исполнение в среде UniMod на наборе тестовых данных. В результате тестирования определяется количество успешно пройденных тестов и выставляется оценка данному автомату (Fitness-функция).

5. На основе полученной оценки происходит определение стратегии дальнейшего изменения популяции и осуществляется переход на шаг 2.

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

В соответствии со схемой (рис. 1) модель генератора автоматического преобразователя формально определяется тройкой

M = <WI, GA, IT>,

где WI - пользовательский интерфейс;

GA - компонент генерации модели преобразователя;

IT - транслятор для сопряжения со средой UniMod.

158

ЛЕСНОЙ ВЕСТНИК 6/2008

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Web-интерфейс

Ввод данных и создание спецификации прикладной задачи

Формирование XML-описания параметров FST

А.

XML-описание параметров FST

Генетический алгоритм

Настройка структуры хромосомы

Генерация нового поколения

Оценка популяции на достижимость правил преобразования

Оценка популяции на наличие конечного маршрута

Вычисление функции пригодности особей популяции

Проверка завершения генерации

Ж

Механизм сопряжения

Настройка объектов управления и источников событий

Трансляция особи в XML-описание модели FST

Т

Особи

Исполняемый код

I

Результаты тестов

ъ

UniMod

х

Библиотека методов

^ Набор тестов ^

Рис. 1. Принципиальная схема модели генератора

Первый компонент имеет следующее формальное определение

WI = <CI, DBM, XML_B>, где CI (Conversational Input) - компонент, отвечающий за ввод исходной информации в соответствии с выставленным шаблоном и контроль введенной информации;

DBM (DataBase Maintenance) - компонент, обеспечивающий ведение базы данных генератора;

XML_B (XML Building) - компонент, обеспечивающий формирование XML-описания исходных данных о модели по введенным данным об автомате.

Второй компонент определяется пятеркой

GA = <NCh, GP0, EOP1, GP, EOP2, AFF>, где NCh - компонент, определяющий структуру хромосомы на основе анализа

XML-описания исходных данных о модели автомата и информации из базы данных;

GP0 - компонент, обеспечивающий формирование начальной популяции. Возможное соотношение количества 0 и 1 в хромосоме выбирается из XML-описания исходных данных;

EOP1 - компонент, выполняющий редукцию хромосом начальной популяции, на основе которой удаляются абсолютно ненужные хромосомы, и ранжирующий хромосомы на основе оценки ДНК на допустимость правил преобразования;

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

ЛЕСНОИ ВЕСТНИК 6/2008

159

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

вляется настройка на заданный тип модели автомата по определенным правилам;

EOP2 - компонент, выполняющий редукцию хромосом текущей популяции, на основе которой удаляются абсолютно ненужные хромосомы, и ранжирующий хромосомы по ее оценке на наличие конечного маршрута;

AFF - компонент, определяющий пригодность особей популяции на основе анализа результатов тестирования в среде UniMod. Если результаты положительные, то процесс генерации автомата завершается, в противном случае осуществляется переход на элемент GP компонента GA для генерации новой популяции.

Транслятор для сопряжения со средой UniMod определяется тройкой

IT = <Int, Com, Run>,

где Int - компонент, анализирующий таблицу переходов и интерпретирующий ее в виде AML-описания модели автомата;

Com - компонент, отвечающий за компиляцию AML-описания модели в среду UniMod по технологии интерпретации AML-описания в in-memory FSM [3];

Run - компонент, отвечающий за исполнение автомата в среде UniMod [3]. Каждый вложенный компонент модели генератора автоматического преобразователя М можно детализировать в глубину. Рассмотрим суть каждого компонента.

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

Компонент CI обеспечивает ввод и обновление данных о предметной области решаемого класса задач.

Компонент DBM предназначен для поддержки работы с базой данных ApplArea, в которой хранится спецификация предметной области прикладной задачи.

Компонент XMLB отвечает за формирование двух видов XML-описаний исходных данных о модели автоматов для генера-

ции автомата выбранного типа и для среды UniMod.

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

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

1. Автомат (особь) представляется в виде хромосомы.

2. Хромосома состоит из динамического набора молекул ДНК в соответствии с выбранным представлением.

3. Молекула ДНК состоит из статического количества генов (минимальная неделимая составная часть молекулы ДНК).

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

5. Каждое новое поколение P(t) генерируется при помощи оператора кроссинговера. Родительские пары выбираются оператором репродукции по методу колеса рулетки.

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

7. Все повторяющиеся хромосомы из популяции удаляются.

8. Оценка хромосом и их ранжирование осуществляются на основе эвристических правил.

9. Определение значения функции приспособленности особи осуществляется при помощи объекта (инструментальная система UniMod), внешнего для алгоритма класса, который, получая в качестве параметров особь и характеристики популяции, определяет ее приспособленность. Генетический алгоритм также должен указать объекту данного класса, на основе каких тестов необходимо определять значения функции приспособленности.

Структура хромосомы имеет табличное представление (таблица).

160

ЛЕСНОЙ ВЕСТНИК 6/2008

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Таблица

Представление структуры хромосомы

Ген1 Ген2 Ген3 Ген4 Ген5 Ген6 Ген7

Действие Z Входной поток События Выходы. поток y[DVl$UlVdJl$ хэрщ Новое состояние Допустимость преобразования

0 1 2 3 4 5 0 1 2 3 0 1 2 3 4

1 1

По каждому гену в таблице хромосомы формируется соответствующий строительный блок: Бло^ - блок действий, Блок/np - блок данных входного потока, БлокЕ - блок событий, БлокОи - блок данных выходного потока, Блок/nd - блок индексов, БлокЛ - блок новых состояний, БлокЛЕ - блок допустимых преобразований.

Явное выделение в хромосоме генов входного и выходного потока позволяет реализовать правила преобразования. В хромосоме в общем случае k ф kout, где k , кош - мощности конечных множеств данных входного и выходного потоков соответственно. Неравенству k.n < kout соответствует преобразование данного входного потока в несколько данных выходного потока; k > kout возможно в случае, когда во входном потоке появляется разделитель, который не преобразовывается в выходной символ, а сигнализирует о наступлении какого-либо события, например, завершение распознавания левой части простой ядерной конструкции xRy.

Допустимость указанных в хромосоме преобразований должна определяться после генерации популяции при оценивании особей и отражаться в 7-м гене.

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

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

В данной работе используется способ создания начальной популяции Р(0) в соответствии со второй стратегией [4], которая заключается в генерации случайного множества решений, достаточно большого, но не исчерпывающего все возможные варианты. Для обеспечения успеха дальнейшей эволюции целесообразно задать некоторые параметры, которые получены в результате анализа предметной области задачи. В данном случае зададим соотношение между нулями и единицами равным 2 : 8, а размер начальной популяции, так же как и для всех других, определяется N = 2 d+i-1,

где i - номер поколения;

d - показатель степени двойки, определяющий размер популяций. Генетический алгоритм должен самостоятельно осуществлять проверку и корректировку особей. Поэтому перед оператором редукции стоит задача удаления «плохих» особей из популяции, к которым отнесем одинаковые особи и особи, имеющие единичные или нулевые блоки Блок/np, БлокОи/ БлокЕ. Таким образом, данный оператор осуществляет погенное сравнение всех возможных пар особей и удаление «плохих» особей.

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

Для каждой особи сгенерированной популяции P(t) выполним проверку на допустимость правил преобразований, описанных в ДНК. При этом проверим те ДНК, у которых одновременно имеются единичные значения во 2-м и 4-м генах. В качестве эталона используются правила, хранящиеся в базе данных. Если преобразование допустимо, то 7-й ген текущей ДНК устанавливается в единицу.

Так как основными действиями автоматов, не относящихся к управляющим, яв-

ЛЕСНОЙ ВЕСТНИК 6/2008

161

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

ляются чтение и запись, то в хромосоме подобных ДНК должно быть около 40 %. Тогда в качестве первой целевой функции можно использовать функцию, определяющую максимум допустимых правил преобразования (Admissible transformation). Обозначим термин Admissible transformation символом а, тогда:

m

f](a)=Z a j,

j=1

где m -количество ДНК в i-й хромосоме; j - индекс ДНК.

Выполним ранжирование хромосомы по значению функции f}(a). Особи с f^(a) =0 удаляются из популяции. Оставшиеся особи делятся на четыре группы. Набор ДНК в хромосоме условно разделим на три слоя: верхний, средний, нижний. Первую группу составят особи, у которых 7-й ген имеет единичное значение у ДНК, принадлежащих верхнему слою; вторую - 7-й ген имеет единичное значение у ДНК, принадлежащих среднему слою; третью - 7-й ген имеет единичное значение у ДНК, принадлежащих нижнему слою. Четвертую группу составят все остальные особи. Обозначим эти группы как А, В, С, D.

Естественно, что особи последней группы должны иметь наибольшее значение

функции оценки. В этой группе можно выделить еще четыре подгруппы (D1, D2, D3 и D4), в которых единичный 7-й ген молекулы ДНК расположен соответственно а) во всех слоях хромосомы; б) в верхнем и среднем слоях; в) в верхнем и нижнем слоях; г) в среднем и нижнем слоях хромосомы.

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

Рассмотрим сначала скрещивание хромосом смешанной группы. Выполним скрещивание хромосом групп D2 и С, D3 и В, D4 и А. Для выполнения операции скрещивания хромосом групп D2 и С необходимо использовать одноточечный оператор кроссинговера. Случайным образом выберем родительские хромосомы Р1 и Р2 из групп D2 и С соответственно. Точкой кроссинговера будем считать точку разделения среднего и нижнего слоев хромосомы (рис. 2).

Аналогичным образом осуществляется скрещивание хромосом из пар групп D3 и В, D4 и А. После этого следует выполнить скрещивание хромосом из групп А, В и С. В этом случае имеются три родительские хромосомы Р1еА, Р2еВ, Р3еС и используется двухточечный оператор кроссинговера.

Точки кроссинговера

Рис. 2. Абстрактная схема скрещивания хромосом групп D2 и С одноточечным оператором кроссинговера

162

ЛЕСНОЙ ВЕСТНИК 6/2008

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

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

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

Разделим популяцию на две группы. К первой группе отнесем особи, которые обладают конечным маршрутом. Будем считать, что такие особи готовы к тестированию в инструментальной системе UniMod. Во вторую группу войдут остальные особи, к которым необходимо применить операторы кроссинговера и мутации.

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

Так как молекула ДНК, идентифицирующая стартовое состояние, индекс стека или входного потока, и состояние, в которое автомат, безусловно, попадает из стартового состояния, должна присутствовать во всех хромосомах, его можно не генерировать. Однако при таком условии алгоритм должен знать то состояние, в которое автомат попадает из стартового состояния.

Для каждого типа автоматов необходимо определить множество «новых» состояний (переходов - значений 6-ого гена), в которые автомат может перейти из конкретного текущего состояния. Множество «новых» состояний является статическим для каждого типа и не изменяется в процессе работы алгоритма. Таким образом, для каждого типа автоматов и каждого возможного «текущего» состояния (определяется действием, выполняющимся в этом состоянии, то есть 1-м геном) существует множество допустимых значений 6-го гена, который обозначим как NSS (NewStateSet).

Каждое действие генерирует событие или ряд событий, и чтобы определить, какое значение из множества NSS допустимо в каждой конкретной молекуле, необходимо рассмотреть отношение типа «событие - новое состояние», то есть определенное событие (ген 3) инициализирует переход в определенное состояние (значение 6-го гена) в каждом конкретно текущем состоянии (значение 1-го гена). Таким образом, корректность молекулы ДНК определяется наличием нового допустимого состояния (ген 6), соответствующего действию (ген 1), выполненному в текущем состоянии, и возникшему вследствие этого событию (ген 3).

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

Практически невозможно реализовать проверку существования конечного маршрута для всех возможных тестовых примеров, но это можно гарантировать при условии, что все молекулы ДНК:

а) различны (попарно отличаются значением хотя бы одного гена);

б) удовлетворяют правилам преобразования;

в) удовлетворяют описанным в данном подразделе условиям.

Поскольку в автоматах, чьи хромосомы не удовлетворяют вышеописанным условиям, конечного маршрута не существует, бессмысленно осуществлять их прогон на тестовых примерах. Поэтому оценка всех хромосом производилась по формуле Лф) = а + кфф^

где fi2(pi) - значение функции приспособленности i-ой особи;

ф(р.) - функция, вычисляющая приспособленность особи как количество молекул ДНК в хромосоме, удовлетворяющим всем правилам;

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

ЛЕСНОИ ВЕСТНИК 6/2008

163

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

но 0,025, так как минимальное значение функции ф(р.) может быть = 0,05; k - коэффициент, который при вращении колеса рулетки увеличивает вероятность выбора в качестве родителя более приспособленной хромосомы; в данном случае он равен двум.

Хромосомы, у которых значение функции приспособленности превышало 71 %, тестировались на примерах. В выходных файлах указывались сами хромосомы, значение их функции приспособленности (f2(p)L, где L -количество молекул ДНК в хромосоме), идентификаторы пройденных тестов и поколение, на котором была получена данная хромосома.

Выбор родительских пар осуществляется при помощи оператора репродукции. Для построения колеса рулетки вычисляется Fitness-функция каждой особи. К выбранной при помощи оператора репродукции паре применяется оператор кроссинговера.

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

Принципиальная схема интеграции генетического алгоритма и инструментального средства UniMod показана на рис. 3. Компонент FSMtoXML отвечает за формирование XML-описания модели конечного преобразователя (Finite State Transducer Production System - FSTPS) по таблице переходов, сгенерированной генетическим алгоритмом.

Компонент EvProvClassCreator отвечает за создание Java-класса, описывающего источник событий модели автомата в UniMod. Компонент ConObjClassCreator создает Java-класс, описывающий контролируемый объект модели автомата в UniMod. Компонент XMLToModel формирует исполняемый код классов, описывающих автомат.

Модель базы данных ApplArea построена по методологии IE (Information Engineering) в среде ErWin компании Computer Associates. Она обладает декларативной ссылочной целостностью данных, для обеспечения которой использован механизм внешних ключей и ограничения. Для сокращения избыточности хранимых данных использована методология нормализации отношений. Разработанная модель удовлетворяет третьей нормальной форме.

По физической модели данных сгенерированы физические схемы базы данных в РСУБД MS SQL Server 2000 и заполнены таблицы базы данных DBApplArea для рассматриваемой прикладной задачи.

Библиотека методов состоит из двух классов: FSMIO и SymbolTypeDefiner. Первый включает методы для всех автоматов и, в частности, методы для работы с данными, позволяющие абстрагироваться от типов и вида данных, второй класс является вспомогательным для первого. Класс SymbolTypeDefiner включает методы для определения типов данных, которые извлекаются из базы данных.

г Таблица ^ переходов Библиотека методов, реализующих действия^^

-j- > р

FSMtoXML ConObj ectClassCreator

t

XML-описание ^ модели генератора ^ г л Класс управляемого ^ объекта ^

I

База данных прикладной задачи

1

EyProyClassCreator

Класс источника событий

XMLToModel

Рис. 3. Схема создания исполняемого кода

164

ЛЕСНОЙ ВЕСТНИК 6/2008

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Транслятор XML-описания модели автомата в исполняемый код строится в основном по таблицам переходов автоматов, сгенерированных генетическим алгоритмом, и данным спецификации предметной области прикладной задачи, хранящимся в базе данных ApplArea. Транслятор предназначен для загрузки UniMod-автоматов в память из их хт/-описаний. После загрузки появляется возможность отладки или запуска автомата из памяти. Транслятор реализован в виде класса Run, в котором инкапсулированы методы FSM-Framework для загрузки автоматов.

Класс Mode/ используется для представления модели в памяти. Модель загружается из XML-файла и файлов с описаниями действий автоматов (файлы UniMod с расширением .java). Для загрузки модели используется класс Xm/ToMode/, создающий автомат в памяти и передающий «указатель» на него объекту класса Mode/.

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

-начальный размер популяции - 128; -максимальный размер популяции

- 4096;

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

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

1) ЕСЛИ_\ \_ТО_\ \_;

2) ЕСЛИ_\ \_И_\ \_И_\ \_ТО_\ \_;

3) ЕСЛИ_\ \_ИЛИ_\ \_ИЛИ_\ \_ТО_\ \_;

4) ЕСЛИ_\ \_И_\ \_ИЛИ_\ \_ТО_\ \_;

5) ЕСЛИ_\ \_ТО_\ \_;

6) ЕСЛИ_\ \_И_\ \_И_\ \_ТО_\ \_; ЕСЛИ_\ \_И_\ \_И_\ \_ТО_\ \_;

7) ЕСЛИ_\ \_ИЛИ_\ \_ИЛИ_\ \_ТО_\ \_; ЕСЛИ_\ \_ ИЛИ_\ \_ИЛИ_\ \_ТО_\ \_;

8) ЕСЛИ_\ \_И_\ \_ИЛИ_\ \_ТО_\ \_; ЕСЛИ_\ \_ИЛИ_\ \_И_\ \_ТО_\ \_;

9) ЕСЛИ_\ \_ТО_\ \_; ЕСЛИ_\ \_ТО_\ \_;.

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

Все тестовые примеры были успешно пройдены одним автоматом, и 40 % особей прошли тесты от 50 % до 70 %.

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

Библиографический список

1. Шалыто, А.А. Автоматноориентированное программирование / А.А. Шалыто // материалы IX всеросс. конф. «Фундаментальные исследования в технических университетах». - СПб.: Политехи. ун-т, 2005. - С. 44-52.

2. Шалыто, А.А. Объектноориентированное программирование с явным выделением состояний / А.А. Шалыто, Н.И. Туккель // междунар. науч.-тех. конф. «Искусственный ингеллекг-2002». - Т. 1. - Та-ганрог-Донецк: ТГРУ-ДИПИИ, 2002. - С. 198-202.

3. Сайт UniMod. - http://unimod.sourceforge.net/.

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

5. Lankhorst, M. A genetic algorithm for induction of nondeterministic pushdown automata [Электронный ресурс] // University of Groningen, Computer Science Report CS-R 9502, 1995.

6. Lucas, S.M. Structuring chromosomes for context-free grammar evolution. - IEEE World Congress on Computational Intelligence - http://ieeexplore.ieee.org.

7. Lucas S. M., Reynolds T. J. Learning Deterministic Finite Automata with a Smart State Labeling Evolutionary аlogarithm. - http://csdl2.computer.org.

8. Naidoo А., Pillay N. The Induction of Finite Transducers Using Genetic Programming - http://saturn.cs.unp.ac.za.

ЛЕСНОЙ ВЕСТНИК 6/2008

165