Contenido
PalancaAlgoritmo de McNaughton y Yamada
el algoritmo de McNaughton y Yamada sigue los siguientes pasos. Dado un autómata Para no estados, y cuyos estados están numerados del 1 al no, damos una expresión para los lenguajes compuestos por las palabras que etiquetan los caminos de I Para j, para cualquier pareja I, j. Esta expresión se construye por inducción utilizando una condición en las rutas. Esta condición establece que las rutas solo pasan por ciertos estados autorizados.
Nuestro autómata teniendo no estados, por lo que nos enfocamos en construir un expresión regular para cada uno de no×no idiomas LOSs, s ' = { w∈X * | s.w = s'} formado por todas las palabras que envían un estado s cualquiera en otro estado s'. Si lo logramos, el lenguaje reconocido por el autómata será el valor de una unión finita de expresiones regulares y por tanto de una expresión regular.
La idea es avanzar paso a paso teniendo en cuenta un número creciente de estados intermedios entre s y s'. Se supone que los estados están numerados de 0 a no, comenzamos con no estado intermedio, entonces solo s0, después s0 y s1, después s0, s1 y s2etc.
Apuntamos LOSs, s '(k) es la expresión para el conjunto de palabras que etiquetan las rutas de sa s 'y cuyos vértices intermedios son menores o iguales que k. Los vértices iniciales sy los finales s 'no son intermedios, por lo que no están limitados a ser menores o iguales que k.
Construimos el LOSs, s '(k) por inducción en k, comenzando con k = 0 y terminando con k = n. Cuando k = n, la restricción sobre k ya no es una restricción, y LOSs, s '(k)=LOSs, s ' si s ≠ s ', y ε +LOSs, s(no)=LOSs, s.
Para k = 0, dado que los vértices se numeran a partir de 1, la restricción simplemente expresa que no hay vértice intermedio. Las únicas rutas son las transiciones de sa s '(ignoramos una ruta de longitud 0 en el estado s).
Por lo tanto, tenemos con s = p y s '= q:
Para la inducción, consideramos un camino de sa s 'cuyos vértices intermedios son más pequeños que k. Entonces son posibles dos casos:
- los vértices intermedios son más pequeños que k-1, entonces la etiqueta está en LOSs, s '(k-1)
- el camino pasa por el estado k. Luego descomponemos el camino en partes cuyos vértices intermedios son más pequeños que k-1. Para ello, consideramos cada aparición del vértice k en este camino: entre dos ocurrencias consecutivas, los vértices intermedios son menores que k-1. Entonces tenemos la fórmula con s = p y s '= q: .
Por tanto, hay n + 1 pasos. Cada uno de los pasos requiere el cálculo de n² expresiones, y el tamaño de las propias expresiones aumenta con k.
Ejemplo
Considere el siguiente autómata:
Con k = 0 tenemos:
Entonces k = 1:
Entonces k = 2:
Entonces k = 3:
Para el último paso simplemente calculamos las dos expresiones que nos interesan (estados iniciales a estados finales):
Por tanto, la expresión deseada es ab (a + b) ∗ + (b + aa) a ∗.