Autómatas finitos

Tomado de Sudkamp:
Languages and Machines
Cap. 6.

Autómatas Finitos
(determinísticos)

M=(,Q,,q0,F)
Alfabeto

Estado
inicial
Función de
transición

Conjunto
de
estados

a

b

q0

q1

q0

q1

q1

q2

q2

q2

q2


Q

Estados
finales

 :Q  Q
b a

q1

q0

a

b
b

a

q2

Funcionamiento del
M=(,Q,,q0,F)
autómata

 :Q  Q
*

 *  qi ,    qi

Palabras que
contienen a ab

b

a

q0

b

q1
a

b

*

a

 *  qi ,  u      *  qi ,   , u 

q2

L( M )    :  *  q0 ,    F 

*(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,]

Ejemplos q2 Palabras que contienen exactamente 2 a’s Palabras que contienen exactamente 3k b’s Lenguaje representado por la expresión aa*b q1 q0 q1 q0 q3 q2 b b a q0 q1 b aa q3 b q2 a .

Autómatas finitos no determinísticos q1 q0 q2 q1 q0 q1 q0 q2 q0 q2 q1 q2 q3 .

Autómatas finitos no determinísticos Palabras que empiezan por ab y terminan con ba q0 q1 q2 q5 q6 q3 q4 a(ba b(ab)*ba) .

q3 q3 q4 q4    ..q0.Q.F) q1 q0 q2 q0 q1 q2 a q1  q2 b  q2 q4 q3 q2.Autómatas finitos no determinísticos  : Q    (Q) M=(.

w)  q j   (qk .Q.q0.Autómatas finitos no determinísticos  : Q    (Q) M=(..F)  : Q    (Q) * * q j   (qi . u )) * qi * w qk u qj . wu )  qk (qk   (qi .

Autómatas FND  : Q    (Q) M=(..F)  : Q    (Q) * * L( M )  {w  * | q  F (q   * (qo . w))} .Q.q0.

Ejemplos AFND .

Ejemplos AFND (6. ab. aaabbb} {a b | 0  i  n} i i ¿ {a b | i  0} ? i i . aabb.6) {.4.

b a.q0.F) q10 b q11 b a..b b q10 b q11 a b b q0  L( M )  L( M 1 )  L( M 2 ) q12 a.b q20 q21 a b q21 a.Autómatas con transiciones  -AFN  : Q  (  {})  (Q) M=(.Q.b  q12 q20 a.b .

Clausura con -AFN M1 L( M )  L( M 1 ) L( M 2 ) M2 M1  Si M1 y M2 son -AFN existen -AFN tales que: L( M )  L( M 1 )  L( M 2 )    M2 L( M )  L( M 1 ) * .

Clausura con -AFN M1 L( M )  L( M 1 ) L( M 2 ) M2 q11  Si M1 y M2 son -AFN existen -AFN tales que: L( M )  L( M 1 )  L( M 2 ) L( M )  L( M 1 )  M1  M2   M1  * .

.Concluimos…. • Toda expresión regular tiene al menos un correspondiente -AFND que acepta exactamente las palabras correspondientes a la expresión.

 ))  Paso recursivo q    Cl (q ) k i La función de transición de entradas t para un -AFND se define así: t : Q    (Q) t (qi . a))   j q j  Cl ( qi ) . se construye recursivamente así: BASE: qi    Cl (qi ) (q j    Cl (qi )  qk   (q j . a )    Cl ( (q .Eliminando el indeterminismo La clausura Lambda. para cada estado qi.

q2  .q1.q1.6.Ejemplo 6.q2 b  q2 q2 c  q1.q2 b   c    q1 q2  q1 q2   q1  q2  q2  t q0 a q0.1 q0 a a a q2  q1 c b  q0 a q0.

. The set of accepting states of DM is F’={XQ’| X contiene algún elemento de F} . input transition fuction t of M 1.Algoritmo 6. repeat 2.. initialize Q’ to -Cl(q0) 2.3 Construction of DM.6.3 add an arc from X to Y labeled a else done:=true until done 3.1.F).2 if qi X Y  Q' then set Q': Q'{Y } 2.q0. a)  2.1 let Y  t (qi . a DFA Equivalent to NFA- M Input: an NFA- M=(Q.1 if there is a node XQ’ and a symbol a with no arc leaving X labeled a then 2.1.1.

q2 c  a.q1.q2  q1 b b.Ejemplo t q0 a q0.q2 a.q1.c q0 a c c q1.c q2 b b a b .b.q2 a a a q2  q2  c q2   b q0 q1 q2  q1.c a q0.

Grafos de expresiones a*ba*b q1 q0 a*ba*ba*ba* q2 q0 q2 (a*ba*ba*ba*)* q0 .

Eliminar el estado intermedio i j wji wik i k wji wik j k wii j wji i wik k j wji (wii)*wik i debe ser diferente de j y de k pero puede ser j=k k .

Situaciones finales w W* w1 w2 w4 w3 w1* w2(w3  w4w1*w2)* .

Grafos de expresiones ba*b q1 q0 q2 q0 q2 (a*ba*b)(a*  ba*ba*b)* .

Expresión de un AFND (ab)*bb (ab)* (ab)*aa (ab)* .

Gramática regular para un AFND S → aS| bB|  B → aB| bC C → aC| bS q1 q0 q2 .

Gramática para un AFND (cont) q0 q1 q2 q5 q3 q6 S → aB B → bC| ba C → aC| bC | ba S → aB B → bC| bD C → aC| bC | bE D→a E→a q4 S → aB B → bC| bD C → aC| bC | bE D → aF E → aG F→ G→ .

b q0 c q1 .b a.AFND para un gramática regular • Palabras sobre {a.b. S → aS| bS |cA A → aS| bS|  a.c} que contiene al menos una c pero no contienen cc.

Lenguajes regulares Expresiones Regulares AFD No son LR:  a b : i  0  a b a : i. j  0   :    * i i AFND i j i R Gramáticas Regulares  :    *       :    *   primo   R  .

v3.Pre-Lema de bombeo • Sea w1. Si existiera un autómata finito de k estados existen i<j tal que *(q0.v2.… 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.wj) y por tanto wivi y wjvj son acptadas.wi)=*(q0.w3.v4.….w2. y v1. contradicientdo las hipótesis.w4.

Aplicación • No son regulares: a b c | i. j  0 a b | i  0 a b | i  0 i j i i i i 2i .

v y w tales que |uv|<k+1 |v|>0 y Un autómata de k estados acepta infinitas uvnw para todo n palabras si y solo si acepta alguna  tal que está en L k< || < 2k .Lema de Bombeo q0 q1 qi Un autómata de k estados si acepta una palabra de longitud mayor que k acepta infinitas palabras qk Si |z|>k existen u.

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. 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 ! . tómese entonces una palabra z con longitud k2 .

. es un lenguaje regular ..lenguajes regulares.Propiedades de clausura Conjuntos finitos de palabras forman lenguajes regulares Unión de dos Concatenación de dos Intersección de dos Complemento de * de .