You are on page 1of 28

Autmatas Deterministas

Ivan Olmos Pineda

Introduccin
Los autmatas son una representacin formal muy til, que permite modelar el comportamiento de diferentes dispositivos, mquinas, programas, etc.
Maquinas expendedoras de refrescos El comportamiento de un programa (software) El comportamiento de semaforos

La idea general consiste en modelar un sistema que


Recibe un conjunto de elementos de entrada (estmulos) Realiza algn proceso (cmputo) Se produce una salida

Definicin autmata
Formalmente, un autmata finito determinista es una quntupla (Q, , , q0, F), donde:
Q: conjunto finito NO VACIO de estados : alfabeto de entrada : Q x Q, funcin de transicin que especifica a qu estado pasa el autmata desde el estado actual al recibir un smbolo d entrada. Esta funcin se define para todas las parejas posibles de estados y de smbolos de entrada. (q,a) = q significa que del estado q con el smbolo a, el autmata pasa al estado q q0 Q: estado inicial de autmata F Q: conjunto de estados finales

Autmatas finitos deterministas


Ejemplo
Considere un sistema formado por una lmpara y un interruptor. La lmpara puede estar encendida o apagada. El sistema slo puede recibir un estmulo exterior: pulsar el interruptor. El funcionamiento es habitual: si se pulsa el interruptor y estaba apagada la lmpara, se pasa al estado de encendido, o si esta encendida, pasa a pagada. Se desea que la bombilla este inicialmente apagada. Considere que 0: encendido, 1: apagado y la nica entrada posible (pulsar interruptor) es p

Cmo sera el autmata que representa a este sistema?

Solucin
A = (Q, , , q0, F), donde:
Q = {0,1} = {p} (0,p) = 1, (1,p) = 0 q0 = 0 F = {}

Representacin tabular
En ocasiones es til representar a las transiciones de una autmata a travs de una tabla
El nmero de filas es igual a 1Q1 El nmero de columnas es igual a 11 Todas las columnas son etiquetadas con los correspondientes smbolos en Todos los renglones son etiquetados con los estados de Q La casilla en el rengln q y en la columna a contendr la transicin (q,a) El estado inicial se suele marcar con una Los estados finales se suelen marcar con *

Diagrama de estados
A travs de un diagrama de estados, se puede representar a un autmata Un diagrama de estados de un autmata es un grafo dirigido, donde:
Los nodos representan a estados (cada nodo es etiquetado con el nombre del estado) Los arcos representan a transiciones entre los estados Cada arco lleva una etiqueta que indica qu smbolo de entrada provoca la transicin correspondiente Si es necesario distinguir al edo inicial, se marca con una Los estados finales irn recuadrados

Reconocimiento de palabras con autmatas


Una de las aplicaciones ms importantes de los autmatas finitos deterministas, es el reconocimiento de palabras y lenguajes El proceso de reconocimiento es el siguiente:
El autmata comienza en el edo inicial cuando recibe la primera letra de la palabra y transita al edo. siguiente A partir del edo. actual, se vuelve a procesar la siguiente letra para pasar de forma iterativa a los siguientes estados Al finalizar de procesar la palabra, si se llega a un estado final, la palabra es aceptada por el autmata. En caso contrario, se considera rechazada

Extensin de la funcin de transicin a palabras


Es posible extender la funcin de transicin de un autmata para que acepte un estado y una cadena de smbolos tomados del mismo alfabeto. A dicha funcin se le denomina funcin de transicin extendida o sobre palabras

q si x = (q, x) = ( (q, a ), y ) si x = ay, a , y *

Extensin de la funcin de transicin a palabras


Ejemplo: construya un AFD que acepte todas las palabras formadas por las letras del alfabeto latino que comienzan con ep A = (Q, , , q0, F), donde:
Q= = = q0 = F=

Considere que se aplica la funcin de este autmata a las cadenas eppe eepe. Cmo se comportara?

Extensin de la funcin de transicin a palabras

(q0 , eppe) = ( (q0 , e), ppe) = L = (q2 , ) = q2

Lenguaje reconocido por un AFD


