Está en la página 1de 5

1

AUTMATAS FINITOS NO DETERMINISTAS


Se introducir la nocin de autmatas finitos no Deterministas y se estudiar su equivalencia con
los deterministas. El concepto de no determinismo, si bien inicialmente no es intuitivo, es muy
importante y especialmente til en prueba de teoremas. Recurdese que la definicin de
autmata finito determinista es determinista: dados un estado y un smbolo de entrada, el
prximo estado queda determinado unvocamente. La caracterstica de no determinismo le da al
autmata finito la posibilidad de cambiar de estados en una forma que est solo parcialmente
determinada por el smbolo corriente y el estado corriente, pues tambin depende de una
eleccin. Si bien el concepto de no determinismo aparece como una extensin de determinismo y
en muchos casos simplifica la descripcin de los autmatas, se probar que es una caracterstica
no esencial ya que para todo autmata finito no determinista existe uno equivalente determinista.

Un Autmata Finito No Determinista es una quntupla M = (S, , , s0, F), donde S, , s0 y F


se definen como en autmatas finitos determinista y es un mapeo de S en subconjuntos de
S. La interpretacin de (si, a) = sj, sj+1, ..., sm es que el autmata finito M en el estado si, con la
entrada a, debe elegir entre los sj, sj+1, ..., sm como prximo estado.

Ejemplo:
Sea el autmata finito que acepte el lenguaje de las cadenas formadas por concatenacin de
cero o ms cadenas de ab o aba (sin importar el orden). En este caso un autmata finito no
determinista es ms conveniente que un autmata determinista.
El autmata finito determinista que lo reconoce es:
M = (S, , , s0, F)
S = {s0, s1,, s2, s3, s4}
F = { s0, s2, s3 }

a b
s0 s1 s4
s1 s4 s2
s2 s3 s4
s3 s1 s2
s4 s4 s4

Sin embargo, el lenguaje L es aceptado por un autmata finito no determinista ms simple:

M = (S, , , s0, F)
S = {s0, s1,, s2}
F = {s0}

a b
s0 {s1}
s1 {s0, s2}
s2 {s0}

Este autmata finito en el estado s1, leyendo una b tiene dos posibles prximos estados y
adems no tiene movimiento posible dado el estado s1 y la entrada a. En otros casos es
2

conveniente rotular los arcos o agregar a las entradas , que quiere decir que no consume
smbolo de la cadena de entrada. Para los autmatas finitos no deterministas se dice que una
cadena w es aceptada si existe algn camino del estado inicial s0 a un estado final q, siguiendo la
, sin importar que haya posibilidades para descartar. Por ejemplo si w = aba, es aceptada ya que
existe un camino de s0, s1, s2, s0, que termina en un estado final s0 F; en cambio, si hubiera
optado por s0, s1, s0, s1 hubiera finalizado en un estado no aceptador. Pero no importa pues slo
interesa que exista un camino.
Formalmente se dice que la cadena w es aceptada por un autmata finito no determinista M si
existe un estado p F y (q0, w) contiene el estado p.

TEOREMA DE EQUIVALENCIA ENTRE AUTMATAS FINITOS


DETERMINISTAS Y AUTMATAS FINITOS NO DETERMINISTAS
Sea L un lenguaje aceptado por un autmata finito no determinstico, entonces existe un
autmata finito determinstico que tambin acepta L.
Sea M = (S, , , s0, F) un autmata no determinista que acepta L. Para probar el teorema se
debe mostrar que:
- se puede construir M determinista, a partir de M y
- M acepta el mismo lenguaje que M

Sea M = (S, , , s0, F) tal que:


S = los estados de M sern los subconjuntos de estados de M, es decir S = P(S); el nmero
de estados de M es 2 a la cantidad de estados de S.
F = es el conjunto de todos los estados de S que contengan por lo menos un elemento de F
s0 = [s0]

