You are on page 1of 10

Ciencias de la Computacin I

Autmatas Finitos No Determinsticos


Minimizacin de Autmatas Finitos Determinsticos
Agosto 2007

Autmatas Finitos
Determinsticos
Para cada estado y para cada smbolo se determina unvocamente un
solo estado:

a, c
b

b
e1

e0

Dada una cadena w existe slo


una forma de recorrer el diagrama
de transicin de estados del AF

a, c
No Determinsticos
Para algunos estados, dado un smbolo a, existe un conjunto de
estados siguientes para elegir

a, b, c
b
e0

e1

Desde e0 con b podemos


quedarnos en e0 pasar a e1

Autmatas Finitos No Determinsticos


Formalmente, un AF reconocedor no determinstico (AFND)
se define como una quintupla
M = <E, A, , ei, F>
E es un conjunto finito de estados; E
A es el alfabeto de entrada
es la funcin de transicin de estados;
En general
(ej, a) = {ek, es, et, }

: E x A P(E)

P(E) conjunto potencia de E

El AF puede pasar del estado ej al ek al estado es al estado et


despus de leer el smbolo a en la cinta (ej, ek,es, et, E; a A)

F es el conjunto de estados finales o de aceptacin; F E

Autmatas Finitos No Determinsticos


Ejemplo:
AFND que reconoce el lenguaje
L = { x / x {a, b}* y x contiene la subcadena ab }
a, b
a, b
b
a
e2
e0
e1
AFND = <{e0, e1 , e2}, {a, b}, , e0, {e2}>
Las cadenas aaba y baa, pertenecen o no a L(AFND)?
Aceptacin de cadena por AFND
Un AFND acepta una cadena si existe alguna secuencia de
transiciones que a partir del primer smbolo de la cadena y
empezando en el estado inicial, permite alcanzar un estado
final luego de leer todos los smbolos de la cadena.

Determinismo y No determinismo
Determinismo trmino importante en muchas reas de
Teora de la Computacin
Determinismo existe una alternativa vlida, o no hay alternativa.
No Determinismo puede haber varias alternativas vlidas.
Importante distinguir si el no determinismo agrega o no poder
computacional

En los Autmatas Finitos, todo se puede resolver con un


Autmata Finito Determinstico

Equivalencia entre AFND y AFD


Teorema:
Sea L un lenguaje aceptado por un AFND. Entonces existe un AFD que
acepta el mismo lenguaje L. Es decir, L(AFND) = L(AFD)
Algoritmo para obtener AFD a partir de AFND:
Dado el autmata finito no determinstico MND = <END, A, ND, e0ND, FND>,
se define el autmata finito determinstico correspondiente
MD= <ED, A, D, e0D, FD> como sigue:
-ED = P(END) (conjunto potencia de END).
Cada elemento de ED se representa como [e1, e2, ..., ei] donde e1,
e2, ..., ei END.
[e1, e2, ..., ei] es un nico estado de MD
- A: alfabeto de entrada

Equivalencia entre AFND y AFD


Algoritmo para obtener AFD a partir de AFND:
- e0D = [e0ND] (estado inicial)
-FD: conjunto de todos los estados de ED que contienen al menos un
estado final de MND.
D: ED x A ED, se define como
D([e1, e2, ..., ei], a) = [el, em, ..., ek] sii
ND({e1, e2, ..., ei}, a) = G ({e1, e2, ..., ei}, a) = {el, em, ..., ek},
G (C, a) = (p, a) y G (, a) = (C: conj. de estados)
pC

D aplicada a un elemento [e1, e2, ..., ei] de ED se calcula aplicando


ND a cada estado de END que est en [e1, e2, ..., ei].

Equivalencia entre AFND y AFD


Sea AFND = <{e0, e1}, {a, b, c}, , e0, {e1}> tal que
L(AFND) = { x / x {a, b, c}* y x termina en b}
a, b, c

a, c

e1

e0

b
e0,e1

e0
a, c

ND

e0

{e0}

{e0, e1}

{e0}

[e0]

[e0]

[e0, e1]

[e0]

e1

[e0, e1]

[e0]

[e0, e1]

[e0]

Funcin de transicin
no determinstica

Funcin de transicin
determinstica

Minimizacin de AFD
Teorema
Para cada AFD existe un AFD con cantidad mnima de
estados que acepta el mismo lenguaje.
Algoritmo para minimizar un AFD
(divide al conjunto de estados del AFD en clases de
estados equivalentes)
Dado un AFD = <E, A, , e0, F>, dos estados p, q E son
equivalentes s y slo s para toda cadena x A*,

* (p,x) F * (q,x) F

* (p,x) F * (q,x) F

(Si las transiciones desde p con la cadena x llegan a un estado final, las de q con esa
misma cadena x tambin tienen que llegar, lo mismo si no se llega a un estado final)

Minimizacin de AFD
Algoritmo para minimizar un AFD
1) Eliminar los estados no alcanzables desde el estado inicial.
2) Eliminar los estados desde los que no es posible alcanzar un estado final.
3) Construir una particin 0 del conjunto de estados, que consiste en dos
grupos: estados finales y estados no finales.
4) Sea K = 0.
5) Definir K+1 de la siguiente manera:
para cada grupo G de una particin K, dividir a G en subgrupos tales que
dos estados s y t estn en el mismo grupo s y slo s para todo smbolo a
del alfabeto de entrada, los estados s y t van al mismo grupo de K.
6) K = K + 1.
7) Si K K-1 volver al paso 5. En caso contrario, terminar.

You might also like