Intersection of two Deterministic Finite Automata (DFA)

38 views Asked by At

I am looking for a method to make an intersection of two automata. As each language is a set of strings and the intersection operator is a defined one in the context of sets, and each language has a corresponding automaton, probably there is way to make an intersection of two automata. Consider we have a regex like “(a+b)*ab” named R1 and another one like “(aa+bb)*ab” named R2. Regexes R1 and R2 have corresponding automata named M1 and M2 respectively as shown below: M1, M2. I found a method explained in this link to make an intersection of two automata: https://www.tutorialspoint.com/explain-the-intersection-process-of-two-dfa-s. Using mentioned method to make an intersection of two automata, I made the intersection automaton named M3 as shown below: M3. This method works well for small scales but as the scale grows up, we face time and space complexity problem. In addition, this method is not an optimized one and it produces unreachable states. Consider we have 600 states in M1 and 500 states in M2. Using mentioned method would make an automaton with 300000 states. Does anybody know another method to make an intersection of two automata?

I tried to make an intersection of two automata in optimized way but it's not optimized.

0

There are 0 answers