AUTÓMATAS FINITOS NO DETERMINISTA AUTÓMATAS FINITOS NO DETERMINISTA: PUNTO DE VISTA INFORMAL, FUNCIÓN DE TRANSICIÓN EXTENDIDA
Ciencias de la Computación
Revista de Ingeniería de Sistemas
AUTÓMATAS FINITOS NO DETERMINISTA: DE
PUNTO
VISTA INFORMAL, FUNCIÓN DE TRANSICIÓN
EXTENDIDA
Volumen II I– Año 2015 Contenido EDITORIAL Introducción……………………………..3 Autómatas finitos no deterministas……..4 Punto de vista informal de los AFN….…4 Ejemplo1……........……………………..4 Definición de AFN ……………………..5 Función de transición extendida………...5 Solución al problema de síntesis ..……...6 Ejemplo ……………..………………...…8
Conclusiones …..……………………….8 Bibliografía …….………………….…...10
El desarrollo de la revista de ingeniería de sistemas está basado en un método de investigación científico, el cual permite el desarrollo del aprendizaje en forma dinámica, ofreciendo la oportunidad de compartir recursos, ideas, criterios, y experiencias. Esta tercera edición se desarrolla en función de un tema en específico, autómatas finitos no determinista: punto de vista informal, función de transición extendida, el tema ha sido desarrollado por un equipo de estudiantes de la Universidad de Oriente, Núcleo de Monagas, cursantes de áreas de grado en la modalidad curso especial de grado. Queremos expresar agradecimientos por la oportunidad brindada, y esperamos que la revista resulte de provecho para futuros investigadores y la adquisición de conocimientos.
INTRODUCCIÓN
El lenguaje se remonta a épocas muy antiguas en las cuales el hombre se encontraba en la búsqueda de comunicar sus experiencias y expresarlas a los demás, en tal sentido esta búsqueda dio origen a implementar un grupo de reglas sintácticas, simbólicas, corporales, y sonoras que dieron origen al lenguaje convirtiéndose en un sistema de comunicación estructurado. Durante el transcurrir del tiempo han surgidos nuevos procesos y reglas que rigen el lenguaje, en tal sentido ha venido obteniendo modificaciones que han dado origen a una mejora y así lograr mejor su comprensión. Desde la antigüedad se ha visto el uso de los autómatas en estatuas como el movimiento de brazos, también hacer q imiten sonidos y otras formas de usos que le dieron para poder dar movimiento a un objeto o aparato. Hoy en día se conocen los autómatas y su funcionalidad en el mundo y en cada ámbito laboral, su mecanismo y a que entorno va dirigido el autómata. Se puede apreciar como el mundo va creciendo y como estos van tomando gran auge y desarrollo tecnológico en sus entornos, el hombre ha buscado siempre el crecimiento para mostrar sus capacidades para la creación de máquinas y en este tiempo su desarrollo lo ha llevado a la innovación y desarrollo de máquinas que realizar unos determinados movimientos, estos imitan una figura y dan movimientos animados, se tienen en cuenta que existen autómatas finitos deterministas y los no deterministas conocidos como AFD y AFND, respectivamente, de estos cada características los involucra en entornos y ambientes en los que cada uno da apoyo y mejora a la actividad o necesidad requerida.
3
Autómatas finitos no deterministas Un autómata finito “no determinista” (AFN) tiene la capacidad de estar en varios estados a la vez. Esta capacidad a menudo se expresa como la posibilidad de que el autómata “conjeture” algo acerca de su entrada. Por ejemplo, cuando el autómata se utiliza para buscar determinadas secuencias de caracteres (por ejemplo, palabras clave) dentro de una cadena de texto larga, resulta útil “conjeturar” que estamos al principio de una de estas cadenas y utilizar una secuencia de estados únicamente para comprobar la aparición de la cadena, carácter por carácter. (Hopcroft, Montwani, & Ullman, 2007) Antes de examinar las aplicaciones, necesitamos definir los autómatas finitos no deterministas y demostrar que aceptan un lenguaje que también es aceptado por algunos AFD. Es decir, los AFN aceptan los lenguajes regulares, al igual que los AFD. Sin embargo, existen razones para estudiar los AFN: a menudo son más compactos y fáciles de diseñar que los AFD. Además, siempre es posible convertir un AFN en un AFD, este último puede tener un número exponencialmente mayor de estados que el AFN; afortunadamente, son pocos los casos de este tipo. (Hopcroft, Montwani, & Ullman, 2007)
Punto de vista informal de los autómatas finitos no deterministas Al igual que el AFD, un AFN tiene un conjunto finito de estados, un conjunto finito de símbolos de entrada, un estado inicial y un conjunto de estados de aceptación. También dispone de una función de transición, que denominaremos normalmente δ. La diferencia entre los AFD y los AFN se encuentra en el tipo de función δ. En los AFN, δ es una función que toma un estado y símbolos de entrada como argumentos (al igual que la función de transición del AFD), pero devuelve un conjunto de cero, uno o más estados (en lugar de devolver exactamente un estado, como lo hacen los AFD). Comenzaremos con un ejemplo de un AFN y luego proporcionaremos su definición precisa. (Hopcroft, Montwani, & Ullman, 2007)
4
Ejemplo1 Según (Hopcroft,Montwani, Ullman,2007) La Figura 1 muestra un autómata finito no determinista, cuyo trabajo consiste en aceptar todas y sólo las cadenas formadas por ceros y unos que terminan en 01. El estado q0 es el estado inicial y podemos pensar que el autómata estará en dicho estado (quizá entre otros estados) siempre que no haya “conjeturado” que ya ha comenzado a leer el 01 final. Siempre es posible que el siguiente símbolo no sea el comienzo de la cadena 01 final, incluso aunque dicho símbolo sea 0. Por tanto, el estado q0 puede hacer una transición a sí mismo tanto con un 0 como con un 1.
1, y si lo es, pasa al estado q2 y acepta la entrada. Observe que no existe un arco que salga de q1 etiquetado con 0, y tampoco hay arcos que salgan del estado q2. En estas situaciones, el hilo de la existencia del AFN correspondiente a dichos estados simplemente “muere” , aunque pueden continuar existiendo otros hilos. Mientras que un AFN tenga un arco que salga de cada estado para cada símbolo de entrada, el AFN no tendrá dicha restricción. Por ejemplo, en la Figura 1 pueden verse casos en los que el número de arcos es cero, uno y dos.
Figura Nº 2: Estados de un AFN durante el procesamiento de la secuencia de entrada 00101. Fuente: (Hopcroft, Montwani, & Ullman, 2007) Introducción a la teoría de autómatas, lenguajes y computación.
Figura Nº 1: Autómata finito no determinista
Sin embargo, si el siguiente símbolo es 0, este AFN también conjetura que el 01 final ha comenzado; por tanto, un arco etiquetado con 0 lleva del estado q0 al estado q1. Observe que existen dos arcos etiquetados con 0 que salen de q0. El AFN tiene la opción de pasar al estado q0 o al estado q1, y de hecho va hacia ambos, como veremos cuando precisemos las definiciones. En el estado q1, el AFN comprueba si el siguiente símbolo es un
La Figura 2 muestra cómo procesa un AFN las entradas. Hemos visto lo que ocurre cuando el autómata de la Figura 1 recibe la secuencia de entrada 00101. Parte siempre de su estado inicial, q0. Cuando lee el primer 0, el AFN puede pasar al estado q0 o al estado q1, por lo que lo hace a ambos. Estos dos hilos se indican en la segunda columna de la Figura 2. A continuación, lee el segundo 0. El estado q0 puede pasar de nuevo a q0 o a q1. Sin embargo, el estado q1 no tiene transición para la entrada 0, por lo que el autómata se detiene. Cuando se produce
5
la tercera entrada, un 1, hay que considerar las transiciones tanto de q0 como de q1. Comprobamos que q0 sólo pasa a q0 cuando la entrada es 1, mientras que el estado q1 pasa sólo al estado q2. Por tanto, después de leer la secuencia, el AFN se encuentra en los estados q0 y q2. Dado que q2 es un estado de aceptación, el AFN acepta la secuencia 001. Sin embargo, la entrada no ha terminado. La cuarta entrada, un 0, hace que el hilo de q2 muera, mientras que q0 va tanto a q0 como a q1. La última entrada, un 1, hace que q0 permanezca en este mismo estado y q1 pasa al estado q2. Como de nuevo estamos en un estado de aceptación, la secuencia 00101 es aceptada.
Definición autómata finito determinista
de no
A continuación presentamos las nociones formales asociadas con los autómatas finitos no deterministas según (Hopcroft, Montwani, & Ullman, 2007) indicamos las diferencias entre los AFD y AFN. Un AFN se representa esencialmente como un AFD:
• F, un subconjunto de Q, es el conjunto de estados finales (o de aceptación). • δ, la función de transición, es una función que toma como argumentos un estado de Q y un símbolo de entrada de Σ y devuelve un subconjunto de Q. Observe que la única diferencia entre un AFN y un AFD se encuentra en el tipo de valor que devuelve δ: un conjunto de estados en el caso de un AFN y un único estado en el caso de un AFD. Por otro lado (Rios, 2005) define a los Autómatas finitos no determinista como un modelo matemático que consiste de:
Se desconoce el año en que (Serafin) establece. Son autómatas que pueden realizar una transición sin consumir entrada. Estas transiciones se etiquetan con ε en el diagrama asociado. En la definición, lo único que hay que cambiar es la función de transición que ahora está de- finida de Q×(A∪{ε}) en P(Q).
Las transiciones nulas dan una nueva capacidad al autómata. Si se tiene una transición nula, el
A = (Q, ∑, δ, q0, F) Donde: •
Q es un conjunto finito de estados.
• ∑ es un conjunto finito de símbolos de entrada. • q0, un elemento de Q, es el estado inicial.
Un conjunto de estados, S. Un conjunto de símbolos de entrada, ∑ (alfabeto). Una función de transición denominada move, que mapea pares, p ( s , a ) hacia un conjunto de estados. s es un estado y a es un símbolo en la entrada. Un estado de inicio denotado por s0. Un conjunto de estados de aceptación, denotado por F.
6
autómata puede quedarse donde está o cambiar de estado sin consumir ningún símbolo de la palabra de entrada. Como en los AFND, una palabra será aceptada si se llega a un estado final con alguna de las elecciones posibles.
Función de transición extendida Según (Hopcroft, Montwani, & Ullman, 2007) Como para los AFD, necesitamos extender la función de transición δ^ de un AFN a una función δ^ que tome un estado q y una cadena de símbolos de entrada w, y devuelva el conjunto de estados en los que el AFN se encontrará si se inicia en el estado q y procesa la cadena w. La idea se ha sugerido en la Figura 2; en esencia, δ^ (q,w) es la columna de los estados encontrados después de leer w, si q es el único estado en la primera columna. Por ejemplo, la Figura 2 sugiere que δ^ (q0, 001) = {q0, q2}. Formalmente, definimos δ para una función de transición del AFN δ como sigue: BASE. δ^ (q, ɛ) = {q}. Es decir, si no leemos ningún símbolo de entrada, estaremos en el estado en el que hayamos comenzado.
Figura Nº 3: función de transición Fuente: (Hopcroft, Montwani, & Ullman, 2007) Introducción a la teoría de autómatas, lenguajes y computación.
PASO INDUCTIVO. Supongamos que w tiene la forma w = xa, donde a es el símbolo final de w y x es el resto de w. Supongamos también que δ^ (q,x) = {p1, p2, . . . , pk}. Sea
Entonces δ^(q,w) = {r1, r2, . . . , rm}. Menos formalmente, para calcular δ^ (q,w) obtenemos primero δ^ (q,x), y después seguimos todas las transiciones de estos estados que estén etiquetadas con a. Ejemplo Utilizamos ^δ para describir el procesamiento de la entrada 00101 por el autómata AFN de la Figura 1. Un resumen de los pasos es el siguiente:
7
Algoritmo recursivo El algoritmo recursivo asocia a cada Expresión Regular, un autómata que reconoce el lenguaje descrito por dicha Expresión Regular.
Figura Nº4 : Función de transición para la entrada 00101 Fuente: (Hopcroft, Montwani, & Ullman, 2007) Introducción a la teoría de autómatas, lenguajes y computación.
La línea (1) es la regla básica. Obtenemos la línea (2) aplicando δ al único estado, q0, del conjunto anterior y obtenemos {q0, q1} como resultado. La línea (3) se obtiene calculando la unión de los resultados de aplicar δ^ a los dos estados del conjunto anterior con la entrada 0. Es decir, δ^ (q0,0) = {q0,q1}, mientras que δ^ (q1,0) = Ǿ. Para obtener la línea (4), calculamos la unión de δ ^ (q0,1) = y δ^ (q1,1) = {q2}. Las líneas (5) y (6) son similares a las líneas (3) y (4).
• a = 0: crear un nodo p inicial y otra q final y no conectarlos (figura 1).
Figura 1: Autómata que reconoce el lenguaje descrito por la Expresión Regular 0.
a = ε: crear un nodo p inicial y otro q final y conectarlos con un arco etiquetado con ε (figura 2).
Figura 2: Autómata que reconoce el lenguaje descrito por la Expresión Regular ε.
Solución al problema de síntesis Existen dos algoritmos para pasar de una Expresión Regular, que representa a un Lenguaje Regular, a un autómata que reconozca dicho lenguaje. El primero es un algoritmo que asocia a cada regla de descripción de una Expresión Regular un autómata que la reconoce. El problema es que se generan autómatas muy grandes y es necesario luego minimizarlos para poder trabajar con ellos. El segundo algoritmo está basado en el concepto de derivada, que se definirá más adelante.
a = a, : crear un nodo P inicial y otro q final y conectarlos con un arco etiquetado con a (figura 3).
Figura 3: Autómata que reconoce el lenguaje descrito por la Expresión Regular .
8
α=β+ζ se parte de dos grafos (uno que representa a (3 y otro a 0') ,uno que tiene como nodo inicial a Pi, nodo final a qi y están unidos por un grafo que representa a (3, y otro que tiene como nodo inicial a P2 , nodo final a q2 y están unidos por un grafo que representa a 0': crear un nodo inicial p, unido por un arco etiquetado con A a Pi y otro arco etiquetado con A a P2, y un nodo final q al que llegan arcos etiquetados con A desde qi y q2 , que dejan de ser nodos finales (figura 4).
Figura 4: Autómata que reconoce el lenguaje descrito por la Expresión Regular β+ζ α= β⋅ζ y, al igual que antes, se parte de dos grafos, uno que tiene como nodo inicial a p1, nodo final a q1 y están unidos por un grafo que representa a β, y otro que tiene como nodo inicial a p2 , nodo final a q2 y están unidos por un grafo que representa a ζ: crear un arco etiquetado con λ desde q1 (que deja de ser nodo final del nuevo grafo) a p2, y poner como nodo final del nuevo grafo a q2 (figura 5).
Figura 5: Autómata que reconoce el lenguaje descrito por la Expresión Regular ⋅ y se parte de un grafo formado por un nodo inicial etiquetado con p1 conectado con un grafo que representa a β al nodo final q1 : crear un arco etiquetado con λ de p1 a q1 y otro igual de q1 a p1 (figura 6).
Figura 6: Autómata que reconoce el lenguaje descrito por la Expresión Regular
Ejemplo: Si se tiene la Expresión Regular 1(0+1)*, las figuras 7, 8, 9, y 10 representan las diferentes fases de construcción del autómata que la reconoce. Como se puede comprobar, el autómata no es mínimo, pero se puede utilizar el algoritmo de construcción del autómata mínimo descrito en el apartado de AFDs para minimizarlo.
9
Σ= (0, 1) F= q2 Donde iterando según la cadena tenemos: Cadena w= 0100 δ (q0, 0)= {q0, q1} δ (q0,1)= {q0} Figura 7: Autómatas que reconocen los lenguajes descritos por las Expresiones Regulares 1, 0 y 1.
δ (q1, 1)= {q3} δ (q0,0)= {q0, q1} δ (q3,0)= {q4} δ (q0,0)= {q0, q1} δ (q1,0)= {q2,q3} δ (q4,0)= {q5} Por ende podemos decir que la función de transición esta denotada por:
Figura 8: Autómatas que reconocen los lenguajes descritos por las Expresiones Regulares 1 y 0+1.
Ejemplo:
δ^ ( q0, w)= { q0, q1, q2, q3, q5}, esta sería la respuesta de la función de transición extendida partiendo de q0 el estado inicial y trabajando con la cadena representada por w, cabe destacar, que para determinar si la cadena es aceptada o no por el autómata, es necesario hacer una intersección del conjunto de estado, obtenido de la cadena, con el conjunto F de los estados de aceptación, en caso de que exista un estado de aceptación en la w, esta es aceptada por el autómata, a partir de esta función de transición obtenemos el lenguaje del autómata.
De acuerdo con el autómata A = (Q, Σ, δ, q0, F) donde Q= (q0, q1, q2, q3, q4, q5, q6)
10
CONCLUSIONES Podemos decir que actualmente el uso de las maquinas animadas ha tomado un desarrollo ampliamente grande y de estos el hombre aprovecha sus recursos para el desarrollo y crecimiento de un autómata, teniendo en cuenta que los autómatas hoy en día realizan gran cantidad de actividades y para poder realizarlas necesitan poder una secuencia que les permita avanzar en su trayecto de realizar la tarea, es el conjunto de todas las cadenas que dan lugar a una secuencia de transiciones desde el estado inicial hasta un estado de aceptación, por medio de una función de transición extendida que le permite moverse de un estado a otro, donde su relación en el lenguaje los identifica como representaciones declarativas o procedurales. Teniendo en cuenta que un lenguaje reconocido por un AFND es el conjunto de cadenas que llevan al autómata a un estado de aceptación.
11
BIBLIOGRAFÍA
Hopcroft, J. E., Montwani, R., & Ullman, J. D. (2007). Introducción a la teoría de autómatas, lenguajes y computación. Madrid: PEARSON EDUCACIÓN S.A. Rios, A. (2005). Teoria de automatas. Serafin, M. (s.f.). Modelos de computacion I. Universidad de Granada.
12
REVISTA DE INGENIERÍA DE SISTEMAS.
VOL. 2 .Año 2015 Universidad de Oriente, Núcleo de Monagas. Curso Especial de Grado. Maturín, Monagas Venezuela.
Editores. Br. José Vásquez. Br. Argenis Gil. Grupo PYTHON
Diseño Gráfico. Br. Argenis Gil
Contacto: josegvasquezg@gmail.com argenisgilmarval@gmail.com