Def.5. Niedeterministycznym automatem skończonym (NAS

Transkrypt

Def.5. Niedeterministycznym automatem skończonym (NAS
NIEDETERMINISTYCZNY AUTOMAT SKOŃCZONY
NAS
-
Def. Niedeterministycznym automatem skończonym (NAS) nazywamy
układ
M  , Q, Q0 ,  , F 
gdzie
–  jest skończonym alfabetem (    )
– Q jest skończonym zbiorem (stanów) ( Q   )
– Q0  Q (zbiór stanów początkowych)
–  : Q    PQ (funkcja przejścia, program),
PQ  X : X  Q – zbiór potęgowy zbioru Q
– F  Q (zbiór stanów końcowych)
● Funkcja przejścia  : Q    PQ
 q, s   zbiór stanów, do których może przejść automat będący w
stanie q po wczytaniu symbolu s.
~
● Funkcję  rozszerzamy do funkcji  : PQ    PQ :
 X , s 
~
 q, s  .
q X
  X , s   zbiór stanów, do których może dojść automat z funkcją
przejścia  po wczytaniu symbolu s, jeżeli stan bieżący jest jakimś
~
stanem ze zbioru X.
~
● Następnie funkcję  rozszerzamy do funkcji ˆ : PQ     PQ  :

ˆ X ,    X

~

ˆ X , xs   ˆ X , x , s


ˆ X , x  = zbiór stanów, do których może dojść automat z funkcją
przejścia  po wczytaniu słowa x, jeżeli zaczyna od jakiegoś stanu ze
zbioru X.
Def. Niech M  , Q, Q0 ,  , F  będzie NAS. Język akceptowany
przez automat M:


LM   x    : ˆQ0 , x   F  
Def. Konfiguracja automatu NAS.
Konfiguracją automatu nazywamy uporządkowaną parę
 q, w ,
gdzie
q  Q - bieżący stan maszyny,
w   - łańcuch pozostały do wczytania.
Na konfiguracjach określamy funkcję:


| nd
M :Q  Q
służącą do śledzenia obliczeń automatu następująco:
 qi , sw 
| nd
M
 q j , w ,
qi , q j  Q , s   , w  
gdzie q j   qi , s  .
Konfiguracja początkowa:
 q, w , gdzie q  Q0 , w  
Konfiguracja końcowa:
 q,  
lub
 q, sv , gdzie  q, s   
Konfiguracja akceptująca:
 q,  , gdzie q  F
Def. Obliczenie.
Obliczeniem dla łańcucha w  a1a2 an jest ciąg
konfiguracji:
nd
nd
 q0 , a1a2 an  |nd
M  qi1 , a2  an  | M  | M  q  qin ,  
,
Oznaczenie:
 q0 , w 
|Mnd
 q,   .
Jeżeli q0  Q0 i q  F , to obliczenie jest akceptujące, tzn.
automat M akceptuje łańcuch w.
--------------------------------------------------------------------------Def. Język akceptowany przez automat M:

LM   x  : istnieje q0  Q0 i istnieje obliczenie
akceptujące rozpoczynające się w
konfiguracji  q0 , x  
Równoważność automatów
Def. Automaty M i N są równoważne wtedy i tylko wtedy,
gdy akceptują te same języki, tzn. LM   L N .
Przekształcenie automatu NAS w równoważny DAS.
Konstrukcja potęgowa.
NAS: N  , Q, Q0 ,  , F  .
~ ~
DAS: M  , PQ  , Q0 ,  , F ,
gdzie
~
F  X  Q : X  F  
~
 : PQ     PQ  ,
  X , a 
~
  q, a 
q X
W praktyce jako zbiór stanów automatu M wybieramy zbiór
~
Q  X  PQ  : stan X jest osiągalny w M ze stanu Q0 
Def. Stan q j  Q nazywamy nieosiągalnym w M ze stanu qi ,
jeżeli nie istnieje słowo x  * , takie że
 qi , x 
|M
 q j , 
NIEDETERMINISTYCZNY AUTOMAT SKOŃCZONY
Z PUSTYMI PRZEJŚCIAMI - NAS
NAS = NAS
z funkcją przejścia
 : Q       PQ.
Zatem, niektóre instrukcje dopuszczają zmianę stanu bez
wczytania symbolu z łańcucha wejściowego.
Dla X  Q określamy zbiór X  Q jako zbiór tych
wszystkich stanów, do których można dojść od stanów ze
zbioru X pewną (może zerową) liczbą pustych przejść.
Definicja indukcyjna:
X 0  X

 X n 1  X n    q,  

qX n
Musi istnieć takie n, że X n  X n1 .
Przyjmujemy X  X n .
~
Funkcje  , ˆ dla NAS  określamy następująco:
  X , a 
~
  q, a 
,
qX

ˆ X ,    X
.

~ ˆ
ˆ

  X , xa      X , x , a


Język akceptowany przez NAS  - M:


LM   x  : ˆQ0 , x   F   .
NAS równoważny NAS 
NAS  : M  , Q, Q0 ,  , F  .
NAS: N  , Q, Q0 , 1, F ,
gdzie 1 q, a    q, a .

Podobne dokumenty