Por VICTOR QUINTANA Y ALEXIS LARENAS transformación de AF a una ER 1. Añadir un estado inicial y final al AF, con transiciones vacías. 2. Eliminar nodos intermedios en la GT (Grafo de Transición) 3. La GT se transforma en una sola ER En la figura siguiente: De p1 a q1: De p1 a qn: De pn a q1: De pn a qn: anterior vemos que se puede eliminar el nodo q, quedando lo 1( 1 + ... + 1( 1 + ... + n( 1 + ... + n( 1 + ... + n) 1 n) n n) 1 n) n El grafo de cualquier AFN puede ser considerado un grafo de transición generalizado si las etiquetas de las ligas se interpretan apropiadamente. Una liga etiquetada con el símbolo a es interpretado como una liga etiquetada con la expresión a, mientras que una liga etiquetada con múltiples símbolos a,b,… es interpretada como una liga etiquetada con las expresiones a+b+… De aquí que se sigue que para cada expresión regular, existe un grafo de transición generalizado que la acepta. Inversamente, cada lenguaje aceptado por un grafo de transición es regular. Debido a que la etiqueta de cada camino en un grafo de transición generalizado es una expresión regular, esto parece ser una consecuencia inmediata del teorema anterior. 1 Por VICTOR QUINTANA Y ALEXIS LARENAS La equivalencia para los grafos de transición generalizados está definida en términos del lenguaje aceptado. Consideremos un grafo de transición generalizado con los estados {q,qi,qj,…}, donde q no es estado inicial ni final, y para el cual creamos un grafo de transición generalizado, con al menos un estado eliminado q. Podemos hacer esto sin no alteramos el lenguaje denotado por el conjunto de etiquetas que pueden ser generados cuando vamos de q0 a qf. La construcción lograda está ilustrada en la siguiente figura, en donde el estado q es eliminado y las ligas a,b,… se usan para las expresiones generales. El caso anterior es el general en el sentido de que q no tiene ligas a todos los estados qi,q,qj. El grafo queda de la siguiente manera: La construcción del grafo anterior muestra las ligas que han sido introducidas de modo que el lenguaje del grafo de transición generalizado no cambia cuando eliminamos q. El proceso completo requiere que esto sea realizado en todos los pares (qi,qj) en K-{q} antes de eliminar q. A pesar de que no mostramos formalmente la prueba de esto, puede mostrarse que la construcción desemboca en un grafo de transición generalizado equivalente. Un argumento más riguroso, sería dar un método formal para construir los estados y las transiciones de las máquinas combinadas a partir de los estados y transiciones de las partes, entonces probar por inducción sobre el número de operadores que tiene la construcción del autómata que acepta el lenguaje denotado por cualquier expresión regular particular. 2 Por VICTOR QUINTANA Y ALEXIS LARENAS Ejercicio. Obtener la ER para el AF siguiente: Una aplicación de búsqueda de patrones ocurre en la edición de textos. Todos los editores de texto permiten escanear archivos para encontrar la ocurrencia de una cadena dada; la mayoría de los editores extienden esta operación para permitir buscar patrones. Por ejemplo, el editor ed en el sistema operativo UNIX reconoce el comando /aba*c/ como una instrucción de búsqueda del archivo a la primera ocurrencia de la cadena ab, seguido por un número arbitrario de a’s, seguido por una c. Vemos de este ejemplo que el editor de UNIX puede reconocer expresiones regulares. 3