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

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

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

Аннотация научной статьи по математике, автор научной работы — Найханова Л. В., Хомонов Г. А.

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

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

THE USE OF THE GENETIC PROGRAMMING IN THE PROBLEMOF THE AUTOMATA-BASED RESOLUTIVE DEDUCTION MODELS BUILDING

It is considered the building of the resolutive logical deduction systems possessing effective problem-solving algorithms. Building of effective heuristics is based on the evolution strategy. The logical deduction system is realized as a finite state machine on the basis of the automata-based programming.

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

УДК 004.832.3

Л. В. Найханова, Г. А. Хомонов

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

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

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

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

После ряда преобразований каждый метод представляется в виде множества дизъюнктов. Активация метода осуществляется по сфере применимости системы продукций. Ядром аппарата активации является система логического вывода. Работа активированной системы продукций (метода естественно-языковой обработки) заключается в доказательстве входной гипотезы ё0 на множестве дизъюнктов метода. Для доказательства истинности или ложности гипотезы й0, описывающей входную ситуацию, используется модифицированный метод линейной резолюции Лавлен-да, Ковальского и Кюнера [2].

Таким образом, имеем семейство множеств дизъюнктов М = (М,|/ = 1..п, п - количество методов}. Назовем множество дизъюнктов метода выборкой. Тогда задача состоит в том, чтобы для каждой выборки М{ е М сгенерировать конечный автомат, позволяющий осуществлять резолютивный вывод и обладающий высокой эффективностью именно для конкретной выборки.

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

А = <StaticLogRezDed, DinamicLogRezDed >.

Статический компонент StaticLogRezDed описывается кортежем StaticLogRezDed = <State_S, Ай_8>, где State_S и Ай_8 - это соответственно вектора статистических состояний и действий автомата. StaticLo-gRezDed одинаков для всех реализуемых методов и проектируется сразу в инструментальной системе Ип-

iMod, поддерживающей технологии автоматного программирования [3; 4].

Динамический компонент также определяется двойкой основных компонентов: DinamicLogRezDed = <State_D, Act_D>, где State_D, Act_D - генерируемые состояния и действия автомата. DinamicLogRezDed зависит от решаемой задачи (реализуемого метода), и для его построения используется эволюционная стратегия.

Вектор статических состояний представляет собой шестерку State_S = <Select_C, Select_B, Destructor, Set_Flags, Resolution>. В каждом их этих состояний выполняются действия, принадлежащие множеству Op_S:

1) Select_C - состояние, в котором выполняется загрузка центрального дизъюнкта;

2) Select_B - состояние, в котором выполняется загрузка бокового дизъюнкта;

3) Destructor - состояние, в котором выполняется сортировка множества контрарных пар (боковых дизъюнктов);

4) Set_Flags - состояние, в котором выполняется сортировка множества центральных дизъюнктов;

5) Resolution - состояние, в котором выполняется ряд действий:

- проверка дизъюнктов на унифицируемость;

- склейка дизъюнктов;

- обрамление литер;

- удаление обрамленных литер;

- проверка на редуцируемость и достижимость пустого дизъюнкта;

- проверка на вывод пустого дизъюнкта.

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

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

Генерация динамического компонента автомата. Основные положения генетического алгоритма. За основу взяты следующие положения:

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

2. Хромосома состоит из динамического набора молекул ДНК двух видов X и У, множество молекул X предназначено для выбора центрального дизъюнкта, множество У - бокового дизъюнкта.

3. Молекулы ДНК как первого, так и второго множества должны составлять замкнутую цепочку переходов.

4. Молекулы ДНК не должны повторяться в особи.

5. Молекула ДНК состоит из трех генов.

6. Каждый ген представляется в виде целого числа.

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

8. Каждое новое поколение Р(/) генерируется при помощи оператора кроссинговера. Родительские пары выбираются оператором репродукции по методу заданной шкалы.

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

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

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

Структура хромосомы. Хромосома состоит из динамического количества молекул ДНК. Структура молекулы состоит из трех генов (рис. 1):

- символ перехода, интервал значений которого лежит в диапазоне от 1 до 3;

- новое состояния, интервал значений которого для молекул вида X лежит в диапазоне от 1 до 11, а для молекул типа У - от 12 до 21;

- текущее состояние, интервал значений которого для молекул вида X лежит в диапазоне от 0 до 10, а

для молекул типа У - от 13 до 22.

,--------------------1

Рис. 1. Структура молекулы ДНК Часть Х

Абстрактный пример структуры хромосомы приведен на рис. 2.

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

- во множестве молекул типа X должна присутствовать, по крайней мере, одна молекула, имеющая значение 2-го гена равное 11 (конечное состояние);

- во множестве молекул типа X должна присутствовать, по крайней мере, одна молекула, имеющая значение 3-го гена равное 0 (начальное состояние);

- во множестве молекул типа Y хромосомы должна присутствовать, по крайней мере, одна молекула, имеющая значение 2-го гена равное 22 (конечное состояние);

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

