УДК 519.178
С. В. Баумгертнер, Б. Ф. Мельников
ОБОБЩЕННЫЕ НЕДЕТЕРМИНИРОВАННЫЕ КОНЕЧНЫЕ АВТОМАТЫ
Аннотация. Рассматривается формализм, предназначенный для представления специального расширения класса конечных автоматов - так называемых обобщенных недетерминированных конечных автоматов. Из изложенных в статье алгоритмов эквивалентного преобразования определяемых нами автоматов и аналога теоремы Клини для них вытекает не столько эквивалентность их и обычных конечных автоматов (эта эквивалентность очевидна априори), сколько возможность определения операции дополнения (и вообще обобщенных регулярных выражений) обычными «автоматными» методами. Также в статье описан метод построения конкретного обобщенного автомата, который определяет заданное обобщенное регулярное выражение. Данный метод вытекает из доказательства аналога теоремы Клини. Представленные расширенные возможности для описания регулярных языков могут быть полезны в некоторых приложениях, например, в контекстном поиске.
Ключевые слова: недетерминированные конечные автоматы, обобщенные регулярные выражения, алгоритмы эквивалентного преобразования, аналог теоремы Клини.
S. V. Baumgertner, B. F. Mel'nikov GENERALIZED INDETERMINISTIC FINITE AUTOMATA
Abstract. The article considers the formalism used for representing a special class of extensions of finite automata, so-called generalized indeterministic finite automata. The described algorithms of equivalent transformations of such automata and also their analogue of Kleene theorem result in not only the equivalence between such and usual finite automata (such equivalence is obvious a priori), but also in the possibility of defining the complement operation (and, generally, the generalized regular expressions) by usual “automata” methods. The work also describes the construction method of the specific generalized automaton, which determines the given generalized regular expression. The given method results from the Kleene theorem analogue proving. Extended opportunities for regular languages description introduced in the article may be of use in several applications, e.g. in contextual search.
Key words: indeterministic finite automaton, generalized regular expressions, algorithms of equivalent transformation, analogue of Kleene theorem.
Введение
В данной статье рассматривается формализм, предназначенный для представления специального расширения класса недетерминированных конечных автоматов. Статья является обобщением нескольких предыдущих публикаций авторов [1-3]. При этом, кроме более подробного изложения рассмотренных в [1-3] понятий и доказанных фактов, в настоящей статье также описывается метод построения конкретного обобщенного автомата, который определяет (среди прочих) заданное обобщенное регулярное выражение. Этот метод построения фактически завершает описание рассматриваемого нами формализма.
Итак, мы будем рассматривать формализм для задания автоматов, применяемых для описания обобщенных регулярных выражений (generalized regular expressions), определяемых нами близко к [4]. С помощью предложенного формализма автоматы могут описывать не только операции, обычные для регулярных выражений, но и применяемую для обобщенных регулярных выражений операцию дополнения. Очевидно, что при этом мы описываем регулярные языки.
Такие расширенные возможности для описания регулярных языков (иными словами - расширение класса недетерминированных конечных автоматов) могут быть полезны в некоторых приложениях, в частности, в контекстном поиске. Посредством обобщенных конечных автоматов и обобщенных регулярных выражений можно, например, с помощью небольшого числа примитивов определить язык, который содержит все слова над рассматриваемым алфавитом - за исключением некоторого множества, определенного пользователем.
В данной статье сформулированы основные определения рассматриваемых формализмов, а также изложены алгоритмы преобразования для них. Из этих действий вытекает не столько их эквивалентность (она очевидна с самого начала), сколько возможность быстрого определения одного и того же класса регулярных языков; в первую очередь - определения операции дополнения «обычными автоматными методами».
Обобщенными регулярными выражениями (ОРВ) согласно [4] будем называть регулярные выражения, для которых дополнительно определена операция дополнения Подробнее: пусть задан алфавит Е, тогда:
1) ОРВ 0 определяет регулярный язык 0 ;
2) для каждой буквы аё! ОРВ а определяет регулярный язык {а}.
Далее, пусть р и q - обобщенные регулярные выражения, определяющие регулярные языки Р и Q соответственно, тогда:
3) ОРВ (р+4) определяет регулярный язык Р и Q ;
4) ОРВ (рц) определяет регулярный язык PQ;
5) ОРВ (р*) определяет регулярный язык Р*;
— *
6) ОРВ (~р) определяет регулярный язык Р = 2 \Р .
Определение 1. Обобщенное регулярное выражение - это то и только
то, что может быть образовано с помощью применения в каком-либо порядке перечисленных шести правил; при этом каждое из этих правил может быть применено любое (конечное) число раз.
Далее определим один из возможных вариантов обобщенного недетерминированного конечного автомата (ОНКА).
Определение 2. Назовем обобщенным недетерминированным конечным автоматом кортеж
где Q - конечное множество состояний автомата; Е - рассматриваемый алфавит; 5 - функция переходов 5: Q X (Е и {£}) ^ V^); £ с Q - множество стартовых состояний; ¥ с Q - множество финальных состояний; Т с N -
1. Основные определения и примеры
(1)
конечное множество, N - множество натуральных чисел; и ^ои - функ-
ции вида ^т, ^ои1: Q X Т ^ Q , для которых выполняются условия:
(Е т)(3^рЕ Q,q ф р) (^1П ( ) = р)
и
(V/ Е Т)(!q, рЕ Q, q Ф р) (<;ош (,/) = р).
Множество Т и функции , ^ои определяют языки-дополнения; ниже будет дано определение самих соответствующих языков.
Как и обычный конечный автомат, обобщенный конечный автомат может быть задан в виде помеченного орграфа. Определим граф переходов для автомата (1) следующим образом. Множества Q, £, ¥ и функция переходов 5 задаются аналогично графу переходов для обычного конечного автомата. Если д1П ^,/) = р, где q, р е Q, / ё Т , то в графе переходов имеется дуга из вершины q в вершину р, помеченная -/. Если ^ои (q,i ) = р, где q, р е Q,i ё Т, то
в графе имеется дуга из вершины q в вершину р, помеченная +/. Пример графа переходов обобщенного конечного автомата приведен на рис. 1.
Рис. 1. Пример графа переходов обобщенного конечного автомата
Определим язык, задаваемый ОНКА. Для любого / е Т рассмотрим состояния , //■, 1П/, ои1/ множества Q такие, что
^1П (Ч,/) = , ^ (,■ ) = ои^. (2)
Определение 3. Пусть О - обобщенный конечный автомат (1). Для не-
I (
которых £ , ¥ с Q обозначим
К(£,¥ ) = К(Q,!,5,£,¥ ). (3)
№ 2 (26), 2013 Физико-математические науки. Математика
Определение 4. Пусть О - ОНКА (1). Тогда К (О) = ^, £,5, £, ¥) будет соответствовать обычному конечному автомату.
Определение 5. Пусть О - обобщенный конечный автомат (1). Для
Vk Е Т обозначим °к = О ( ( 5, [як } {( }, Т-к , , ) , где
Т-к = Т \{к} ; (4)
О_к (q,i)=^1П ^,/) для всех qе Q, / е Т_к ;
О_и (q,i)=^ои1 (q,i) для всех qЕ Q, iЕ Т_к .
Определение 6. Язык С(О) автомата (1) определяется следующим образом:
С (G )= £ (Г (G) )U
У С((, {in,-}))С(Gi )С(K({out,-},F))
MT
(5)
Согласно определению 6 очевидно, что для любого обобщенного автомата О, определяемого согласно (1), задаваемый им язык С (О) регулярен.
Продолжим рассмотрение примера автомата, приведенного на рис. 1. Подробности построения соответствующего ОРВ согласно определению 6 опускаем; кратко скажем лишь, что язык этого ОНКА описывает множество слов над алфавитом {а, Ь}, в которых нет двух стоящих подряд букв Ь.
2. Построение обобщенного конечного автомата по заданному обобщенному регулярному выражению
Для «классических» регулярных выражений и конечных автоматов давно известно, что эти варианты представления регулярного языка эквивалентны. То есть для каждого конечного автомата существует регулярное выражение, задающее тот же язык, и наоборот.
Эквивалентность ОНКА и ОРВ следует просто из регулярности языка, определяемого согласно (5). Однако в этом и следующем разделах мы опишем конкретные алгоритмы построения ОНКА по заданному ОРВ (и наоборот, ОРВ по заданному ОНКА). Таким образом, мы получим возможность определения операции дополнения (и вообще обобщенных регулярных выражений) «обычными автоматными методами». При этом, как было отмечено выше, с помощью небольшого числа примитивов можно, например, определить язык, который содержит все слова над рассматриваемым алфавитом - за исключением некоторого множества (возможно, бесконечного, но обязательно регулярного), определенного пользователем.
Итак, сначала построим ОНКА, эквивалентный заданному ОРВ. Автомат будем строить по индукции. Обозначим через Ог автомат, эквивалентный выражению г. Поскольку любой автомат можно легко привести к эквивалентному автомату с одним входом и одним выходом, будем считать, что все построенные автоматы имеют ровно один вход и один выход.
Графы переходов для ОНКА О<^ и Оа показаны на рис. 2.
Рис. 2. Графы переходов автоматов О0 и Оа
Далее, пусть г и р - некоторые ОРВ, для которых уже построены эквивалентные автоматы
Эти автоматы изображены на рис. 3.
© 0
© ©
Рис. 3. Графы переходов автоматов Gr и Gp Тогда автоматы Gr+p и Grp построим согласно рис. 4:
Gr+p = Gr+p (Qr uQp uj^r+p}u{fr+p},2,5r u5p u8,{s
r+p },
j fr+p}T uTp,u;“ u?put),
где
6 : 6( + p , E) — sr , 6(sr+p, E) = s p, 6(fr , = fr+p, 6(fp, E) = fr+p ,
Grp = Grp (Qr uQp,(6r u6p u6,{sr},{/p},Tr uTp,v;pn, ;?ut u;put), здесь 6:6(fr,e) = Sp .
Рис. 4. Графы переходов автоматов Gr+p и G -,
Jrp
При этом будем считать, что Уґг є Тг,ґр є Тр :ґг Фґр, так как этого
условия легко добиться с помощью элементарных преобразований.
Автоматы Gr* и G~r построим согласно рис. 5:
Gr* = Gr* (r u{/r*}, [ 5r u5,{ir },{/r*},Tr ^Gr11 ,
-out
cr
где
5:5(/r,e) = sr,5/,e) = /r*,5(,e) = /*,
G~r = G~r [ ^{s~r}u(},(,5r,{s~r},{/~r},T u{/},-? uQin, cOut u-out),
здесь i = maxt+1, -in (s~r,-i) = sr , -°ut (/r,+i) = /~r ■
t є Tr
Корректность проведенных построений очевидна. Итак, мы привели индуктивный алгоритм построения эквивалентного ОНКА для заданного ОРВ.
3. Построение обобщенного регулярного выражения
по заданному обобщенному конечному автомату
Теперь докажем возможность построения ОРВ по заданному ОНКА,
т.е. фактически рассмотрим аналог теоремы Клини «в обобщенном случае».
При этом необходимы несколько следующих замечаний.
Во-первых, сама возможность построения следует из определения 6;
здесь же мы покажем возможность построения разных ОРВ (т.е. фактически
ОРВ, соответствующих заданному ОНКА, но с другими функциями -11 и
C°ut), что аналогично обычным доказательствам теоремы Клини [4-7].
Рис. 5. Графы переходов автоматов Ог* и О~г
Во-вторых, аналогия здесь далеко не полная: «в классическом случае» теорема Клини доказывает регулярность языка автомата - мы же, зная эту регулярность, заранее доказываем более простой факт, а именно корректность построения конкретных ОРВ.
Также отметим, что согласно материалу предыдущего раздела построенный ОНКА определяет, вообще говоря, несколько ОРВ, и при этом одно из них совпадает с заданным.
Как известно, в различных вариантах доказательства «обычной» теоремы Клини содержится не только доказательство регулярности языка, определяемого автоматом, но и алгоритм построения регулярного выражения по заданному автомату. Регулярное выражение при этом строится в соответствии с инъективной функцией, определяющей порядок состояний автомата. Для различных вариантов инъективной функции в результате получаются различные регулярные выражения, но все они определяют один и тот же регулярный язык - язык, задаваемый исходным конечным автоматом.
Аналогичные построения производятся и в нашем, «обобщенном» случае. При этом мы доказываем еще и то, что при разном порядке выбора вершин (для построения ОРВ по заданному ОНКА) мы получаем различные описания одного и того же регулярного языка. Значит, все построенные таким образом для данного ОНКА выражения эквивалентны и определяют тот же язык, что и автомат.
Итак, опишем аналогичный алгоритм построения обобщенных регулярных выражений по обобщенному конечному автомату в соответствии с инъективной функцией и докажем, что все построенные выражения определяют тот же регулярный язык, что и автомат. Будем обозначать такие выражения рт(О), где О - исходный автомат (1). При фиксированном т будем писать рО).
Для заданного автомата О рассмотрим произвольную инъективную
функцию т: Q _ Я + . Будем считать q < г, если т(д) <т(г). Зафиксируем на
данном этапе автомат О и функцию т .
Для каждой пары состояний 5, /е Q (возможно 5 = /), рассмотрим ав-
К5_ f = ( _(, ^ {f}), где
томат
Qs^ f ={s f} и Qsf,
Qsf = {q e QI q > max (s, f )}.
Функция переходов 5s^f строится следующим образом: p a—- r тогда и только тогда, когда p Я r,p e {s} и Qsf,r e {f} и Qsf .
Os . f О J J
f
Рассмотрим язык
——f = ^((s—f )U
U
U £ (—f ({s},{in i }) () )C (—f ({out,-},{,/}))
ieT
(6)
Если 5 = f , будем кратко обозначать и К5 соответственно. Тогда язык автомата О можно записать в виде
i \
N U s— f U U ^s—q • • Aq— f
seS, feF V q<min( s, f) /
• *f •
(7)
Далее построим регулярные выражения ps^f, ps , определяющие языки Cs^f и Cs . Сделаем это по индукции по T(min (s, f)). Для этого сначала для каждой пары состояний p, qe Q и i е T определим обобщенное регулярное выражение gi (p, q):
1) если p = ini, q = outi, то gi (p, q) =~ p(G;-), где Gi - автомат (4);
2) иначе gi (p,q) = 0.
При этих обозначениях определяем
g (p, q )= Yjgi (p, q).
ieT
Теперь запишем выражения ps^f, ps .
Если min(s, f) = qmax = max({q | qe Q}), то
(8)
Если 5 Ф f, то
p5—f = [а є 215 —f j +
Если 5 = f то
U p5—q ■ pq ■ pq—f
q>max( 5, f )
+ g (5, f ). (9)
Р 5 =
a є
Z| 5 —— 5 !•+U p5—q pq ■ pq—5 + g (5,5 )
J q>5
(10)
Чтобы построить выражения g(5, f), построим выражения gj (5, f) по индукции по і є T .
Пусть і = 1, тогда gi (p,q) = ~ p(i )=~ p(K({5i},^^/1>) . Выражение p( K ({51},{f_}) строится по алгоритму из «обычной» теоремы Клини.
Теперь предположим, что выражения gj (p, q) уже построены для всех значений j < і, тогда
gj(p,q)=Zp(K(},{inj}))■ gj(inj,outj)(K({outj},{fj}). (11)
j<j
Здесь выражения p(K(j},{in j})) и p(K({outj},{fi})) построены по теореме Клини, а gj (nj, out j) - по предположению индукции.
Таким образом, у нас есть алгоритм построения выражений g (5,f).
Пусть теперь известно, что все выражения из правых частей (9) и (10) уже построены. Тогда регулярное выражение, определяющее язык автомата (7), можно записать в виде
P(G)= U Р 5
sєS, fЄ-F
( ^ ps — f + U ps——q ■ pq ■ pq— f
q<min(5, f)
p f .
(12)
Из этого следует, что мы определили алгоритм построения обобщенного регулярного выражения по заданному автомату О в соответствии с некоторой инъективной функцией т, и полученные описанным образом все такие возможные выражения всегда определяют тот же язык, что и автомат О согласно определению 6. Итак, мы сформулировали алгоритм построения ОНКА по ОРВ, а также алгоритм построения ОРВ по ОНКА. В результате было доказано, что данные формализмы для описания регулярного языка эквивалентны.
Заключение
Итак, мы привели возможный подход к описанию обобщенных регулярных выражений с помощью расширения класса недетерминированных конечных автоматов. Отметим, что хотя определение обобщения автоматов мало похоже на рассматривавшееся в [5], но в то же время многие языки могут
быть определены этими двумя обобщениями с помощью практически одних и
тех же последовательностей примитивов.
Список литературы
1. Баумгертнер, С. Мультиэвристический подход к проблеме звездно-высотной минимизации недетерминированных конечных автоматов / С. Баумгертнер, Б. Мельников // Вестник Воронежского государственного университета. Серия: Системный анализ и информационные технологии. - 2010. - № 1. - C. 5-7.
2. Баумгертнер, С. Математическая модель автоматов для обобщенных регулярных выражений / С. Баумгертнер, Б. Мельников // Эвристические алгоритмы и распределенные вычисления в прикладных задачах : кол. моногр. - Тольятти : Изд-во ТГУ, 2012. - С. 16-23.
3. Баумгертнер, С. Аналог теоремы Клини для обобщенных недетерминированных конечных автоматов / С. Баумгертнер // Вектор науки Тольяттинского государственного университета. - 2012. - № 4 (22). - С. 23-25.
4. Саломаа, А. Жемчужины теории формальных языков / А. Саломаа. - М. : Мир, 1986. - 159 с.
5. Melnikov, B. Extended nondeterministic finite automata / B. Melnikov // Fundamenta Informaticae. - 2010. - Vol. 104, Т. 3. - Р. 255-265.
6. Melnikov, B. Some more on the finite automata / B. Melnikov, A. Vakhitova // J. of Applied Math. and Comp. (The Korean J. of Comp. Appl. Math.). - 1998. - Vol. 5, № 3. - Р. 495-506.
7. Melnikov, B. Once more on the edge-minimization of nondeterministic finite automata and the connected problems / B. Melnikov // Fundamenta Informaticae. -2010. - Vol. 104, № 3. - Р. 267-283.
References
1. Baumgertner S., Mel'nikov B. Vestnik Voronezhskogo gosudarstvennogo universiteta. Seriya: Cistemnyy analiz i informatsionnye tekhnologii [Voronezh state university bulletin. Series: System analysis and information technologies]. 2010, no. 1, pp. 5-7.
2. Baumgertner S., Mel'nikov B. Evristicheskie algoritmy i raspredelennye vychisleniya v prikladnykh zadachakh : kol. monogr. [Heuristic algorithms and distributed computing in applied problems: joint monograph]. Tolyatti: Izd-vo TGU, 2012, pp. 16-23.
3. Baumgertner S. Vektor nauki Tol’yattinskogo gosudarstvennogo universiteta [Science vector of Togliatti state university]. 2012, no. 4 (22), pp. 23-25.
4. Salomaa A. Zhemchuzhiny teorii formal’nykh yazykov [Pearls of the formal languages theory]. Moscow: Mir, 1986, 159 p.
5. Melnikov B. Fundamenta Informaticae. 2010, vol. 104, no. 3, pp. 255-265.
6. Melnikov B., Vakhitova A. J. of Applied Math. and Comp. (The Korean J. of Comp. Appl. Math.). 1998, vol. 5, no 3, pp. 495-506.
7. Melnikov B. Fundamenta Informaticae. 2010, vol. 104, no. 3, pp. 267-283.
Баумгертнер Светлана Викторовна
кандидат физико-математических наук, старший преподаватель, кафедра прикладной математики и информатики, Тольяттинский государственный университет (г. Тольятти, ул. Белорусская, 14)
E-mail: [email protected]
Baumgertner Svetlana Viktorovna Candidate of physical and mathematical sciences, senior lecturer, sub-department of applied mathematics and informatics, Togliatti State University (Togliatti,
14 Belorusskaya str.)
Мельников Борис Феликсович
доктор физико-математических наук, профессор, кафедра прикладной математики и информатики, Тольяттинский государственный университет (г. Тольятти, ул. Белорусская, 14)
E-mail: [email protected]
УДК 519.178 Бayмгeртнeр, С. В.
06о6щєнньіє нeдeтeрминирoвaнныe конєчньіє aB^Marai I С. В. Ба-
умгертнер, Б. Ф. Мельников II Известия высших учебных заведений. Поволжский регион. Физико-математические науки. - 20ІЗ. - № 2 (2б). -С. б4-74.
Mel'nikov Boris Feliksovich
Doctor of physical and mathematical sciences, professor, sub-department of applied mathematics and informatics, Togliatti State University (Togliatti,
14 Belorusskaya str.)