Nota: un elemento de S se notar como [s1, s2, ..., si] donde s1, s2, ..., si pertenecen a S, pero [ ...]
no indican clases.

Se define como la extensin de a conjuntos:


([s1, s2, ..., si],a) = [p1, p2, ..., pj]  ({s1, s2, ..., si},a) = {p1, p2, ..., pj}

esto es, como se aplica a un conjunto de estados, el resultado es el conjunto de los estados que
surgen de aplicar a cada uno de los estados.
Se debe tener en cuenta que, mientras que el resultado de la funcin es un conjunto de
estados de M (M es no determinista), el resultado de , es un nico estado de M (M es
determinista).
De esta forma se define M a partir de M, resta probar que (s0, x) = [q1, q2, ..., qi] si y solo
si (s0,x) = {q1, q2, ..., qi} para toda cadena x. Se prueba por induccin sobre la longitud de la
cadena x.
1. Base de induccin: si long(x) = 0 x = . Probar que (s0, x) = (s0, ) es trivial pues s0=
s0. Por definicn de , (s0, x) = (s0, ) por ser un conjunto de un solo elemento.
2. Paso de induccin: supngase que el teorema es vlido para long(x) m, es decir (s0, x) =
[p1, p2, ..., pn]  (s0, x) = {p1, p2, ..., pn}. Sea a , se debe probar que vale para long(xa)
= m+1, es decir, que
(s0, xa) = ((s0, x), a) (1)
3

Por hiptesis de induccin se tiene:


(s0, x) = [p1, p2, ..., pn]  (s0, x) = {p1, p2, ..., pn}

reemplazando en (1) y por definicin de :


([p1, p2, ..., pn], a) = [r1, r2, ..., rk]  ({p1, p2, ..., pn},a) = {r1, r2, ..., rk}

Entonces
(s0, xa) = [r1, r2, ..., rk]  (s0, xa) = {r1, r2, ..., rk}

(s0, x) est en F cuando (s0, x) tiene un estado perteneciente a F, por lo tanto, una cadena
ser aceptada por Msi y solo si es aceptada por M.

Ejemplo: Sea el Autmata No Determinista M = (S, , , s0, F)


S= {s0, s1}
F= {s1}
= {0, 1}
0 1
s0 {s0, s1} {s1}
s1 {s0, s1}

el autmata determinista que reconoce el mismo lenguaje es M = (S, , , s0, F)


S= {[], [s0], [s1], [s0, s1]}
F = {[s1], [s0, s1]}
0 1
[s0] [s0, s1] [s1]
[s1] [] [s0, s1]}
[s0, s1]
[]
Ahora se completa la tabla:
([], 0) = ([], 1) =[]
([s0, s1], 0) = [ (s0, 0) (s1, 0)] = [{s0, s1} ] = [s0, s1]
([s0, s1], 1) = [ (s0, 1) (s1, 1)] = [{s0, s1} ] = [s0, s1]

0 1
[s0] [s0, s1] [s1]
[s1] [] [s0, s1]
[s0, s1] [s0, s1] [s0, s1]
[] [] []

MINIMIZACION DE AUTMATAS
Minimizar un autmata es hallar un Autmata Finito que tenga el mismo comportamiento con
menor cantidad de estados. Para ello el conjunto de estados S de un Autmata Finito ser
4

particionado y los bloques de esa particin se usarn para la definicin de un nuevo Autmata
Finito. Las condiciones para la existencia de este nuevo autmata son:
 Todos los estados en un bloque dado de la particin deben tener, dado un smbolo i ,
prximos estados bajo , que pertenezcan a su vez a un mismo bloque de la particin.
 Todos los estados de un bloque dado de la particin deben tener la misma salida o
pertenecer a F (o no) en el caso de Autmatas Finitos Reconocedores.

Dado un Autmata Finito M = (S, , s0, , f0) se dice que sj s0 es un estado inalcanzable de M
si si S, i : ( si, i) = sj.

