Está en la página 1de 22

1

Autómatas – Parte 1
Teoría de la Computación
2 Autómatas
 Un autómata es un conjunto de reglas que inspecciona una
secuencia de * y decide si está o no está en un lenguaje
dado L  *.
 Un autómata se dice finito si es guiado por un control finito.
 Un autómata se dice determinista si en todo momento,
durante la inspección de la secuencia, existe una y solo una
alternativa para seguir adelante.
 Un autómata finito será no determinístico si el siguiente
estado en una transición está solo parcialmente determinado
por el estado actual y el símbolo actual, es decir, puede
haber más de una transición posible.
3 Autómata Finito Determinista (AFD)
 Un autómata es un conjunto de reglas que inspecciona una secuencia de * y
decide si está o no está en un lenguaje dado L  *.
 Un autómata se dice finito si es guiado por un control finito.
 Un autómata se dice determinista si en todo momento, durante la inspección
de la secuencia, existe una y solo una alternativa para seguir adelante.
4 Composición de un AFD
 Una AFD se compone de :
 Una unidad de control que alterna entre elementos de un conjunto
finito, llamado conjunto de estados.
 Una cinta de entrada que contiene la secuencia a ser
inspeccionada
 Una cabeza lectora que apunta a un símbolo en la cinta de
entrada.
q n q0 Q = {q0, q1, ...., qn}
Control Finito
Cjto. de estados
qi
w = a1a2....an entrada
qi estado actual
Cabeza lectora
aj símbolo actual
Cinta de entrada a1a2............aj.......an
5
Reglas de Operación de un AFD
 Inicialmente el AFD comienza en una estado (estado inicial q 0) y con la
cabeza lectora apuntando al primer símbolo de la entrada (a 1)
 El AFD inspecciona el símbolo actual y de acuerdo al estado actual cambia de
estado y avanza un símbolo (hacia la derecha). Esto se denomina transición.
 Al llegar al estado final de la secuencia (luego de inspeccionar a n) el AFD se
detiene.

q n q0 Q = {q0, q1, ...., qn}


Control Finito
Cjto. de estados
qi
w = a1a2....an entrada
qi estado actual
Cabeza lectora
aj símbolo actual
Cinta de entrada a1a2............aj.......an
6 Definición Formal de una AFD
 Un AFD es una tupla M = (, Q, , q0, F), donde:

 : alfabeto de entrada
 Q: conjunto finito de estados
 Q0: estado inicial, q0Q
 F: conjunto de estados finales o de aceptación, F 
Q
  Matriz de transición de tamaño |Q||| (qi,a) =
qj; qi, qj Q y a  
7 Ejemplo de un ADF
 Sea M definido como sigue  = {a, b}, Q = {q0, q1, q2, q3}, F = {q2}
 : Veamos el análisis de w1 = abba y w2 = abaa
Q\  a b w1 w2
q q q Estado Avance Estado Avance
0 1 3 q0 abaa
q q q q0 abba
1 2 1 q1 bba q1 baa
q q q q1 aa
2 3 3 q1 ba
q q q q1 a
q2 a
3 3 3 q3 alto
q2 alto

q2  F q3 F
8
EstadosPersistentes

 Un estado se dice persistente cuando se llega a él no es posible salir


de este. (Por ejemplo q3)
 Se dice que una palabra es aceptada o reconocida por un AFD M si al
examinarla, M termina en q  F (Por ejemplo w1).
 Una configuración (descripción instantánea) es un par ordenado (q, z)
con q  Q y z  *.
 d.i. inicial (q0, w); d.i. final (qf, ) con qf  Q.
 Para w1 d.i.i. (q0, abba), d.i.f. (q2,  )

a1a2............aj.........an q es el estado actual y


z es lo que falta por
z reconocer
9 Relación de Transición en un AFD
 Se define la relación de transición en el conjunto de las
d.i.’s, denotada por M y se lee lleva a según M, como:
(q, az) M (q’, z)  (q,a) = q’; con a  , q, q’Q, z 
*.
 Observación: M: Qx+  Qx*
 Ejemplo:
 (q0, abba) M (q1, bba) M (q1, ba) M (q1,a) M (q2, )
 Observación: Una secuencia w es aceptada si la última
d.i. es (qi, ), con qi  F.
10 Relación de Transición en un AFD
 Se define la secuencia de transición (0 o más transiciones)
como:
 (q, ) *M (q, )
 (q, aw) *M (q’, w’)  (q,aw) M (q”, w) y (q’’, w) *M (q’, w’)
con a  ; w y w’  *; q, q’ y q”  Q.
 Ejemplo:
 (q0, abba) *M (q1,a)
 Definición: Un AFD acepta una secuencia w  *; ssi
(q0, w) *M (qf, ), qf  F

 Problema: ¿M y *M son de equivalencia?


11 Diagrama de estado
 Es una representación gráfica para un AFD. Los estados se
representan por un círculo, los estados finales por doble
círculo, y se dibuja una flecha de qi a qj, rotulando el arco
con el símbolo que permite la transición. Si (qi,a) = qj
entonces se tiene:

a
qi qj
12 Ejemplo de diagrama de estado
  = {a, b}, Q = {q0, q1, q2, q3}, F = {q2}
 : b
Q\  a b
q1 a
q q q a
0 1 3
q q q q0 q2
1 2 1
q q q
2 3 3 b
q q q a,b
3 3 3 q3

Por simplificación, las transiciones


