Vous êtes sur la page 1sur 33

Autómatas finitos

Tomado de Sudkamp:
Languages and Machines
Cap. 6.
M=(,Q,,q0,F) Autómatas Finitos
(determinísticos)
Alfabeto
Estados
Estado
finales
inicial
Conjunto Función de
de
estados
transición
 :Q  Q
 a b b a q1 a
b
q0 q1 q0
Q q1 q1 q2 q0 b q2
a
q2 q2 q2
Funcionamiento del
M=(,Q,,q0,F)
autómata
 :Q  Q
* *

 *  qi ,    qi
Palabras que
contienen a ab

 *  qi , u     *  qi ,   , u 
b a
q1 b
a

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

*(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,]
q0 q1
Ejemplos q2

Palabras que contienen q1 q3


exactamente 2 a’s

q0 q2
Palabras que contienen
exactamente 3k b’s b

b a q1 b
Lenguaje representado por la
expresión aa*b q0 b aa q2

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

q1

q0 q1
q0 q2 q2
q0 q1
q2

q3
Autómatas finitos no
determinísticos
Palabras que empiezan por ab y
terminan con ba

q0 q1
q2 q4
q3
q5

q6
a(ba wb(awb)*ba)
Autómatas finitos no
determinísticos
M=(,Q,,q0,F)  : Q    (Q)
q0 q1
q2 q4
q3

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

q j  (qi , wu)  qk (qk  (qi , w)  q j  (qk , u))


* *

qi qk qj
w u
Autómatas FND

M=(,Q,,q0,F)  : Q    (Q)
 : Q   (Q)
* *

L( M )  {w  * | q  F (q   * (qo , w))}
Ejemplos AFND
Ejemplos AFND (6.4.6)

{, ab, aabb, aaabbb} {a b | 0  i  n}


i i

¿ {a b | i  0} ?
i i
Autómatas con transiciones 
-AFN
M=(,Q,,q0,F)  : Q  (  {}) (Q)
b a
q10 b q11 q12 q20 q21
b

a,b b
a,b
q10 b b q12
q11

q0
a,b
a,b

a
q20 q21
L(M )  L(M1 )  L(M 2 ) b

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

M1
 

 

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

 M1  
M2


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: qi    Cl (qi )
Paso (q j    Cl (qi )  qk   (q j ,  )) 
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)     Cl ( (q , a))j

q j  Cl ( qi )
Ejemplo 6.6.1
 q0 q1 q2
a q0,q1,q2  
q0 a q2
a
b   q2

c  q1 
a q1 b
  q2 

c
t q0 q1 q2
a q0,q1,q2  
b  q2 q2
c  q1,q2 
Algoritmo 6.6.3
Construction 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
2.1 if there is a node XQ’ and a symbol a with no arc leaving X labeled a then
2.1.1 let Y  t (qi , a)
Q': Q'{Y }
qi X
2.1.2 if Y  Q ' then set
2.1.3 add an arc from X to Y labeled a
else done:=true
until done
3. The set of accepting states of DM is F’={XQ’| X contiene algún elemento de F}
Ejemplo t
a
q0
q0,q1,q2
q1

q2

b  q2 q2
c  q1,q2 
q0 a q2
a

a,b,c
b b,c 
a q1 q0

a,c
c a a a
q0,q1,q2 q2 b
b
c
b

q1,q2

c
Grafos de expresiones
a*ba*ba*ba*
q1 a*ba*b

q2 q2 q0
q0 q0

(a*ba*ba*ba*)*
Eliminar el estado intermedio i
wji wik wji wik
j i k j k

wii
wji wik wji (wii)*wik
j i k j k

i debe ser diferente de j y de k pero puede ser j=k


Situaciones finales
w
W*

w1 w3
w2
w1* w2(w3 w w4w1*w2)*
w4
Grafos de expresiones
q1 ba*b

q0 q2 q2
q0

(a*ba*b)(a* w ba*ba*b)*
Expresión de un AFND

(awb)*bb (awb)*w (awb)*aa (awb)*


Gramática regular para un AFND

S → aS| bB| 
q1 B → aB| bC
C → aC| bS

q0 q2
Gramática para un AFND (cont)
q0 q1
q2 q4
q3
q5

S → aB
q6 B → bC| bD
C → aC| bC | bE
S → aB
D → aF
S → aB B → bC| bD
E → aG
B → bC| ba C → aC| bC | bE
D→a F→
C → aC| bC | ba
E→a G→
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,b
A → aS| bS| 
a,b
q0 q1
c
Lenguajes regulares
Expresiones
AFD Regulares No son LR:

a b : i  0
i i

AFND
a b a : i, j  0
i j i

Gramáticas Regulares
 :    *
R

 :    *   primo :    *    R

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:

a b c | i, j  0
i j i

a b | i  0
i i

a b | i  0
i 2i
Lema de Bombeo

q0 q1 qi qk

Un autómata de k estados si acepta una Si |z|>k existen u,v


palabra de longitud mayor que k acepta y w tales que
infinitas palabras |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 está en L
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 2
)2
Entre k y (k+1) no hay ningún cuadrado
perfecto !
Propiedades de Conjuntos finitos de
clausura palabras forman lenguajes
regulares

Unión de dos

Concatenación de dos

Intersección de dos ...lenguajes regulares, es


un lenguaje regular
Complemento de

* de

Vous aimerez peut-être aussi