330 likes | 518 Views
Autómatas finitos. Tomado de Sudkamp: Languages and Machines Cap. 6. Estados finales. Estado inicial. Conjunto de estados. Función de transición. q 0. q 1. q 0. Q. a. q 1. q 1. q 2. b. a. b. q 2. q 2. q 2. q 2. q 1. q 0. b. a. Autómatas Finitos (determinísticos).
E N D
Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6.
Estados finales Estado inicial Conjunto de estados Función de transición q0 q1 q0 Q a q1 q1 q2 b a b q2 q2 q2 q2 q1 q0 b a Autómatas Finitos (determinísticos) M=(,Q,,q0,F) Alfabeto a b
a b a b q0 q2 q1 b a M=(,Q,,q0,F) Funcionamiento del autómata Palabras que contienen aab *(aab,q1)= (*(aa,q1),b)= ( (*(a,q1),a),b)= (( (*(,q1),a),a),b)= (( (q1,a),a),b)= (( q1,a),b)= ( q1,b)= q2 [q1,aab][q1,ab][q1,b][q2,]
b b b a a b a a q3 q0 q1 q3 q0 q0 q1 q2 q1 q2 q2 Ejemplos Palabras que contienen exactamente 2 a’s Palabras que contienen exactamente 3k b’s Lenguaje representado por la expresión aa*b
q1 q0 q2 q1 q0 q2 q1 q2 q3 q0 q1 q2 q0 Autómatas finitos no determinísticos
q1 q0 q2 q4 q3 q5 q6 Autómatas finitos no determinísticos Palabras que empiezan por ab y terminan con ba a(bawb(awb)*ba)
q1 q0 q2 q4 q3 Autómatas finitos no determinísticos M=(,Q,,q0,F) q0 q1q2 q3 q4 a q1 q2q4 b q2 q2,q3
Autómatas finitos no determinísticos M=(,Q,,q0,F) qi qk qj w u
Autómatas FND M=(,Q,,q0,F)
Ejemplos AFND (6.4.6) {, ab, aabb, aaabbb} ¿ ?
q21 a a q20 q20 q21 q10 q10 q11 q11 b b q12 q12 b b b b a,b b b a,b a,b a,b a,b q0 Autómatas con transiciones -AFN M=(,Q,,q0,F)
M1 M2 M1 M2 Clausura con -AFN Si M1 y M2 son -AFN existen -AFN tales que:
M1 M2 M1 M2 Clausura con -AFN Si M1 y M2 son -AFN existen -AFN tales que: q11 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 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í:
q0 a q2 a b c a q1 q0 q1q2 aq0,q1,q2 b q2 c q1 q2 t q0 q1q2 aq0,q1,q2 b q2 q2 c q1,q2 Ejemplo 6.6.1
2.1.1 let 2.1.2 ifthen set Algoritmo 6.6.3 Construction of DM, a DFA Equivalent to NFA- M Input: an NFA-M=(Q,,,q0,F). input transition fuction tofM 1. initializeQ’to-Cl(q0) 2. repeat until done 2.1 ifthere is a nodeXQ’and a symbolawith no arc leaving Xlabeledathen 2.1.3 add an arc fromXtoYlabeleda elsedone:=true 3. The set of accepting states of DM is F’={XQ’| X contiene algún elemento de F}
t q0 q1q2 aq0,q1,q2 b q2 q2 c q1,q2 q0 a q2 a a,b,c b,c c b q0 a q1 a,c a a a q2 b q0,q1,q2 b c b q1,q2 c Ejemplo
a*ba*b q1 q0 q2 q0 q2 q0 Grafos de expresiones a*ba*ba*ba* (a*ba*ba*ba*)*
wji wik wji wik i k k j j wii wji (wii)*wik wji wik k j i k j Eliminar el estado intermedio i i debe ser diferente de j y de k pero puede ser j=k
w w1 w3 w2 w4 Situaciones finales W* w1* w2(w3 w4w1*w2)*
ba*b q1 q0 q2 q0 q2 Grafos de expresiones (a*ba*b)(a* ba*ba*b)*
Expresión de un AFND (ab)*bb (ab)* (ab)*aa (ab)*
q1 q0 q2 Gramática regular para un AFND S → aS| bB| B → aB| bC C → aC| bS
q1 q0 q2 q4 q3 q5 q6 Gramática para un AFND (cont) S → aB B → bC| bD C → aC| bC | bE S → aB D → aF B → bC| bD S → aB E → aG C → aC| bC | bE B → bC| ba F → D → a C → aC| bC | ba G → E → a
a,b a,b c q1 q0 AFND para un gramática regular • Palabras sobre {a,b,c} que contiene al menos una c pero no contienen cc. S → aS| bS |cA A → aS| bS|
Lenguajes regulares Expresiones Regulares No son LR: AFD AFND Gramáticas Regulares
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 wivjpertenece 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:
q1 q0 qi qk Lema de Bombeo Si |z|>k existen u,v y w tales que |uv|<k+1|v|>0 y uvnw para todo n está en L 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
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 k2y (k+1)2 no hay ningún cuadrado perfecto !
Propiedades de clausura Conjuntos finitos de palabras forman lenguajes regulares Unión de dos Concatenación de dos ...lenguajes regulares, es un lenguaje regular Intersección de dos Complemento de * de