Nota: en un diagrama de estados los estados inalcanzables son los estados que no tienen arcos
incidentes.

Ejemplo: Sea M = ({s0, s1, s2, s3}, {0, 1}, , s0, { s2, s3})

0 1
s0 s2 s3
s1 s3 s0
s2 s1 s3
s3 s0 s1

s2 es estado inalcanzable.

Dos estados si, sj del Autmata Finito M son equivalentes si para toda cadena de entrada w *
(si, w) = sk y (sj, w) = sl, donde sk, sl F o sk, sl F.

Nota:
 Se comparan estados de un mismo Autmata Finito y no entre dos Autmatas Finitos.
 Si a partir de un estado si una cadena x * termina en un estado aceptador, entonces sj
tambin, pues son equivalentes.
 La definicin de estados equivalentes para Autmatas Finitos traductores es: Dos estados si,
sj de un Autmata Finito M son equivalentes si para cualquier cadena w es la misma, que
comenzando en el estado sj con la cadena w. f0 ( (si ,w)) = f0 ( (sj ,w))

Dos estados si , sj del Autmata Finito M son k-equivalentes si para w * con long k
(si ,w) = sk y (sj ,w) = sl , donde sk, sl F o sk, sl F o para Autmatas Finitos traductores
f0 ( (si ,w)) = f0 ( (sj ,w))
Una relacin de equivalencia R sobre el conjunto S se dice que refina a la relacin de
equivalencia R definida sobre S, si xRy xRy, x, y S.
Se dice que R refina R si las clases de equivalencia de R estn formadas a partir de dividir las
clases de R en clases ms chicas. Por ejemplo la k-equivalencia refina la (k-1)-equivalencia, ms
an la k-equivalencia refina la r-equivalencia para r<k.

Algoritmo para minimizar el Autmata Finito M


1. Eliminar del conjunto de estados S los estados inalcanzables y llamar a este nuevo
conjunto T.
5

2. Particionar T en dos clases formadas por los estados 0-equivalentes, es decir, una clase de
estados reconocedores y otra de no reconocedores.
3. k := 0
4. Repetir:
Determinar las clases (k+1)-equivalentes como un refinamiento de las k-equivalentes,
es decir: si, sj son (k+1)-equivalentes si y solo si si, sj son k-equivalentes y (si , i),
(sj ,i) son k-equivalentes i *.
5. k := k + 1
hasta que las clases (k+1)-equivalentes sean iguales a las k-equivalentes.
6. Usar las clases k-equivalentes determinadas para definir el autmata minimal.

Ejemplo: Usar el algoritmo para minimizar el siguiente autmata M = (S, , s0 ,, F)


S = { s0, s1, s2, s3, s4, s5, s6 }
= {0 ,1}
F = { s1, s3, s4, s6 }
0 1
s0 s2 s3
s1 s3 s2
s2 s0 s4
s3 s1 s5
s4 s6 s5
s5 s2 s0
s6 s4 s0

En M no existen estados inalcanzables, entonces T = S. Los estados 0-equivalentes de M (o


tambin |0| ) son:
|0| = {s0, s2, s5} { s1, s3, s4, s6 }
Luego:
|1| = {s0, s2} {s5} { s1, s3, s4, s6 }
|2| = {s0, s2} {s5} { s1, s6 } {s3, s4 }
|3| = {s0, s2} {s5} { s1, s6 } {s3, s4 }

Como las clases 2-equivalentes son iguales a las 3-equivalentes se termina el refinamiento de
clases. Renombramos los estados para construir la M minimizada.

M = (S, , [s0 ],, F)


S = { s0, s1, s3, s5 }
= {0 ,1}
F = { s1, s3}

s0 = {s0, s2} s1 = { s 1 , s6 } s3 = {s3, s4 } s5 = {s5}

0 1
s0 s0 s3
s1 s3 s0
s3 s1 s5
s5 s0 s0

También podría gustarte