Un lenguaje L es reconocido o aceptado por un AFD A = (Q, , , q0, F) cuando una palabra cualquiera w es reconocida por el autmata si y slo si w L: L( A) = {w * | (q0 , w) F } El lenguaje complementario al lenguaje aceptado por el autmata se representa por LC(A)
(q0 , w) F } LC ( A) = {w * |

Se dice que dos autmatas son equivalentes cuando ambos reconocen o aceptan el mismo lenguaje L.

Autmatas Finitos No Deterministas


Informalmente, un AF no determinista, es una extensin de los deterministas:
A partir de un estado, no es necesario que el autmata tenga prevista ninguna transicin a otro estado en respuesta a todos los smbolos de entrada posibles A partir de un estado concreto y ante un smbolo de entrada, se permite que el autmata transite a ms de un estado distinto (transiciones no deterministas) No es obligatorio consumir un smbolo de entrada para que el autmata cambie de estado (transiciones )

Transiciones no deterministas
Una transicin no determinista a partir de un estado q es aquella que, dado un smbolo a , se cumple que: (q,a) es no determinista |(q,a)| > 1 Por ejemplo, considere que se desea disear un autmata finito no determinista que admita las palabras {gato, gamo}

Autmatas finitos no deterministas


Disear un autmata finito no determinista sobre el alfabeto {0,1} que acepte: todas las palabras que tienen al menos tres unos y el de todas las palabras que tienen un nmero impar de unos. Cul sera la solucin?

Transiciones
Se llama transicin a aqulla que hace que el autmata cambie de estado sin consumir ningn smbolo de entrada. El smbolo , que representa la palabra vaca, se utiliza para representar la entrada consumida en estas transiciones

Estas transiciones son tiles para crear un autmata que acepta palabras de otros autmatas

Autmata finito no determinista


Definicin formal: un autmata finito no determinista se define como una quntupla A = (Q, , , q0, F), donde todo tiene el mismo significado que en un AFD, excepto la funcin de transicin, donde

: Qx( {} P(Q))
Donde P(Q) es el conjunto de todos los subconjuntos del conjunto Q

Lenguaje reconocido por un autmata finito no determinista


Se define casi de forma idntica a un AFD Un lenguaje L es reconocido o aceptado por un AF no determinista A = (Q, , , q0, F) cuando una palabra cualquiera w es reconocida por el autmata si y slo si w L:
(q0 , w) I F } L( A) = {w * |

Operaciones entre Autmatas

Minimizacin de AFD
Un AFD puede ser reducido (sin alterar el lenguaje aceptado L) a travs de dos operaciones:
Eliminacin de estados inaccesibles Agrupacin de estados equivalentes o indistinguibles

Nota: aplicar dichos operadores da como resultado AFD equivalentes

Eliminacin de estados inaccesibles


Dado A = (Q, , , q0, F) un AFD, se dice que un estado p Q es accesible desde otro estado q si existe una palabra x * tal que

(q, x) = p
En caso contrario, se dique que el estado p es inaccesible desde q.

Algoritmo para detectar estados inaccesibles en un AFD


1. 2. 3.
1. 2.

Se marca q0 como accesible Se inicia una cola C = q0 Mientras C no este vaca


Se extrae de C el primer estado q Para cada transicin en el autmata desde q hasta algn estado p, si p C, entonces se marca como accesible y p se introduce a C

4.

Todo q no marcado es un estado inaccesible del AFD y puede eliminarse

Ejemplo
Del siguiente autmata, eliminar los estados inaccesibles

Agrupacin de estados indistinguibles


Esta reduccin se basa en la idea de identificar grupos de estados, los cuales se puedan reducir a un nico estado equivalente
Dado un estado cualquiera p, Lp es el lenguaje formado por las palabras que llevan desde p a un estado final Se dice que dos estados p y q de un autmata son equivalentes (se denota pEq) si Lp = Lq

Ejemplo visual

Comentarios
Visualmente se pode observar lo siguiente:
Dos estados sern compatibles si todos los arcos que salen de dichos estados llegan a estados del mismo grupo Que no se mezclen en un mismo grupo estados finale sy no finales del autmata original.

Algoritmo de Minimizacin
1.

2. 3.
1. 2.

Para cada par de estados (p,q), si p es un estado final y q no lo es, o al revs, se marca (p, q) como no equivalentes Marcar que ha habido cambios en el ltimo ciclo Mientras haya cambios en el ltimo ciclo:
Marcar que no ha habido cambios en el ltimo ciclo Iterar sobre todos los caracteres
1.

Si (p,q) no estn marcados como no equivalentes y ((p, ), (q, )) estn marcados como no equivalentes, marcar (p,q) como no equivalentes y marcar que ha habido cambios en el ltimo ciclo

Ejercicios
Encontrar autmatas finitos deterministas mnimos que reconozcan los siguientes lenguajes
L = {anbm: n >= 2, m >= 1} L = {anb: n >= 0} {bna: n >= 1} L = {an: n >= 0 n 3} L = {todas las cadenas del alfabeto {a,b} con exactamente una a} L = {todas las cadenas del alfabeto con no ms de tres as} L = {ab5 wb4 : w {a,b}*}

You might also like