4
126 Вектор науки ТГУ. № 4 (22), 2012 математика Цыганов А.В. ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ... УДК 519.713 ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM © 2012 А.В. Цыганов, кандидат физико-математических наук, доцент Ульяновский государственный педагогический университет имени И. Н. Ульянова, Ульяновск (Россия) Ключевые слова: недетерминированные конечные автоматы; вершинная минимизация; базисный автомат; полный автомат; параллелизм; OpenMP; MPI. Аннотация: Базисный и полный автоматы являются инвариантами регулярного языка, применяющимися в алгоритмах минимизации недетерминированных конечных автоматов. В данной статье рассматриваются алгоритмы построения базисных и полных автоматов, реализованные в программе для минимизации недетерминированных конечных автоматов ReFaM. Приводятся описания алгоритмов и результаты численных экспериментов. ВВЕДЕНИЕ Приведем основные определения из теории конеч- ных автоматов и формальных языков, которые нам по- надобятся в дальнейшем (более подробную информа- цию можно найти, например, в [1]). Недетерминированным конечным автоматом (НКА) называется пятерка ) , , , , ( = F I Q A δ Σ , где Q — это ко- нечное множество состояний (вершин), Σ — конечный алфавит, Q Q 2 : Σ × δ — функция переходов (дуг), Q I и Q F — множества начальных и конечных состояний соответственно. НКА называется детерми- нированным (ДКА) тогда и только тогда, когда | I | = 1 и 1 |= ) , ( :| , a q a Q q δ Σ (или 1 | ) , ( | a q δ ). В теории формальных языков КА часто применяются для распознавания языков (множеств строк, состоящих из символов заданного алфавита), в связи с чем, их на- зывают автоматами-распознавателями, а языки, распоз- наваемые такими автоматами, называют регулярными. Два КА называют эквивалентными, если они распознают один и тот же язык. Для любого НКА с помощью проце- дуры детерминизации можно построить эквивалентный ему ДКА. Для данного языка зеркальным языком назы- вают язык, который состоит из всех “зеркальных” строк исходного языка (то есть записанных “задом наперед”), а для данного КА зеркальным автоматом будем называть такой автомат, который получается из него изменением направления дуг, при этом входные состояния стано- вятся выходными и наоборот. КА обычно изображают в виде ориентированного графа или таблицы переходов. Одной из важнейших задач теории КА является зада- ча их минимизации, например, по числу состояний (вер- шинная минимизация). В алгоритмах минимизации НКА важную роль играют автоматы, являющиеся инварианта- ми регулярных языков. Самым известным инвариантом регулярного языка является так называемый каноничес- кий автомат — минимальный (по числу состояний) ДКА, распознающий данный язык. В качестве примера другого инварианта можно привести универсальный автомат [2]. Как правило, в программном обеспечении для ра- боты с КА и родственными структурами, например, в AMORE [3], FSM [4], Grail [5], VAUCANSON [6], JFLAP [7] точные алгоритмы минимизации НКА не реализуются из-за их невысокой практической применимости, однако в них имеются процедуры для построения тех или иных инвариантов регулярных язы- ков. В данной работе будут рассмотрены алгоритмы и программная реализация, построения, так называемых базисного и полного автомата, описанных в [3], которые используются в некоторых алгоритмах минимизации НКА, реализованных в программе ReFaM. ОПРЕДЕЛЕНИЕ БАЗИСНОГО И ПОЛНОГО АВТОМАТОВ В статье [3] базисный и полный автомат для данного языка, заданного некоторым автоматом A определяются с помощью специального бинарного отношения #, ко- торое может быть записано в виде бинарной таблицы, однако строгое определение и описание алгоритма пост- роения этого отношения достаточно громоздки, поэтому мы рассмотрим лишь общую схему его построения. Пусть дан некоторый автомат A. Обозначим через A зеркальный ему автомат. Эти автоматы задают в об- щем случае разные языки (исходный и зеркальный), для которых мы построим канонические автоматы ) , , , , ( X X X X F I Q X δ Σ = и ) , , , , ( Y Y Y Y F I Q Y δ Σ = со- ответственно, то есть подвергнем их последовательно процедурам детерминизации и минимизации (Y при этом называют зеркальным каноническим автоматом). Заметим, что после выполнения процедур канонизации состояниями канонических автоматов являются подмно- жества состояний детерминированных автоматов, полу- ченных из автоматов A и A с помощью процедуры детер- минизации. Отношение # устанавливает соответствие между состояниями канонического автомата и зеркаль- ного канонического автомата. При этом строки таблицы отношения # соответствуют непустым состояниям кано- нического автомата, а столбцы — непустым состояниям зеркального канонического автомата. Если для какой либо строки i и столбца j пересечение соответствующих подмножеств является непустым множеством, то соот- ветствующей элемент таблицы помечается символом # (при этом рассматриваются только “непустые” состоя- ния канонических автоматов). В качестве примера, рассмотрим автомат A над ал- фавитом } , { b a = Σ , заданный таблицей переходов таб- лице 1. Канонический и зеркальный канонический автоматы X и Y приведены для него в таблицах 2 и 3 со-

УДК 519.713 ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ · PDF fileПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM

  • Upload
    vonhi

  • View
    239

  • Download
    0

Embed Size (px)

Citation preview

Page 1: УДК 519.713 ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ · PDF fileПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM

126 Вектор науки ТГУ. № 4 (22), 2012

математикаЦыганов А.В.ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ...

УДК 519.713

ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM

© 2012А.В. Цыганов, кандидат физико-математических наук, доцент

Ульяновский государственный педагогический университет имени И. Н. Ульянова, Ульяновск (Россия)

Ключевые слова: недетерминированные конечные автоматы; вершинная минимизация; базисный автомат; полный автомат; параллелизм; OpenMP; MPI.

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

ВВЕДЕНИЕПриведем основные определения из теории конеч-

ных автоматов и формальных языков, которые нам по-надобятся в дальнейшем (более подробную информа-цию можно найти, например, в [1]).

Недетерминированным конечным автоматом (НКА) называется пятерка

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

, где Q — это ко-нечное множество состояний (вершин),

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

— конечный алфавит,

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

— функция переходов (дуг),

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

и

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

— множества начальных и конечных состояний соответственно. НКА называется детерми-нированным (ДКА) тогда и только тогда, когда | I | = 1

и

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

(или

217

519.713

ReFaM

© 2012 . . , - ,

. . , ( )

: ; -; ; ; ; OpenMP; MPI.

:,

.,

ReFaM. -.

-, (

, , [1]). ( )

),,,,(= FIQA δΣ , Q — ( ), Σ — , QQ 2: →Σ×δ — ( ), QI ⊆ QF ⊆

— . - ( ) , 1|=| I

1|=),(:|, aqaQq δΣ∈∀∈∀ ( 1|),(| ≤aqδ ).

( , ),, - , , -

, . ,. -

., “ -

” ( “ ”), -, -

, -. -

.,

, ( ). -, -

).В теории формальных языков КА часто применяются

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

Одной из важнейших задач теории КА является зада-ча их минимизации, например, по числу состояний (вер-шинная минимизация). В алгоритмах минимизации НКА важную роль играют автоматы, являющиеся инварианта-ми регулярных языков. Самым известным инвариантом регулярного языка является так называемый каноничес-кий автомат — минимальный (по числу состояний) ДКА, распознающий данный язык. В качестве примера другого инварианта можно привести универсальный автомат [2].

Как правило, в программном обеспечении для ра-боты с КА и родственными структурами, например, в AMORE [3], FSM [4], Grail [5], VAUCANSON [6], JFLAP [7] точные алгоритмы минимизации НКА не реализуются из-за их невысокой практической

применимости, однако в них имеются процедуры для построения тех или иных инвариантов регулярных язы-ков. В данной работе будут рассмотрены алгоритмы и программная реализация, построения, так называемых базисного и полного автомата, описанных в [3], которые используются в некоторых алгоритмах минимизации НКА, реализованных в программе ReFaM.

ОПРЕДЕЛЕНИЕ БАЗИСНОГО И ПОЛНОГО АВТОМАТОВ

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

Пусть дан некоторый автомат A. Обозначим через

218

. — ( ) ,

. [2].

, -, , AMORE [3], FSM [4], Grail [5], VAUCANSON

[6], JFLAP [7] -,

. -, , -

, [3], ,

ReFaM.

[3] , -A -

#, ,-

, .A . A -

. ( -),

),,,,( XXXX FIQX δΣ= ),,,,( YYYY FIQY δΣ= , - (Y

). , --

,A A . # -

-. # -

, — . i

j, #

( “ ” -).

, A },{ ba=Σ , - 1. -

X Y 2 3 . # A 4 (

, -).

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