que conducen a estados persistentes a,b
no serán denotadas.
13
AFD y Lenguajes
 Diremos que un AFD M acepta una secuencia w ssi (q0,
w) *M (qf, ) con qf F
 El lenguaje aceptado por un AFD M será
L(M) = {w* / (q0,w) *M (qf,) con qfF}
 Dos autómatas M1 y M2 son equivalentes si L(M1)=L(M2).
Por ejemplo: Sea  = {a} y
a
a a a
q0 q1 q0 q1

 Ambos aceptan el lenguaje a+


14 AFD y Lenguajes
 Encuentre el lenguaje aceptado por el AFD siguiente:

a a
q0 q1 q2
b

 w  *  w =  o w  +
 w =   (q0, ) *M (q0, ), pero q0  F, luego   L(M).
 w  +  w = xw1; x  = {a, b} y w1  *. Luego w = aw1 o w = bw1
 (q0, bw1) *M (indefinido, w1)  w = bw1  L(M).
 (q0, aw1) M (q1, w1) .......... (1)
 razonando análogamente se tiene que (q1, bw2) *M (q1, w2), y que
 (q1, bnw3) *M (q1, w3); n  1 ...............(2); aplicar inducción
 (q1, aw4) *M (q2, w4) ..........(3)
 Si w4 =  entonces w  L(M)
 Así de (1) w = aw1, de (2) w = abnw3 y de (3) w = abna  L(M),
15 AFD y Lenguajes
 L(M) = {w {a, b}* / numb(w) = 2n, n  0}, construir un AFD para L
(diagrama de estados b
 w1 = ababba L(M)
a
 w2 = bababb L(M) q0 q1
 q0 : el # de b’s es par
a b
 q1 : el # de b’s es impar
 (a*ba*b)*
 Sea L(M) = (0|1)*00 construir el diagrama de estado
 0100100 L 0
 0101010 L
1 1 q2
q0
 q0 : “estamos como si nada” 0
 q1 : tenemos un 0 1 q1 0
 q2 : tenemos dos 0’s por lo menos
16 AFD y Lenguajes
 Sea R una relación de equivalencia sobre A. Entonces el
conjunto de todas las clases de equivalencias inducidas por
R es
 [A]R = {[x]  A / [x] es una clase de equivalencia}
 Indice(R) = | [A]R|

 Sea  un alfabeto y R una relación en *, se dice que R es


invariante por la derecha con respecto a la concatenación
ssi xRy  xzRyz, z  *
17 AFD y Lenguajes
 Ejemplo: Sea el lenguaje a*b*, encontrar las clases de
equivalencias que induce RL.
 L ={ , a, b, aa, ab, bb, .......} = { aibj / i, j  0}
 xRLy  (xz  L  yz  L ,  z  *)
 Sea x = a, debemos encontrar todas las y tales que si azL 
yzL  z{a,b}*. Si az L, entonces z = , a, aa, ....., b, bb, .....,
ab, abb, .....; de donde se tiene que y = an con n  0. Es decir aRLan
, n  0. Por lo que a={an/ n  0}.
 Las clases de equivalencia son a, ab y aba.
18 Teorema de Nerode 1ra parte
 Teorema: Las siguientes afirmaciones son equivalentes:
 L  * es un lenguaje regular
  R relación definida sobre *, de equivalencia, de índice finito e
invariante por la derecha tq L es la unión de algunas de las clases
de equivalencias que induce R.
 Sea RL tq xRLy  (z*, xz  L  yz  L)
 Observación. Si un lenguaje no cumple el Teorema de
Nerode no es regular.
19 Teorema de Nerode 1ra Parte
 L = a*b* es regular. Se demostró que RL es de índice finito
y L es la unión de dos clases de equivalencia, L = a ab.
 L = {anbn / n  0} no es regular. Usaremos Nerode.
Consideremos x = a.
azL  z=b, abb, aabbb, .....= a n-1bn; n  1.
De donde y = a, es decir a = {a}.
Análogamente se demuestra que an = {an} y que
índice(RL) = . Por lo tanto L no es regular.
20 Teorema de Nerode 2ra Parte
 L es regular ssi existe un AFD tal que L(M) = L
 Demostración ()
Construiremos un AFD M basado en LRL.

M = (, Q, , q0, F) con Q = LRL, q0 = , (x,a) = xa,

F = {x / x  L}
Demostremos que L(M) = L
w  L  w  x tq x  L
 w RL x (x RLw)
 w = x
Luego (, w) *M (w, )=(x, ), pero x  F  wL(M)
21 Teorema de Nerode 2ra Parte

 Ejemplo de construcción de AFD: Sea L = a*b*.


 RL induce a, ab, aba. Luego
 Q = {a, ab, aba} ; q0 =  = a; F = {a, ab}
 (, a) = a; (, b) = b = ab;
 (a, a) = aa = a; (a, b) = ab;
 (ab, a) = aba; (ab, b) = abb = ab
  aba, a) = abaa = aba;
  aba, b) = abab = aba;
22
Teorema de Nerode 2ra Parte
 L es regular ssi existe un AFD tal que L(M) = L
 Demostración ()
 Considere la siguiente relación:
xEMy  (q0, x)  * (q,  )  (q0, y) * (q,  ); q  Q
 Probar que (10 decimas):
 EM es una relación de equivalencia en *

 EM es invariante por la derecha

 EM es de índice finito

 Las clases de equivalencias que forman L son:


{x / (q0, x) * (q,  ); q  F}

También podría gustarte