¿Alguien sabe como puedo hacer la intersección entre dos autómatas finitos?
1 Respuesta
Respuesta
1
1
Anónimo
Supongo que te refieres a, si tenemos dos autómatas finitos A1 y A2(deterministas o no), hallar otro autómata A de forma que L(A)= L(A1) intersección L(A2). Donde L(A) significa el lenguaje generado por el autómata A. Bueno, sin pérdidas de gneralidad pordemos considerar que los autómatas son DFA's (Deterministic Finite Autómata, siglas en inglés, ¿qué es como a mí me gustaba ponerlo) porque si tenemos NFA-? (? Es la palabra vacía), es decir, no determin. ¿Con?-Transiciones, podemos pasarlos a NFA's equivalentes, y estos a DFAs equivalentes. Luego supongamos A1 y A2 dos DFAs, y serán A1 = (Q1,E,d1,q1,F1) y A2 = (Q2,E,d2,q2,F2), donde se sigue el orden DFA = (estados,alfabeto,f.de transición, estado inicial, y conjunto de estados finales o de aceptación). Buscamos un autómata A que acepte el lenguaje L(A1) INTERSECCION L(A2). Sea A = (Q1 x Q2, E, d, <q1,q2>, F1 x F2), donde Q1 x Q1 es el producto cartesiano, y donde <q1,q2> es un par ordenado. Por tanto, sólo falta definir la función de transión d , y se hace como sigue: Para todo estado p1 en Q1 y p2 en Q2, y símbolo a en E: d(<p1,p2>,a) = <d1(p1,a), d2(p2,a)> ¿Cómo vemos la estrategia es ejecutar los dos DFAs en paralelo y aceptar cuando se estén en estados finales para ambos aútomatas (una idea sencilla no?) Sólo falta demostrar que este autómata así definido cumple L(A) = L(A1) INTERSECCIÓN L(A2). Pero ello es muy fácil por inducción sobre la longitud de la palabra.