218

. — ( ) ,

. [2].

, -, , AMORE [3], FSM [4], Grail [5], VAUCANSON

[6], JFLAP [7] -,

. -, , -

, [3], ,

ReFaM.

[3] , -A -

#, ,-

, .A . A -

. ( -),

),,,,( XXXX FIQX δΣ= ),,,,( YYYY FIQY δΣ= , - (Y

). , --

,A A . # -

-. # -

, — . i

j, #

( “ ” -).

, A },{ ba=Σ , - 1. -

X Y 2 3 . # A 4 (

, -).

и

218

. — ( ) ,

. [2].

, -, , AMORE [3], FSM [4], Grail [5], VAUCANSON

[6], JFLAP [7] -,

. -, , -

, [3], ,

ReFaM.

[3] , -A -

#, ,-

, .A . A -

. ( -),

),,,,( XXXX FIQX δΣ= ),,,,( YYYY FIQY δΣ= , - (Y

). , --

,A A . # -

-. # -

, — . i

j, #

( “ ” -).

, A },{ ba=Σ , - 1. -

X Y 2 3 . # A 4 (

, -).

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

218

. — ( ) ,

. [2].

, -, , AMORE [3], FSM [4], Grail [5], VAUCANSON

[6], JFLAP [7] -,

. -, , -