Схема генетического алгоритма. Алгоритм включает следующие основные процессы:

1) инициализация входного множества дизъюнктов (класс InitDis);

2) создание начальной популяции Р(0):

а) формирование особи случайным образом;

б) проверка выполнения первичных правил на наличие в хромосоме начального и конечного состояний;

в) мутация некорректных молекул непосредственно при генерации популяции (класс Run);

3) формирование популяции выполнимых автоматов:

а) оценка автоматов на выполнимость (класс

Run);

б) переход к п. 4, если все особи прошли проверку, иначе - к следующему пункту;

в) удаление из популяции особей, не прошедших проверку;

г) селекция, скрещивание и мутация автоматов, не прошедших проверку, и переход к п. 3 а);

Часть Y

X XX XX

Ген 1

Ген 2

Ген 3

1

2

3

4

5

6

7

N молекулы ДНК

Рис. 2. Пример структуры хромосомы Примечание: серым цветом закрашены гены, содержащие начальное и конечные состояния.

4) преобразование каждой особи (модели динамической части автомата) популяции в XML-описание автомата;

5) загрузка XML-описания и прогонка автомата (класс Run RunHromosome);

6) анализ результатов работы автоматов на вывод пустого дизъюнкта при заданной глубине (если получен пустой дизъюнкт, то особь считается корректной);

7) удаление некорректно работающих особей из популяции;

8) расчет fitness-функции для корректных автоматов на основе информации о количестве успешных унификаций

9) останов, если значение fitness-функции достигнет или превысит 0,9;

10) создание новой популяции выполнимых автоматов:

а) селекция, скрещивание и мутация автоматов, не прошедших проверку, и переход к п. 3 а);

б) оценка автоматов на выполнимость посредством стандартных функций UniMod Framework (класс Run);

в) удаление из популяции особей, не прошедших проверку;

г) переход к п. 4, если все особи прошли проверку, иначе - к п. 10 а).

Оценивание. Оценивание состоит из двух этапов: оценки автоматов на выполнимость и оценки приспособленности особей.

Оценка автоматов на выполнимость осуществляется с помощью стандартных функций UniMod и заключается в проверке:

- на наличие ошибок в объектном коде;

- наличие ошибок в автоматах;

- достижимость конечного состояния.

Для проверки объектного кода применяется класс DefaultCompilationListener, объект которого создан в классе Run. В конструктор класса подается откомпилированная модель автомата (объект класса StateMa-chineCompiler), после чего вызывается функция getEr-rors(), которая сообщает о наличии ошибок в модели.

Проверка на наличие ошибок в автоматах осуществляется с помощью функций validate Structure() и getAttainableStates() класса StateMachineValidator, ко-

bj (a,)-

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

Проверка достижимости конечного состояния осуществляется посредством функции getName() класса StateMachineValidator, возвращающей имя нового состояния. Если условие getName() = «finish» не выполнится ни разу, то построенный автомат является некорректным.

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

Ъ(а,) -¿ЬДц),

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

j -1

где m - количество ошибок;

