LARA

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
minimization_of_state_machines [2008/09/20 18:06]
vkuncak
minimization_of_state_machines [2008/09/24 09:57]
vkuncak
Line 7: Line 7:
  
 This is the process of //​minimization//​ of $M$. This is the process of //​minimization//​ of $M$.
 +  * an easy case of minimizing size of '​generated code' in compiler
  
 We say that state machine $M$ distinguishes strings $w$ and $w'$ iff it is not the case that ($w \in L(M)$ iff $w' \in L(M)$). We say that state machine $M$ distinguishes strings $w$ and $w'$ iff it is not the case that ($w \in L(M)$ iff $w' \in L(M)$).
Line 60: Line 61:
  
 Consequently,​ $Q^2 \setminus \nu$ is the equivalence relation. ​ From the definition of this equivalence it follows that if two states are equivalent, then so is the result of applying $\delta$ to them.  Therefore, we have obtained a well-defined deterministic automaton. Consequently,​ $Q^2 \setminus \nu$ is the equivalence relation. ​ From the definition of this equivalence it follows that if two states are equivalent, then so is the result of applying $\delta$ to them.  Therefore, we have obtained a well-defined deterministic automaton.
 +
  
 ==== Minimality of Constructed Automaton ==== ==== Minimality of Constructed Automaton ====
  
-Note that if two states are non-equivalent,​ there is $w$ such that states $\delta(q_0,​s_q w)$ and $\delta(q_0,​s_{q'​} w)$ have different acceptance, so $M$ distinguishes $s_q w$ and $s_{q'​}w$. ​ Now, if we take any other state machine ​ $M' = (\Sigma,​Q',​\delta',​q'​_0,​F'​)$ with $L(M'​)=L(M)$,​ it means that $\delta'​(q'​_0,​s_q) \neq \delta'​(q'​_0,​s_{q'​})$,​ otherwise $M'$ would not distinguish $s_q w$ and $s_{q'​} w$.  So, if there are $K$ pairwise non-equivalent states in $M$, then a minimal finite state machine for $L(M)$ must have at least $K$ states. ​ Note that if the algorithm constructs a state machine with $K$ states, it means that $Q^2 \setminus \tau$ had $K$ equivalence relations, which means that there exist $K$ non-equivalent states. ​ Therefore, any other deterministic machine will have at least $K$ states, proving that the constructed machine is minimal.+Note that if two distinct ​states are non-equivalent,​ there is $w$ such that states $\delta(q_0,​s_q w)$ and $\delta(q_0,​s_{q'​} w)$ have different acceptance, so $M$ distinguishes $s_q w$ and $s_{q'​}w$. ​ Now, if we take any other state machine ​ $M' = (\Sigma,​Q',​\delta',​q'​_0,​F'​)$ with $L(M'​)=L(M)$,​ it means that $\delta'​(q'​_0,​s_q) \neq \delta'​(q'​_0,​s_{q'​})$,​ otherwise $M'$ would not distinguish $s_q w$ and $s_{q'​} w$.  So, if there are $K$ pairwise non-equivalent states in $M$, then a minimal finite state machine for $L(M)$ must have at least $K$ states. ​ Note that if the algorithm constructs a state machine with $K$ states, it means that $Q^2 \setminus \tau$ had $K$ equivalence relations, which means that there exist $K$ non-equivalent states. ​ Therefore, any other deterministic machine will have at least $K$ states, proving that the constructed machine is minimal
 + 
 +=== Example === 
 + 
 +Construct automaton recognizing 
 +  * language {=,<=} 
 +  * language {=,<​=,​==} 
 +Minimize the automaton.