, [3], ,

ReFaM.

[3] , -A -

#, ,-

, .A . A -

. ( -),

),,,,( XXXX FIQX δΣ= ),,,,( YYYY FIQY δΣ= , - (Y

). , --

,A A . # -

-. # -

, — . i

j, #

( “ ” -).

, A },{ ba=Σ , - 1. -

X Y 2 3 . # A 4 (

, -).

с помощью процедуры детер-минизации. Отношение # устанавливает соответствие между состояниями канонического автомата и зеркаль-ного канонического автомата. При этом строки таблицы отношения # соответствуют непустым состояниям кано-нического автомата, а столбцы — непустым состояниям зеркального канонического автомата. Если для какой либо строки i и столбца j пересечение соответствующих подмножеств является непустым множеством, то соот-ветствующей элемент таблицы помечается символом # (при этом рассматриваются только “непустые” состоя-ния канонических автоматов).

В качестве примера, рассмотрим автомат A над ал-фавитом

218

. — ( ) ,

. [2].

, -, , AMORE [3], FSM [4], Grail [5], VAUCANSON

[6], JFLAP [7] -,

. -, , -

, [3], ,

ReFaM.

[3] , -A -

#, ,-

, .A . A -

. ( -),

),,,,( XXXX FIQX δΣ= ),,,,( YYYY FIQY δΣ= , - (Y

). , --

,A A . # -

-. # -

, — . i

j, #

( “ ” -).

, A },{ ba=Σ , - 1. -

X Y 2 3 . # A 4 (

, -).

, заданный таблицей переходов таб-лице 1. Канонический и зеркальный канонический автоматы X и Y приведены для него в таблицах 2 и 3 со-

Page 2: УДК 519.713 ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ · PDF fileПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM

Вектор науки ТГУ. № 4 (22), 2012 127

математика Цыганов А.В.ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ...

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

Таблица 1. Таблица переходов автомата A.

a b

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

0 {0,1} {2}

1 {0}

2 {0}

