Autómatas finitos
description
Transcript of Autómatas finitos
Autómatas finitos
Tomado de Sudkamp:
Languages and Machines
Cap. 6.
Q q0
q1
q2
Autómatas Finitos (determinísticos)
M=(,Q,,q0,F)
Alfabeto
Conjunto de estados
Estado inicial
Estados finales
Función de transición : Q Q
a b
q0q2
q1a
a
ab
b
b
q1
q2
q0
q2
q2
q1
Funcionamiento del autómata
q0q2
q1a
a
ab
b
b
M=(,Q,,q0,F)
* ,i iq q
* , * , ,i iq u q u
*(aab,q1)= (*(aa,q1),b)= ( (*(a,q1),a),b)= (( (*(,q1),a),a),b)=
(( (q1,a),a),b)= (( q1,a),b)= ( q1,b)= q2
0( ) : * ,L M q F
Palabras que contienen a ab
QQ ** :
[q1,aab][q1,ab][q1,b][q2,]
Ejemplos
Palabras que contienen exactamente 2 a’s
Palabras que contienen exactamente 3k b’s
Lenguaje representado por la expresión aa*b
q0
ab
a
q1
b
q3
ab
a
q2
b
q1
q0q2
q1
q2
q3
q0
Autómatas finitos no determinísticos q1
q0q2
q1
q0q2
q1
q2
q3
q0
q1
q2
q0
Autómatas finitos no determinísticos
Palabras que empiezan por ab y terminan con ba
q1
q2
q0
q4q3q5
q6a(ba b(ab)*ba)
Autómatas finitos no determinísticos
M=(,Q,,q0,F) )(: QQ
q1
q2
q0
q4q3
q0 q1 q2 q3 q4
a q1 q2 q4
b q2 q2,q3
Autómatas finitos no determinísticos
)(: QQ M=(,Q,,q0,F)
)),(),((),( ** uqqwqqqwuqq kjikkij
qi qk qjw u
Autómatas FND
)(: QQ M=(,Q,,q0,F)
))},((|{)( ** wqqFqwML o
Ejemplos AFND
Ejemplos AFND (6.4.6)
}0|{ iba ii
}0|{ niba ii {, ab, aabb, aaabbb}
?¿
Autómatas con transiciones -AFN
)(}){(: QQ M=(,Q,,q0,F)q21
a
bq20
b
q12
a,b
q10
a,b
b bq11
q12
a,b
q10
a,b
b bq11
q21
a,b
a
bq20
b
q0
)()()( 21 MLMLML
Clausura con -AFN
)()()( 21 MLMLML )()()( 21 MLMLML
Si M1 y M2 son -AFN existen -AFN tales que:
*1)()( MLML
M1
M2
M1
M2
Clausura con -AFN
)()()( 21 MLMLML )()()( 21 MLMLML
q11
Si M1 y M2 son -AFN existen -AFN tales que:
*1)()( MLML
M1
M2
M1M2
M1
Concluimos….
• Toda expresión regular tiene al menos un correspondiente -AFND que acepta exactamente las palabras correspondientes a la expresión.
Eliminando el indeterminismo
)( ii qClq
)(
)),()((
ik
jkij
qClq
qqqClq
)(: QQt
La clausura Lambda, para cada estado qi, se construye recursivamente así:
BASE:
Paso recursivo
La función de transición de entradas t para un
-AFND se define así:
)(
)),((),(ij qClq
ji aqClaqt
Ejemplo 6.6.1
ba
q2q0a
a
q1
c
q0 q1 q2
a q0,q1,q2
b q2
c q1 q2 t q0 q1 q2
a q0,q1,q2
b q2 q2
c q1,q2
Algoritmo 6.6.3Construction of DM, a DFA Equivalent to NFA- M
Input: an NFA- M=(Q,,,q0,F). input transition fuction t of M
1. initialize Q’ to -Cl(q0)
2. repeat
until done
2.1 if there is a node XQ’ and a symbol a with no arc leaving X labeled a then
Xq
i
i
aqtY
),(2.1.1 let
}{':' YQQ 'QY 2.1.2 if then set
2.1.3 add an arc from X to Y labeled a
else done:=true
3. The set of accepting states of DM is F’={XQ’| X contiene algún elemento de F}
Ejemplo
ba
q2q0a
a
q1
c
t q0 q1 q2
a q0,q1,q2
b q2 q2
c q1,q2
q0
q0,q1,q2
a
b,ca,b,c
a
q2
b
q1,q2
c
a,c
b
b
a
c
Grafos de expresiones
q1
q0q2 q0
q2
a*ba*b
q0
a*ba*ba*ba*
(a*ba*ba*ba*)*
Eliminar el estado intermedio i
i kjwji wik wik
j kwji
ijwji kwik
wii
(wii)*wikj k
wji
i debe ser diferente de j y de k pero puede ser j=k
Situaciones finales
wW*
w1 w3
w4
w2w1* w2(w3 w4w1*w2)*
Grafos de expresiones
q1
q0q2 q0
q2
ba*b
(a*ba*b)(a* ba*ba*b)*
Expresión de un AFND
(ab)*bb (ab)* (ab)*aa (ab)*
Gramática regular para un AFND
q1
q0q2
S → aS| bB| S → aS| bB| B → aB| bCB → aB| bC
C → aC| bSC → aC| bS
Gramática para un AFND (cont)
q1
q2
q0
q4q3q5
q6
S → aBS → aB
B → bC| bDB → bC| bD
C → aC| bC | bEC → aC| bC | bE
D → aFD → aF
E → aGE → aG
F → F → G → G →
S → aBS → aB
B → bC| bDB → bC| bD
C → aC| bC | bEC → aC| bC | bED → aD → a
E → aE → a
S → aBS → aB
B → bC| baB → bC| ba
C → aC| bC | baC → aC| bC | ba
AFND para un gramática regular
• Palabras sobre {a,b,c} que contiene al menos una c pero no contienen cc.
S → aS| bS |cAS → aS| bS |cA
A → aS| bS| A → aS| bS|
q1q0
a,b
a,b
c
Lenguajes regulares
AFD
AFND
Expresiones Regulares
Gramáticas Regulares
No son LR:
: *R
: * R : * primo
: 0i ia b i
: , 0i j ia b a i j
Pre-Lema de bombeo
• Sea w1,w2,w3,w4,…. y v1,v2,v3,v4,… sucesiones infinitas de palabras.
• Si L es un lenguajes tal que wivj pertenece a L si y sólo sí i=j.
• Entonces L no es regular.
Si existiera un autómata finito de k estados existen i<j tal que *(q0,wi)=*(q0,wj) y por tanto wivi y wjvj son acptadas, contradicientdo las hipótesis.
Aplicación
• No son regulares:
0| iba ii
0|2 iba ii
0,| jicba iji
Lema de Bombeo
q1q0 qiqk
Un autómata de k estados si acepta una palabra de longitud mayor que k acepta infinitas palabras
Un autómata de k estados acepta infinitas palabras si y solo si acepta alguna tal que k< || < 2k
Si |z|>k existen u,v y w tales que
|uv|<k+1 |v|>0 y
uvnw para todo n está en L
Aplicación
• Las palabras cuya longitud es un cuadrado perfecto no forman un lenguaje regular.
Supóngase que un autómata de k estados acepta tal lenguaje, tómese entonces una palabra z con longitud k2 , entonces
z=uvw
con |uv|k o sea |v|k y además uv2w es aceptada por el autómata,
Pero |uv2w| no puede ser cuadrado perfecto pues:
|uv2w|= |uvw|+|v|=k2+|v| k2+k<(k+1)2
Entre k2 y (k+1)2 no hay ningún cuadrado perfecto !
Propiedades de clausura
...lenguajes regulares, es un lenguaje regular
Intersección de dos
Unión de dos
Concatenación de dos
Complemento de
* de
Conjuntos finitos de palabras forman lenguajes regulares