[+1, если ошибок нет, [-1, если обнаружена ошибка.

Все хромосомы, у которых F1(ai) < 0, удаляются из популяции.

Оценка приспособленности особей или расчет Fit-ness-функции осуществляется по формуле оценки

F2(a) = 10(a - U(ai)) + Hkl(al) + Щ(а) + 1/£з(а,),

где ai - текущая особь; a - константа, определяющая максимально возможное количество унификаций; U(ai) - количество успешных унификаций; k1(ai) - среднее количество литер во множестве центральных дизъюнктов С; k2(al) - среднее количество необрам-ленных литер во множестве С; k3(al) - соотношение средней арности термов к количеству константных символов в них.

Константа a зависит от конкретной выборки, и ее значения лежат в интервале [100, 1000]. Особи ранжируются в соответствии со значением F2(ai). Особи, обладающие высоким значением Fitness-функции, остаются в популяции, ранжируются в соответствии со значением F2(ai) и составляют множество, из которого оператором селекции родительские хромосомы выбираются для скрещивания.

Основные генетические операторы. Оператор мутации. Используется двухточечный оператор мута-ции. Каждое значение, генерируемое оператором, должно соответствовать правилам формирования молекул X, Y (рис. 3).

Родительская хромосома a,

Хромосома-потомок a \

Точки мутации '

Рис. 3. Пример оператора мутации

Оператор мутации не применяется к молекулам, содержащим начальное и конечное состояния. Из этого следует, что в хромосоме изображенной на рис. 3 к области выбора молекул ДНК для мутации относятся 3-я и 4-я молекулы. После применения оператора мутации в п. 2 генетического алгоритма модифицируется молекула хромосомы, а в п. 10 - создается новая хромосома.

Оператор кроссинговера. В алгоритме используется двухточечный оператор кроссинговера. У особи родителей а1 и а2, имеющей меньшую длину, случайным образом выбираются две позиции: одна в части молекул типа Х и вторая в части молекул типа У. В потомок а' 1 копируются молекулы ДНК хромосомы а1 с начала до первой точки кроссинговера, затем молекулы ДНК хромосомы а2 с первой точки кроссинго-вера до конца части молекул типа Х, затем молекулы ДНК хромосомы а1 с начала части молекул типа У до второй точки кроссинговера, затем молекулы ДНК хромосомы а2 со второй точки кроссинговера до кон -ца. Потомок а'2 формируется в инверсном порядке.

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

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

Пример модели автомата. Как было изложено выше, система LogRezDed состоит из StaticLog-

RezDed, DinamicLogRezDed. Вид автомата, сформированный средой Unimod по модели автомата, сгенерированной генетическим алгоритмом для выборки -множества дизъюнктов по классической задаче Стим -роллер [5] показан на рис. 4.

Состояния StaticLogRezDed: Select_C - состояние, в котором выполняется загрузка центрального дизъ-юнкта; Select_B - состояние, в котором выполняется загрузка бокового дизъюнкта; Destructor - состояние, в котором выполняется сортировка множества кон -трарных пар (боковых дизъюнктов); Set_Flags - состояние, в котором выполняется сортировка множест -ва центральных дизъюнктов; Resolution - резольвиро-вание первых дизъюнктов во множествах централь -ных и боковых дизъюнктов.

Состояниям DinamicLogRezDed (генерируемые генетическим алгоритмов) соответствуют состояния s8...s15 (рис. 4). В этих состояниях происходит оценка боковых и центральных дизъюнктов. Для оценки дизъюнктов используются следующие ха-рактеристики:

- количество литер в дизъюнкте;

- количество обрамленных литер в дизъюнкте;

- количество констант в контрарной литере дизъюнкта;

- количество функциональных символов в контрарной литере дизъюнкта;

- соотношение мощности вершины графа контрарных пар к другим вершинам;

- соотношение средней длины дизъюнкта к средней длине вершины множества;

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

- способы унификации дизъюнктов (применением индексирования и без него).

е 1 [о 1. х 1==о 1. SUCCESS]

el[ol ,xl==ol .NOTFOUND] е 1 [о 1. х2==о 1. NOTFOUND]

е 1 [о 1. х2==о 1. SUCCESS]

detect Б Resolution

ч. J 'ч J

el [ol.x2-«o2. FAILURE]

- 513 1

J

se Л * Г 59 1

l J v. J

f Sis } \ iM 1

L J v -S

Рис. 4. Диаграмма состояний автомата

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

В начальном состоянии любой автомат выполняет следующие действия:

- загружает и индексирует входное множество дизъюнктов;

- составляет граф контрарных пар;

- загружает дизъюнкты в соответствии с их контрарными парами.

У автомата нет действий на переходах, но действия привязаны к каждому конкретному состоянию.

Тестирование алгоритма проводилось на входном множестве дизъюнктов мощностью равной 25 [5]. При прогоне модели автомата в среде ишМос! на первой популяции размером в тысячу особей было получено два автомата. Первый автомат удовлетворял всем условиям, но им не был найден пустой дизъюнкт. Второй автомат вывел пустой дизъюнкт при глубине поиска равной 5. В последующих популяциях были сге-нерированны модели автоматов, из которых можно было выбрать наиболее эффективный посредством ранжирования особей популяции по возрастанию значений их ШпеББ-функций.

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

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

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

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

2. Чень, Ч. Математическая логика и автоматическое доказательство теорем / Ч. Чень, Р. Ли ; под ред. С. Ю. Маслова. М. : Наука, 1983. 360 с.

3. UniMod [Электронный ресурс] Электрон. дан. Режим доступа: http://unimod.sourceforge.net/. Загл. с экрана.

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

5. Вагин, В. Н. Достоверный и правдоподобный вывод в интеллектуальных системах / В. Н. Вагин [и др.] ; под ред. В. Н. Вагина, Д. А. Поспелова. М. : Физматлит, 2004. 704 с.

L. V. Naykhanova, G. A. Khomonov

THE USE OF THE GENETIC PROGRAMMING IN THE PROBLEM OF THE AUTOMATA-BASED RESOLUTIVE DEDUCTION MODELS BUILDING

It is considered the building of the resolutive logical deduction systems possessing effective problem-solving algorithms. Building of effective heuristics is based on the evolution strategy. The logical deduction system is realized as a finite state machine on the basis of the automata-based programming.

УДК 621.3.049

Г. Г. Крушенко, С. Н. Решетникова, К. К. Цау

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

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

В последние годы появилась новая многоплановая отрасль науки и техники, рассматриваются объекты, размеры которых укладываются в интервал от 1 до 100 нм (1 нм = 10-9 м, что соответствует размеру молекулы; «nano» по-гречески означает «карлик, гном» [1]). Вещества, имеющие такие размеры, обладают свойствами, существенно отличающимися от свойств одноименных материалов в массивном со-

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

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