УДК 519.178
Б. Ф. Мельников, А. А. Мельникова
МНОГОАСПЕКТНАЯ МИНИМИЗАЦИЯ НЕДЕТЕРМИНИРОВАННЫХ КОНЕЧНЫХ АВТОМАТОВ (ЧАСТЬ I. ВСПОМОГАТЕЛЬНЫЕ ФАКТЫ И АЛГОРИТМЫ)
Аннотация. В первой части настоящей статьи рассматриваются некоторые вспомогательные алгоритмы, необходимые одновременно для двух проблем минимизации недетерминированных конечных автоматов - вершинной и дуговой. Приводится несложный алгоритм минимизации детерминированных автоматов, с помощью которого производится одновременное построение функций разметки состояний. Доказываются вспомогательные утверждения о входных языках состояний базисного автомата, необходимые для алгоритмов эквивалентного преобразования произвольных недетерминированных конечных автоматов.
Ключевые слова: недетерминированный конечный автомат, базисный автомат, алгоритмы эквивалентного преобразования, вершинная минимизация, дуговая минимизация.
Abstract. In the first part of the article, the authors consider some auxiliary algorithms for two problems of minimization of nondeterministic finite automata: ver-tex-minimization and edge-minimization. The researchers give a simple algorithm for minimization of deterministic automata, which also enables simultaneous construction of state-marking functions. The article proves some auxiliary propositions about input languages of the basis automaton states, necessary for algorithms of equivalent transformation of nondeterministic finite automata.
Key words: nondeterministic finite automaton, basis automaton, algorithms of equivalent transformation, state-minimization, edge-minimization.
Введение
В первой части данной статьи рассматриваются вопросы, связанные с проблемой минимизации недетерминированных конечных автоматов, причем как по числу вершин, так и по числу дуг. Приводятся вспомогательные утверждения и алгоритмы, нужные для решения этих задач, причем необходимые как для точного решения, так и для описания приближенных алгоритмов реального времени (anytime-алгоритмов).
Структура статьи следующая. В разделе 1 приводятся применяемые обозначения - они согласованы с использовавшимися в предыдущих работах авторов ([1-5] и др.). В разделе 2 приводится несложный алгоритм минимизации детерминированных автоматов, с его помощью производится одновременное построение функций разметки состояний. В разделе 3 доказываются вспомогательные утверждения о входных языках состояний базисного автомата, необходимые для алгоритмов эквивалентного преобразования произвольных недетерминированных конечных автоматов. В заключении приводятся проблемы для дальнейшего решения, а также кратко описывается содержание второй части данной статьи.
Необходимо заранее отметить три следующих важных факта. Во-первых, мы всегда формулируем алгоритмы с целью их возможного использования в реальных программных системах; например, мы рассматривали
наши приложения для разработки алгоритмов в [6, 7], где рассматривались алуйте-алгоритмы (алгоритмы реального времени) для задачи дуговой минимизации. Во-вторых, мы не рассматриваем сложность представленных алгоритмов (минимизационных проблем) также потому, что описанные алгоритмы используются в реальных системах программирования, где более важными являются иные оценки их эффективности [7, 8]. В-третьих, мы иногда используем алгоритм добавления дуги; используя терминологию монографии [8], такое временное ухудшение возможного решения может рассматриваться в качестве примера так называемого порогового локального поиска для задачи дуговой минимизации.
1. Применяемые обозначения
Будем использовать следующие обозначения (они согласованы с [1-5]).
Пусть
K = ^, X, 8, 5, В - (1)
некоторый конечный автомат (недетерминированный автомат Рабина - Скотта), определяющий регулярный язык Ь = £(К). Здесь Q - множество состояний, а 5 с Q и В с Q - множества стартовых и финальных состояний соответственно.
Мы будем рассматривать автомат без е-переходов, т.е. будем рассматривать функцию переходов 8 автомата (1) в виде 8: Q X X — Р ^); записью Р ^) обозначено множество всех подмножеств множества Q.
Через £ К (4) и С К (4) обозначим входной и выходной языки состояния q, т.е. языки, определяемые автоматами ^, X, 8, 5, {4}) и ^, X, 8, {4}, В) соответственно. А £ К (4) - язык, определяемый автоматом ^, X, 8, {4}, {4}).
Для автомата (1) и пары р, 4 е Q будем также использовать следующие
обозначения. Если 8(р, а) э г, то будем писать р ——— г или р —а——г.
8 К
Будем иногда опускать нижние индексы 5 и К, если автомат подразумевается. Аналогичные обозначения будем использовать и для слов. Например, будем
М ^ ^—1 ^
писать р--------— г, если существует путь из р в г, помеченный словом и е X*;
К
при этом р будет опускаться, когда мы рассматриваем путь из некоторого входа, и т.п.
Зеркальный автомат для заданного автомата (1) будем обозначать Кй,
т.е. К = Ю, X, 8я, В, 5), где 4' ——— 4", если и только если 4" —а—— 4'. Оче-
8й 8
видно, что К определяет язык Ья.
Для автомата (1) и его состояний 41, 42 е Q будем рассматривать автомат К', чей граф переходов получается из К объединением состояний 4! и 42. Автомат К' получается следующим образом (здесьр, г е Q и а е X - любые):
1) полагаем 41 —а—— г, если и только если 41 ——— г или 42 —а—— г;
К К К
„ч а . а . а ч
2) аналогично, р-------------------------— 41, если и только если р-— 41 или р-— 42;
К К К
3) для других пар р, г е Q полагаем р-> г, если и только если
К
Р-------> г;
К
4) состояние д2 и соответствующие ему дуги удаляются.
Кроме того, состояние д1 является стартовым (финальным) для автомата К', если и только если по крайней мере одно из состояний д1 и д2 стартовое (финальное) для автомата К.
Будем обозначать такой автомат через Jqlq2 (К). Конечно, применение описанной операции J имеет смысл в тех случаях, когда можно доказать, что данный и полученный автоматы (т.е. К и К') эквивалентны.
Для рассматриваемого языка Ь будем обозначать определяющий его канонической конечный автомат записью Ь1. Далее будем считать, что автоматы Ь и Ь для рассматриваемого языка Ь следующие:
Ь = X, 8п, К}, ^) и Ьк = ^р, X, 8р, (5р), ^). (2)
Рассмотрим некоторые факты из [1-4], используемые в данной статье. Будем использовать две специальные функции (фш и фои‘) - так называемые функции разметки состояний автомата (1), помечающие каждое состояние
некоторыми подмножествами состояний Ь и Ь . В данной статье достаточно использовать сокращенную версию их определения: полагаем фК (д) э А тогда и только тогда, когда существует слово и е X* такое, что —и—> д и
К
—А; аналогично для функции ф^ . Заметим, что это определение конструктивно, т.е. задает алгоритм построения данных функций. Если ФК (д) э А и фКиГ (д) э X, будем писать д е (А) К.
Далее мы используем специальное бинарное отношение #, заданное на декартовом произведении QпxQр (см. [2] и др.); отметим, что это отношение определяется заданным языком, а не конкретным автоматом для его задания. Проще всего указанное отношение может быть получено при построении функции фш, рассматриваемой для автомата, зеркального к каноническому для данного языка. Далее будет приведен подробный пример работы таких алгоритмов.
Отметим, что пары состояний отношения # могут рассматриваться как состояния базисного автомата для данного языка ([2, 4] и др.); приведем его подробное определение. Для заданного регулярного языка Ь определим автомат ВА(Ь) = (Т, 2,8^, SJ,) следующим образом:
• Т - множество пар вида X таких, что А е Qп, X е Qр и А#Х. При этом
мы будем писать A = а|X j и X = р|х j.
1 Аналогично [1-4] мы считаем каноническим автоматом детерминированный автомат, содержащий минимально возможное число состояний. При этом также аналогично [1-4] мы не требуем всюду определенности этого автомата и, следовательно, не включаем в него (единственное) возможное «дохлое состояние» (“dead state”).
• Функцию 8т определим следующим образом. Для всех состояний 71, Т2 е Т и буквы а е2 полагаем Т2 е 8т (Т, а) тогда и только тогда, когда
8п (а(Т1), а) = {а(Т2)} и 8р ((Т2), а)={Р(Т1» .
• Считаем, что Т е Бт тогда и только тогда, когда а(Т) = sn; аналогично: Т е ¥7 тогда и только тогда, когда Р(Т) = яр.
Базисный конечный автомат [2] является инвариантом регулярного языка. При этом во многих теоретических и практических задачах теории формальных языков рассматривать базисные автоматы существенно удобнее, чем канонические.
2. Подробный пример - построение функций разметки с помощью канонического автомата
На русском языке подробное рассмотрение примера авторами не публиковалось (в частности, его не было в монографии [9]). Менее подробно построение функций разметки в процессе построения канонического автомата рассматривалось в нескольких статьях на английском языке, однако здесь мы исправили некоторые неточности и привели наиболее подробные варианты алгоритмов.
Фактически приведенный здесь алгоритм является специальной модификацией алгоритма Хопкрофта [10], он позволяет строить не только эквивалентный канонический автомат, но и - одновременно - некоторые вспомогательные объекты. Однако, как было отмечено выше, вопросы сложности алгоритмов в данной статье не рассматриваются.
Итак, в предыдущих статьях [1-5] алгоритмы построения бинарного отношения # и базисного автомата не рассматривались подробно. Отметим, что для этих алгоритмов даже процедуру построения канонического автомата желательно делать несколько иной - отличающейся от «классической». В связи с этим мы рассмотрим такие алгоритмы детально. Для заданного конечного автомата мы рассмотрим1 приемлемый алгоритм одновременного построения:
- эквивалентного ему канонического автомата;
- функции разметки фш2;
- бинарного отношения #;
- множеств блоков (гридов).
Таким образом, мы детально рассмотрим варианты применения классических алгоритмов теории конечных автоматов к построению «наших» объектов для заданного регулярного языка3.
Мы будем рассматривать очень интересный (для обеих вышеупомянутых минимизационных проблем, вершинной и дуговой) пример конечного автомата. В частности, автомат, заданный на рис. 1, имеет следующие свойства:
1 Частично - в данном разделе, а частично - во второй части данной статьи.
2 А также ф°и(. Однако полного алгоритма построения последней функции мы приводить не будем.
3 Подробное описание алгоритма построения базисного автомата можно найти, например, в [4].
- и число его состояний, и число его дуг меньше числа состояний и числа дуг эквивалентного канонического автомата;
- то же самое верно и для зеркального автомата.
Рис. 1
Более того, этот автомат - минимальный среди всех конечных автоматов с тремя состояниями, обладающими всеми указанными свойствами1. Заметим также, что «связанные» примеры из [12] используют алфавит, содержащий 2N букв, где N - число состояний соответствующего канонического автомата2.
Для проведения процедуры канонизации запишем данный автомат в виде табл. 1. А рассматривая содержимое клеток табл. 1 как состояния (а не множества состояний), мы получаем табл. 2.
Таблица 1
Таблица 2
1 При доказательстве мы использовали компьютерную программу, рассматривающую все автоматы с тремя состояниями. Возможно и «непереборное» доказательство на основе результатов статьи [11].
2 Конечно, эти примеры связаны с несколько иными предметными областями. Например, авторам вообще не известны монографии, где бы ставилась проблема дуговой минимизации.
Обозначив данные множества состояний как состояния нового автомата, мы получаем эквивалентный детерминированный автомат (табл. 3).
Таблица 3
Теперь получим множества эквивалентных состояний. Для этого рассмотрим бинарное отношение У , определенное на множестве, включающем, во-первых, все пары состояний Ь; во-вторых, специальный символ Т. Этот символ обозначает, что любая пара состояний, находящаяся с ним в отношении У, состоит из заведомо неэквивалентных состояний, причем этот факт известен с самого начала.
Для двух различных состояний О и Н полагаем {О, Н} У Т (мы будем ниже писать просто ОН вместо {О, Н}) тогда и только тогда, когда финальным является в точности одно из этих состояний. Для четырех состояний О1, Н1, О2 и Н2 (где О1 Ф Н1 и О2 Ф Н2) мы полагаем О1Н1 У О2Н2 (или О1Н1 У Н2О2, что то же самое), если существует по крайней мере одна буква с такая, что О1 ——> О2 и Н1 ——> Н2.
В данном примере для описания бинарного отношения У мы должны были бы использовать таблицу, имеющую 20 строк (для пар АВ, ..., Е¥) и 21 столбец (для тех же пар и символа Т). Но такая таблица слишком велика, поэтому мы будем использовать ее упрощение, используя, в частности, тот факт, что ни А, ни В не могут быть эквивалентны никаким другим состояниям:
• А - потому что оно финальное (в отличие от любого другого состояния);
• В - потому что оно не имеет выходящих из него а-дуг (также в отличие от других состояний), а бесполезных состояний в автомате нет.
Итак, рассмотрим таблицу с шестью строками (для пар СО,.,Е¥) и семью столбцами (табл. 4). В ее клетках вместо 1 и 0 мы записываем любой из двух подходящих переходов последнего автомата (этот факт символизирует, что отношение У истинно) или «-» (символизирующий отсутствие таких переходов, при этом отношение У ложно). Аналогично для последнего столбца: все состояния в этой таблице финальные, поэтому мы записываем возможный переход в А или В (которые не эквивалентны другим состояниям) для ровно одного из двух состояний рассматриваемой строки.
Запишем в пустых клетках 0, а в остальных 1; после этого, выполнив
транзитивное замыкание У+, получаем табл. 5. Согласно ее последнему
столбцу1, состояния С, Е и Е эквивалентны, а состояние В им не эквивалентно.
Таблица 4
>- СО СЕ се ОЕ ОЕ ЕЕ Т
со — с^-с П—Р. - — — — с—с г^в
СЕ - г—с Е — Р - - - -
С'Е - с—с Р—Е - - - -
ОЕ - - - - - п~в Е—Р
ОЕ - - - - - - Г)^В Р—С
ЕТ - - Е—Р Р—С - - -
Таблица 5
У + СО СЕ СГ ОЕ ОЕ ЕТ Т
со 0 1 1 0 0 0 1
СЕ 0 1 1 0 0 0 0
СЮ 0 1 1 0 0 0 0
ОЕ 0 0 0 0 0 0 1
ОЕ 0 0 0 0 0 0 1
ЕЕ 0 1 1 0 0 0 0
Объединяя состояния, мы из табл. 3 получим табл. 6 эквивалентного канонического автомата. В ней отмечены состояния исходного автомата в соответствии с табл. 2. Однако обычно необходимо и обратное соответствие, согласно которому мы получаем следующую функцию фш:
фК(1) = {А, С, В}, Ф£(2) ={С}, Ф£(3) ={Б, С, В}. (3)
Таблица 6
1 Отметим, что мы получаем несколько единиц на главной диагонали, но это не имеет значения.
Итак, на рис. 2 и 3 показаны автомат Ь и зеркальный к нему | .
Рис. 2 Рис. 3
Аналогично сделанному ранее запишем автомат в виде табл. 7.
Таблица 7
Рассматривая содержание клеток табл. 7 как состояния (а не множества состояний), получаем табл. 8. Переобозначив в ней множества состояний как состояния нового автомата, мы получаем эквивалентный детерминированный автомат (табл. 9)
Таблица 8
Рассмотрение этого примера (а именно построение бинарного отношения # и множества блоков рассматриваемого автомата) будет продолжено во второй части данной статьи.
3. О входных языках состояний базисного автомата
В этом разделе доказываются вспомогательные утверждения о входных языках состояний базисного автомата, необходимые для алгоритмов эквивалентного преобразования произвольных недетерминированных конечных автоматов.
Таблица 9
Утверждение 1. Для любого языка Ь и для любых состояний А е Qп и X е Qp (таких, что А#Х) выполнено следующее:
£ V) (А-) =£ ; (А) и £ оА( ь ) (X)=(£; (х»к. (4)
Доказательство. Докажем только первое равенство, второе получается аналогично. Условие £гвА{Ь)(х ) £ £Ь (А) непосредственно следует из определения автомата ВА(Ь). Поэтому достаточно доказать, что если для некоторого слова w верно wе £Ь (А), то и wе £ 1ва{Ь)(X ); докажем этот факт индукцией по ^\.
База индукции, ^\ = 0, т.е. w = е. В этом случае А = sж, поэтому (по определению базисного автомата) А е £Т, т.е. w = ее £ 1ва(Ь)(X ).
Шаг индукции. Пусть w = w’a, где w = w’a, w’е Е*, ае Е, и пусть w е £^(А). Поскольку A#X, существуют слова и, Vе Е*, такие что иуеЬ, и
при этом ие £Ь (А), Vяе £гг!к (X). Поскольку и для слова w выполнено условие ЬЬ wе £Ь (А), мы получаем, что wvе Ь, т.е. w’avе Ь.
Пусть состояние BеQж такое, что w’е£Ь (В), а Уе Qp - такое, что Vае £(У); оба эти состояния (В и У) существуют, поскольку w’avе Ь. Поэтому В#У, и согласно предположению индукции w’е £ва(Ь)(). А вследствие В —-—— "А мы получаем, что w е £ Ва(Ь) (А ). □
ВА( Ь) ' >
Утверждение 2. Пусть для некоторого регулярного языка Ь и определяющего его автомата (1) выполнены следующие условия: де Q, А е ф К (Q),
Xеф К (Q), v е £ К (дХ ие£ ВА( Ь) (X ) и wе £ ВА( Ь) (А ). Тогда для любого
г > 0 выполнено следующее: uVw е Ь.1
Доказательство. Поскольку Ае ф К (<0) и Xе ф К (Q), то существуют
слова х и у такие, что хе £ Ь (А) П £ К (д), уе £ (X) П £ тя (д). Поскольку
Ь Ь К
1 Важно отметить, что, вообще говоря, и 6 £ К (д) и w 6 £ (д).
ve LK (q), слово xVy принимается автоматом K (т.е. L э xVy^, а отсюда следует, что y(v1)RxRe Lr. Согласно утверждению 1 wRe LLr (X), поэтому
wR(V)RxReLR. Это означает, что xVweL. Также согласно утверждению 1 ue LL (A), поэтому uVw e L. □
Заключение
Опишем некоторые возможные проблемы для будущего решения:
1) подробное исследование сложности приведенного нами выше варианта алгоритма Хопкрофта. Фактически надо показать, что в случае отдельных алгоритмов для канонизации автомата и для построения вспомогательных объектов (вместо алгоритмов, рассматривавшихся в разделе 3) общая сложность вычислений возрастет;
2) формулировка достаточных условий возможного удаления дуги из рассматриваемого автомата с сохранением описываемого языка. Здесь имеются в виду условия, не требующие построения эквивалентных канонических автоматов (для заданного языка и полученного автомата);
3) доказательство того, что подобный процесс удаления дуг не может являться альтернативой алгоритму дуговой минимизации;
4) наоборот - формулирование условий для невозможности удаления конкретной дуги из заданного автомата1.
Авторы надеются, что возможное решение этих подзадач поможет решению различных проблем теории формальных языков и конечных автоматов.
Во второй части данной статьи будет продолжено подробное рассмотрение примера, начатого в первой части: в процессе выполнения процедуры канонизации автомата будут получены бинарное отношение # и множество блоков. Будут приведены два алгоритма объединения состояний недетерминированного автомата. На основе этих алгоритмов будут сформулированы сокращенный вариант алгоритма дуговой минимизации, а также алгоритм добавления дуги.
Список литературы
1. Melnikov, B. Edge-minimization of non-deterministic finite automata / B. Melnikov, A. Melnikova // The Korean J. Comp. and Appl. Math. - 2001. - V. 8, № 3. -Р. 469-479.
2. Melnikov, B. Some properties of the basis finite automaton / B. Melnikov,
A. Melnikova // The Korean J. Comp. and Appl. Math. - 2002. - V. 9, № 1. -Р. 131-150.
3. Melnikov, B. Possible edges of a finite automaton defining a given regular language /
B. Melnikov, N. Sciarini-Guryanova // The Korean J. Comp. and Appl. Math. - 2002. -V. 9, № 2. - Р. 475-485.
1 Нельзя утверждать, что множество дуг, которое может быть удалено, является дополнением множества дуг, которые удалять нельзя: в обеих этих подзадачах мы ищем достаточные условия. Отметим еще, что мы часто рассматриваем не конечный автомат, а специальную «автоматоподобную» структуру, подробнее см. [3]. И именно для таких структур нужны обе эти задачи.
4. Melnikov, B. A new algorithm of constructing the basis finite automaton / B. Melnikov, A. Melnikova // Informatica (Lithuanian Acad. Sci. Ed.). - 2002. - V. 13, № 3. - Р. 299-310.
5. Мельников, Б. Однозначные конечные автоматы / Б. Мельников // Известия Высших учебных заведений. Поволжский регион. Технические науки. - 2002. -№ 2. - С. 9-14.
6. Melnikov, B. Discrete optimization problems - some new heuristic approaches /
B. Melnikov // The 8th Int. Conf. on High-Perfomance Computing and Grid in Asia-Pacific Region, IEEE Comp. Soc. Press Ed. - 2005. - Р. 73-80.
7. Мельников, Б. Мультиэвристический подход к задачам дискретной оптимизации / Б. Мельников // Кибернетика и системный анализ (НАН Украины). -2006. - № 3. - Р. 32-42.
8. Hromkovte, J. Algorithmics for Hard Problems / J. Hromkovk // Introduction to Combinatorial Optimization, Randomization, Approximation, and Heuristics. - Springer, 2004. - 548 p.
9. Мельников, Б. Недетерминированные конечные автоматы / Б. Мельников. -Тольятти : Изд-во ТГУ, 2009. - 160 с.
10. Hopcroft, J. An n-log n algorithm for minimizing the states in a finite automaton / J. Hopcroft // The Theory of Machines and Computations / Z. Kohavi (ed.). - Academic Press, 1971. - Р. 189-196.
11. Мельников, Б . Алгоритмы эквивалентного преобразования недетерминированных конечных автоматов / Б. Мельников, М. Сайфуллина // Известия высших учебных заведений. Математика. - 2009. - № 4. - С. 67-71.
12. Брауэр, В. Введение в теорию конечных автоматов / В. Брауэр. - М. : Радио и связь, 1987. - 392 с.
Мельников Борис Феликсович
доктор физико-математических наук, профессор, кафедра прикладной математики и информатики, Тольяттинский государственный университет
E-mail: [email protected]
Мельникова Александра Александровна старший преподаватель, кафедра высшей математики, Димитровградский филиал Ульяновского государственного университета
E-mail: [email protected]
Melnikov Boris Felixovich Doctor of physical and mathematical sciences, professor, sub-department of applied mathematics and informatics, Tolyatti State University
Melnikova Alexandra Alexandrovna Senior lecturer, sub-department of higher mathematics, Dimitrovgrad branch of Ulyanovsk State University
УДК 519.178 Мельников, Б. Ф.
Многоаспектная минимизация недетерминированных конечных автоматов (Часть I. Вспомогательные факты и алгоритмы) / Б. Ф. Мельников, А. А. Мельникова // Известия высших учебных заведений. Поволжский регион. Физико-математические науки. - 2011. - № 4 (20). - С. 59-69.