|
1.4. AUTÓMATAS FINITOS NO DETERMINISTAS. MAQUINA CONCEPTUAL. La única diferencia con los anteriores está en que en la transición en un estado determinado puede haber, para un mismo símbolo, más de un arco o no haber ninguno. Decimos que un autómata finito no determinista acepta una cadena si es posible que su análisis deje a la máquina en un estado de aceptación. Decimos si es posible, pues si se toma el camino equivocado no se aceptaría una cadena que podría ser válida (una cadena del lenguaje aceptado por este autómata, designado por L(M). Formalmente el autómata finito no determinista consiste en una quíntupla (S, S , r, i , F), donde
Un autómata de la forma (S, S, r , i, F) acepta la cadena no vacía x1x2...xn si y solo si existe una serie de estados s0,s1,...sn tal que s0= i y sn Î F y para cada entero j de 1 a n (sj-1,xj,sj) está en r . Además, las tripletas (p,x,q) y (p,x,r), donde q y r son estados que pueden ser distintos, pueden estar en r, diciéndose que al leer el símbolo x en el estado p se puede pasar al estado q o al r.Para hacer un programa de un autómata no determinista se podría hacer probando todas las rutas una a una hasta que se terminasen o se aceptase la cadena, lo cual no es eficiente por la cantidad de memoria necesaria (crece exponencialmente con el número de estados). Para analizar una cadena en un autómata finito no determinista vamos a seguir todas las transiciones posibles en paralelo (atravesamos todas las rutas a la vez); la cadena se aceptará si alguna de las rutas acaba en un estado de aceptación. Nuestro estado en un momento dado ya no se hallará determinado por un estado del diagrama de transiciones, sino por la colección de los estados actuales de todas las rutas posibles; si K es la colección de estados actuales, al leer x del flujo de entrada obtendríamos un nuevo estado actual, representada por la colección de los estados a los que es posible llegar desde un estado K. Al pasar de conjuntos de estados a conjuntos de estados, se evitan los retrocesos (las rutas sucesivas distintas) además de superar el no determinismo del autómata. TEOREMA.- Para cada autómata finito no determinista, existe un autómata finito determinista que acepta exactamente el mismo lenguaje.
Del anterior teorema se deduce que el no determinismo no permite que se acepte un conjunto mayor de cadenas. TEOREMA.- Para cualquier alfabeto S, {L(M) es un autómata finito determinista con alfabeto S} = { L(M) es un autómata finito no determinista con alfabeto S}.DEMOSTRACIÓN Se trata de una repetición del teorema anterior A partir de este momento sólo se va a hacer referencia a autómatas finitos sin distinguir entre deterministas y no deterministas (a los autómatas finitos también se les llama autómatas regulares)
© 1999 Roberto de la Fuente López. Todos los derechos reservados Fecha de actualización: 15 de abril de 1999 |