Таблица 2. Таблица переходов канонического автомата X.

a b

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

x0

x1

x2

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

x1

x1

x0

x2

x0

Таблица 3. Таблица переходов зеркального канони-ческого автомата Y.

a b

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

y0

y1

y2

219

1.A.ab

↔ 0}1, 0{}2{1}0{2}0{

2.X.ab

↔0x1x2 x→1x1x0x

2 x0x

3.Y.ab

↔0 y1y2 y←1y1y0 y

2 y0 y

4. #. 01 2

0# # 1# # # 2 #

A) , , , , ( ) (BA BA BA BAF I Q A BAδ Σ = ) , , , , ( ) (COM COM COM COMF I Q A COMδ Σ =-

. #

. ) (A BA ) , (j iy x T,X iQ x∈,Y jQ y∈j iy x# (i-j-

# #). ) row(T xi=,) col(T yj=.BA δ-

.1 T2 T — Σ ∈a,- ) , (1 2a T TBA δ ∈,:

) row( ) ), (row(2 1T a T X= δ) col( ) ), (col(2 2T a T Y= δ.(1)BA I T∈,I T∈) row(,

) row(T ()X.,,BA F T∈,YI T∈) col(,

) col(T ()Y.

y1

y1

y0

y2

y0

Таблица 4. Таблица бинарного отношения #.

0 1 20 # #1 # # #2 #

Для автомата A его базисный и полный автоматы будем обозначать через

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

и

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

соответственно.Базисный автомат строится на основе таблицы от-

ношения # следующим образом. Множество состоя-ний автомата BA(A) состоит из всех пар T(x

i , y

i ) таких,

что

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

и

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

(то есть на пересечении i-й строки и j-го столбца таблицы отношения # стоит #). При этом будем писать x

i = row(T), y

i = col(T).

Функция

перехода

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

базисного автомата определяется следую-щим образом. Пусть T

1 и T

2 — два состояния базисного

автомата и

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

, положим

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

тогда и только тогда, когда:

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

и

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

(1)

Положим T

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

IBA

тогда и только тогда, когда row(T)

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

IX ,

то есть когда row(T) является (единственным) стартовым состоянием X. Аналогично, будем считать, что T

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

FBA

тог-да и только тогда, когда col(T)

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

IY

, то есть когда col(T) является (единственным) стартовым состоянием Y.

В таблице 5 приведена таблица переходов базисного автомата для рассматриваемого примера.

Таблица 5. Таблица переходов BA(A).

a b

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

b0 = (0,0) {b

4} {b

5}

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

b1 = (0,1) {b

2 ,b

3}

219

1.A.ab

↔ 0}1, 0{}2{1}0{2}0{

2.X.ab

↔0x1x2 x→1x1x0x

2 x0x

3.Y.ab

↔0 y1y2 y←1y1y0 y

2 y0 y

4. #. 01 2

0# # 1# # # 2 #

A) , , , , ( ) (BA BA BA BAF I Q A BAδ Σ = ) , , , , ( ) (COM COM COM COMF I Q A COMδ Σ =-

. #

. ) (A BA ) , (j iy x T,X iQ x∈,Y jQ y∈j iy x# (i-j-

# #). ) row(T xi=,) col(T yj=.BA δ-

.1 T2 T — Σ ∈a,- ) , (1 2a T TBA δ ∈,:

) row( ) ), (row(2 1T a T X= δ) col( ) ), (col(2 2T a T Y= δ.(1)BA I T∈,I T∈) row(,

) row(T ()X.,,BA F T∈,YI T∈) col(,

) col(T ()Y.

b2 = (1,0) {b

4} {b

1}

b3 = (1,1) {b

2 ,b

3}

b4 = (1,2) {b

0}

b5 = (2,1) {b

0 ,b

1}

Следующим важным понятием, которое требуется для определения полного автомата, является понятие грида (блока) таблицы отношения #. Пусть R — подмножество строк, а C — подмножество столбцов таблицы отношения #. Тогда декартово произведение R

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

C называется гри-дом (блоком), если оно удовлетворяет следующим двум условиям: 1) на пересечениях всех его строк и столбцов располагаются #; 2) множества R и C нельзя расширить без нарушения первого условия. Для рассматриваемого нами примера в табл. 4 имеется 3 грида: {1}

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

{0,1,2}, {0,1}

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

{0,1} и {0,1,2}

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

{1}.Состояниями полного автомата являются блоки таб-

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

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

, а также множества входных и выходных состояний. Пусть B — блок таблицы отношения #. Через row(B)

будем обозначать множество строк данного блока (неко-торое подмножество состояний канонического автомата X), а через col(B) — множество его столбцов (некоторое подмножество состояний канонического автомата Y). Функция переходов полного автомата определяется сле-дующим образом. Пусть B

1 и B

2 — два состояния (блока)

полного автомата, тогда

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

при одновре-менном выполнении следующих двух условий:

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

(2) и

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

Множества начальных и конечных состояний полно-го автомата определяются следующим образом: состоя-ние B является начальным, если row(B) содержит (единс-твенное) начальное состояние автомата X и конечным, если col(B) содержит (единственное) начальное состоя-ние автомата Y.

В таблице 6 приведена таблица переходов полного автомата для рассматриваемого примера.

Таблица 6. Таблица переходов COM(A).

a b

219

1.A.ab

↔ 0}1, 0{}2{1}0{2}0{

2.X.ab

↔0x1x2 x→1x1x0x

2 x0x

3.Y.ab

↔0 y1y2 y←1y1y0 y

2 y0 y

4. #. 01 2

0# # 1# # # 2 #

A) , , , , ( ) (BA BA BA BAF I Q A BAδ Σ = ) , , , , ( ) (COM COM COM COMF I Q A COMδ Σ =-

. #

. ) (A BA ) , (j iy x T,X iQ x∈,Y jQ y∈j iy x# (i-j-

# #). ) row(T xi=,) col(T yj=.BA δ-

.1 T2 T — Σ ∈a,- ) , (1 2a T TBA δ ∈,:

) row( ) ), (row(2 1T a T X= δ) col( ) ), (col(2 2T a T Y= δ.(1)BA I T∈,I T∈) row(,

) row(T ()X.,,BA F T∈,YI T∈) col(,

) col(T ()Y.

c0 = {1}

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

{0,1,2} {c0 ,c

1 ,c

2} {c

1 ,c

2}

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

c1 = {0,1}

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

{0,1} {c0 ,c

1 ,c

2} {c

2}

219

1. A .a b

↔ 0 }1,0{ }2{1 }0{2 }0{

2. X .a b

↔ 0x 1x 2x→ 1x 1x 0x

2x 0x

3. Y .a b

↔ 0y 1y 2y← 1y 1y 0y

2y 0y

4. #. 0 1 2

0 # # 1 # # # 2 #

A),,,,()( BABABABA FIQABA δΣ= ),,,,()( COMCOMCOMCOM FIQACOM δΣ= -

. #

. )(ABA ),( ji yxT, Xi Qx ∈ , Yj Qy ∈ ji yx # ( i - j -

# #). )row(Txi = ,)col(Ty j = . BAδ -

. 1T 2T — Σ∈a , - ),( 12 aTT BAδ∈ , :

)row()),(row( 21 TaTX =δ )col()),(col( 22 TaTY =δ . (1)BAIT ∈ , IT ∈)row( ,

)row(T ( ) X . ,, BAFT ∈ , YIT ∈)col( ,

)col(T ( ) Y .

c2 = {0,1,2}

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

{1} {c1 ,c

2}

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

АЛГОРИТМЫ ПОСТРОЕНИЯ БАЗИСНОГО И ПОЛНОГО АВТОМАТОВ

Рассмотрим теперь алгоритмы построения базисных и полных автоматов и некоторые аспекты их програм-мной реализации в программе ReFaM.

ReFaM (Rational Expressions and Finite Automata Minimization) — кросс-платформенная программа с от-крытым исходным кодом, написанная на языке C++, и предназначенная для минимизации НКА. ReFaM яв-ляется частью библиотеки параллельных метаэвристик HeO [10].

НКА в программе ReFaM описываются в формате XML. Например, автомату A из рассматриваемого при-мера соответствует описание, приведенное на рис. 1. Для работы с файлами XML в программе ReFaM используется XML-парсер RapidXml (http://rapidxml.sourceforge.net/).

Page 3: УДК 519.713 ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ · PDF fileПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM

128 Вектор науки ТГУ. № 4 (22), 2012

математикаЦыганов А.В.ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ...

<fa name=”A” symbols_num=”2” states_num=”3”> <symbols> <symbol id=”0”>a</symbol> <symbol id=”1”>b</symbol> </symbols> <states> <state id=”0”>0</state> <state id=”1”>1</state> <state id=”2”>2</state> </states> <initial>0</initial> <final>0</final> <delta> <transition src=”0” sym=”0” dst=”0”/> <transition src=”0” sym=”0” dst=”1”/> <transition src=”0” sym=”1” dst=”2”/> <transition src=”1” sym=”1” dst=”0”/> <transition src=”2” sym=”0” dst=”0”/> </delta> </fa>

Рис. 1. Описание автомата A на языке XML в программе ReFaM.

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

Алгоритм 1. Алгоритм построения базисного автомата.1. Построить канонические автоматы X и Y.2. Построить таблицу отношения #.3. Построить функцию переходов, используя условия (1).4. Разметить начальные и конечные состояния.Алгоритм 2. Алгоритм построения полного автомата.1. Построить канонические автоматы X и Y.2. Построить таблицу отношения #.3. Найти все гриды таблицы отношения #.4. Построить функцию переходов, используя условия (2).5. Разметить начальные и конечные состояния.В обоих алгоритмах шаг 1 имеет теоретически экс-

поненциальную сложность, но на практике канониза-ция НКА обычно выполняется достаточно быстро. Как показано далее, шаг 3 Алгоритма 2 всегда имеет экспо-ненциальную сложность, так как связан с полным пе-ребором всех подмножеств строк или столбцов таблицы отношения #, остальные шаги алгоритмов не приводят к комбинаторному взрыву, но их трудоемкость зависит от результатов выполнения шагов 1 (для обоих алгорит-мов) и 3 (для Алгоритма 2).

Построение канонического автомата X заключается в применении процедуры детерминизации к автомату A и последующей минимизации полученного ДКА, пост-роение зеркального канонического автомата Y выпол-няется аналогично, но для автомата A предварительно строится зеркальный автомат. Все эти операции явля-ются классическими. Для минимизация детермини-рованных автоматов в программе ReFaM используется алгоритм Хопкрофта.

Рассмотрим теперь третий шаг Алгоритма 2 — поиск всех гридов таблицы отношения # (см. Алгоритм 3).

Алгоритм 3. Поиск гридов.Для каждого k = 1,2,...,n, где n — число столбцов таблицы:1. Сгенерировать все возможные подмножества

столбцов таблицы из k элементов.2. Для каждого сгенерированного подмножества

столбцов C выбрать такое подмножество строк R, чтобы пересечения всех строк и столбцов содержали знак #.

3. Проверить, может ли подмножество C быть рас-ширено без нарушения предыдущего условия и, если нет, то добавить грид R

220

5 -.

5. )(ABA .a b

↔ )0,0(0 =b }{ 4b }{ 5b→ )1,0(1 =b },{ 32 bb← )0,1(2 =b }{ 4b }{ 1b

)1,1(3 =b },{ 32 bb)2,1(4 =b }{ 0b)1,2(5 =b },{ 10 bb

, -, ( ) #. R

— , C — #. CR × ( ),

: 1) #; 2) R C -

. . 4 3 : 2},1,{0{1}× , {0,1}1},{0 × {1}1,2},{0 × .

#, — ( ).

COMδ ,.

B — #. )row(B ( -

X ), )col(B — ( -Y ).

. 1B 2B — ( ) , ),( 12 aBB COMδ∈ -

:))row(),(())row(( 21 BaxBx X ⊆∈∀ δ ))col(),(())col(( 12 BayBy Y ⊆∈∀ δ . (2)

-: B , )row(B

( ) X ,)col(B ( ) Y .

6 -.

6. )(ACOM .a b

C к множеству найденных гридов.

Из приведенного алгоритма видно, что для нахожде-ния всех гридов требуется полный перебор всех непустых подмножеств столбцов таблицы отношения #. Кроме того, заметим, что шаги 2 и 3 этого алгоритма являются достаточно трудоемкими для больших таблиц. С целью уменьшения объема вычислений данный алгоритм на-хождения гридов “по столбцам” применяется в програм-ме, если число столбцов в таблице не превышает числа строк, в противном случае применяется аналогичный алгоритм «по строкам».

Приведем теперь верхнюю оценку числа состояний в базисном и полном автоматах. Если исходный автомат A имеет N состояний, то после процедуры канонизации число строк/столбцов, соответствующих непустым со-стояниям канонических автоматов, теоретически может равняться 2N-1 (на практике это число обычно значитель-но меньше). Отсюда легко получается верхняя оценка для числа состояний базисного автомата (числа знаков # в таблице) — (2N-1)2 и числа состояний полного автома-та (числа гридов таблицы) — 22N-1 -1. Несмотря на то, что приведенные теоретические оценки на практике обычно не достигаются, они дают представление о вычислитель-ной сложности рассматриваемых алгоритмов.

Учитывая вычислительную трудность построения полного автомата, в программе ReFaM с помощью техно-логий OpenMP и MPI распараллелена самая трудоемкая его часть — поиск гридов (шаг 3). Для генерации подмно-жеств строк (столбцов) в Алгоритме 3 применяется алго-ритм Чейза [11]. В OpenMP-версии программы также рас-параллелены основные циклы шагов 4 и 5 Алгоритма 2.

ЧИСЛЕННЫЕ ЭКСПЕРИМЕНТЫДля построения базисных и полных автоматов в про-

грамме ReFaM предусмотрены команды build_ba и build_com соответственно. Каждая команда имеет следующий формат: command in_dir out_dir. Программа сканирует все найденные в каталоге in_dir файлы с описаниями ав-томатов (в формате XML), обрабатывает их и записывает результаты в каталог out_dir.

Рассмотрим результаты построения базисных и пол-ного автоматов для случайной выборки из 1000 попарно неэквивалентных НКА без недостижимых и бесполезных состояний со следующими параметрами: число состоя-ний

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

, размер алфавита

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

, число начальных

состояний

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

, число конечных состояний

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

,

плотность переходов

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

, где

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

— чис-

ло переходов в автомате. Эксперименты проводились с использованием следующей программно-аппаратной конфигурации: Intel Core 2 Quad Q6600 @ 2.40 GHz, 4 Gb RAM, Microsoft Windows 7 Максимальная.

В таблице 7 представлены результаты статистичес-кой обработки характеристик построенных базисных и полных автоматов (

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ — среднее значение,

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ — сред-неквадратическое отклонение). Среднее время построе-ния обоих автоматов с использованием четырех потоков составило 0,5 сек.

Таблица 7. Статистические характеристики базисных и полных автоматов.

min max

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ B(A) COM(A) B(A) COM(A) B(A) COM(A) B(A) COM(A)

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

1 1 525 1329 100,73 76,87 84,58 116,94

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

1 1 22 667 8,11 34,39 3,74 49,58

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

1 1 21 774 7,96 33,75 3,69 48,58

223

, --

#. , , 2 3 -. -

“ ” -, ,

« ».

. A N ,/ ,

, 12 −N ().

( # ) — 2)12( −N

( ) — 12 12 −−N. -

,, -

.,

ReFaM OpenMP MPI — ( 3).

( ) 3 [11]. OpenMP- 4 5 -

2.

ReFaM - build_ba build_com .

: command in_dir out_dir. in_dir ( XML),

out_dir.

1000 :

5|| =Q , 3|| =Σ , 2|| =I , -

2|| =F , 3,0||||

||2 =

Σ=

QTD , ||T —

.- : Intel Core 2 Quad Q6600 @

2.40 GHz, 4 Gb RAM, Microsoft Windows 7 . 7 -

( μ — , σ

3 3 1680 1702035 316,26 20391,43 265,25 94326,42D 0,002 0,25 1,00 1,00 0,03 0,47 0,06 0,12

Page 4: УДК 519.713 ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ · PDF fileПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ В ПРОГРАММЕ ReFaM

Вектор науки ТГУ. № 4 (22), 2012 129

математика Цыганов А.В.ПОСТРОЕНИЕ БАЗИСНЫХ И ПОЛНЫХ АВТОМАТОВ...

ВЫВОДЫВ данной работе были рассмотрены определения и

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

Работа выполнена в рамках Государственных заданий Министерства образования и науки РФ (шифры 1.919.2011 и 6.3072.2011).

СПИСОК ЛИТЕРАТУРЫ1. Мельников Б.Ф. Недетерминированные конечные

автоматы. Тольятти: Изд-во ТГУ, 2009. 160 с.2. Polák L., Minimalizations of NFA using the universal

automaton // Int. J. Found. Comput. Sci., vol. 16, no. 5, pp. 999–1010, 2005.

3. Kell V., Maier A., Potthoff A. et al. AMORE: a system for computing automata, monoids and regular expressions // Proceedings of the 6th Annual Symposium on Theo-retical Aspects of Computer Science on STACS 89. New York, NY, USA: Springer-Verlag New York, Inc., 1989. Pp. 537–538.

4. Mohri M., Pereira F., Riley M. AT&T General-purpose finite-state machine software tools.

5. Raymond D.,Wood D. Grail: Engineering Automata in C++: Tech. Rep. HKUST-CS96-24: Hong Kong Uni-versity of Science and Technology, 1996.

6. Lombardy S., Poss R., Régis-Gianas Y., Sakarovitch J. In-troducing VAUCANSON // Implementation and Appli-cation of Automata, 8th International Conference, CIAA 2003, Santa Barbara, California, USA, July 16-18, 2003, Proceedings / Ed. by O. H. Ibarra, Z. Dang. Vol. 2759 of Lecture Notes in Computer Science. Springer, 2003. Pp. 96–107.

7. Rodger S.H. JFLAP: An Interactive Formal Languages and Automata Package. USA: Jones and Bartlett Publish-ers, Inc., 2006. ISBN: 0763738344.

8. Гергель В.П. Высокопроизводительные вычисле-ния дл многоядерных многопроцессорных систем. Учебное пособие. Нижний Новгород: Изд-во ННГУ им. Н. И. Лобачевского, 2010.

9. Гергель В.П. Теория и практика параллельных вы-числений. Изд-во Бином. Лаборатория знаний, Ин-тернет-университет информационных технологий, 2007. 424 с.

10. Цыганов А.В., Булычов О.И. HeO: библиотека ме-таэвристик для задач дискретной оптимизации // Программные продукты и системы. 2009. № 4. С. 148–151.

11. Chase P.J. Algorithm 382: Combinations of M out of N Objects [G6] // Communications of the Association for Computing Machinery 13:6:368, 1970.

CONSTRUCTION OF BASIS AND COMPLETE AUTOMATA USING ReFaM

© 2012A.V. Tsyganov, Candidate of Physical and Mathematical Sciences, Assistant ProfessorUlyanovsk State Pedagogical University Named After I. N. Ulyanov, Ulyanovsk (Russia)

Keywords: nondeterministic finite automata; state minimization; basis automaton; complete automaton; parallel-ism; OpenMP; MPI.

Annotation: Basis and complete automata are invariants of a regular language which are used in nondetermin-istic finite automata minimization algorithms. In the present paper we consider algorithms for constructing basis and complete automata which are implemented in a software tool for minimizing nondeterministic finite automata called ReFaM. We provide the description of the algorithms as well as the results of the nu-merical experiments.