Академический Документы
Профессиональный Документы
Культура Документы
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
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
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
Considere que se aplica la funcin de este autmata a las cadenas eppe eepe. Cmo se comportara?
Se dice que dos autmatas son equivalentes cuando ambos reconocen o aceptan el mismo lenguaje L.
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}
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
: Qx( {} P(Q))
Donde P(Q) es el conjunto de todos los subconjuntos del conjunto Q
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
(q, x) = p
En caso contrario, se dique que el estado p es inaccesible desde q.
4.
Ejemplo
Del siguiente autmata, eliminar los estados inaccesibles
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}*}