The document discusses finite automata and regular expressions. It contains two theorems: 1) For any regular expression r, there exists a non-deterministic finite automaton (NFA) that accepts the language L(r). 2) If a language L is accepted by a deterministic finite automaton (DFA), then L can be represented by a regular expression. It also discusses three decision problems for finite automata - membership, emptiness, and finiteness - and explains that algorithms exist to solve all three problems in polynomial time.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
153 views1 page
Finautomata
The document discusses finite automata and regular expressions. It contains two theorems: 1) For any regular expression r, there exists a non-deterministic finite automaton (NFA) that accepts the language L(r). 2) If a language L is accepted by a deterministic finite automaton (DFA), then L can be represented by a regular expression. It also discusses three decision problems for finite automata - membership, emptiness, and finiteness - and explains that algorithms exist to solve all three problems in polynomial time.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1
Finite Automata and Regular Expressions - II
Theorem Let r be a regular expression. Then there exists an NFA
with − transitions accepting L(r) Theorem If L is accepted by a DFA, then L can be represented by a regular expression. The first theorem is relatively easy. The second theorem uses Dynamic Programming. So, suppose we are given the transition diagram of a DFA. We would like to represent the set of strings accepted by a regular expression. Suppose the states of the DFA are 1, 2, . . . n. It suffices to represent for each pair of states i, j, the set of strings which take the DFA from state i to state j (call this set Rij ). Now, how does one represent Rij ? If there is a direct transition from i to j, Rij clearly includes this one-letter string. More generally, we define Rijk to be the set of strings that take the DFA from state
i to state j going through no intermediate state higher than k. Then the
dynamic programming recursion is k k−1 k−1 ∗ k−1 k−1 Rij = Ri,k (Rkk ) Rkj ∪ Rij .
The base case Rij0 is easy to compute and so one may “compute” (or write k .... a reg. expression) for Rij
Decision algorithms for Finite Automata
Membership Given a DFA and a string x and a DFA M , decide if M
accepts x. Emptiness Given a DFA M decide if it accepts ant string at all. Finiteness Given a DFA M , decide if L(M ) is finite. All these three questions can be decided in polynomial time - we are now thinking of one fixed algorithm (C-Program) which takes as input a description of (any) DFA M (and any string x) and answers the question in time polynomially bounded in the length of the input. We will later see that such questions will be undecidable for more complicated models. So, we have a big win if we can model questions about Verifying a family of circuits or similar objects as questions regarding Finite Automata or similar restricted models of computation; this is what is often done. The decision algorithms for DFA are easy to see : For Membership, one may just simulate in quadratic time. For emptiness, we just have to answer the question of whether there is a path in the transition graph from the start state to some final state, a path problem. For finiteness : L(M ) is infinite iff there is a cycle in the trasition graph which is reachable from the start state and from which, we can reach a final state.