DFA Minimization: Finding all Nerode equivalence classes.

843 Views Asked by At

So I read that you can easily read off the Nerode equivalence classes if you have a minimal DFA.

So after the minimization process I got this:enter image description here But how can I read off the equivalence classes? I read that I have write down all possible pathes. So I start in $z_o, z_2,z_6$. So my first class is ($\varepsilon$). then I go to $z_1,z_7$ and got (0). Then I go $z_3$ and got (1). But something feels not right. Please help me.

1

There are 1 best solutions below

2
On BEST ANSWER

The Myhill-Nerode relation $x\equiv_A y$ is defined as true if for every string $z\in \Sigma^*$, either automaton $A$ accepts both $xz$ and $yz$ or declines both $xz$ and $yz$. Clearly, if two strings $x$ and $y$ end in the same state in $A$, then $x\equiv_A y$. Normally, however, we cannot say that the converse is true (i.e. that $x\equiv_A y$ implies that two strings $x$ and $y$ end in the same state) because multiple states can be equivalent.

If the DFA is minimal, then no two states are equivalent. Therefore, the equivalence classes are exactly the strings that end in any given state. In your example, this means that there are $4$ equivalence classes. We can read off these equivalence classes by listing every possible string that ends in a given state. Consider the state $(z_0,z_2,z_6)$. Let every string that ends in $(z_0,z_2,z_6)$ be written as $uv$ such that $u$ is a string that ends in $(z_0,z_2,z_6)$ only ever enters the state once. Let $v$ be a string that, if started at $(z_0,z_2,z_6)$, will end back at that state. The only possibility for $u$ is $\epsilon$ (the empty sting) and the possibilities for $v$ can be represented as $(1^*(010)^*)^*$. Therefore the equivalence class for $(z_0,z_2,z_6)$ can be represented as $$ uv=\epsilon(1^*(010)^*)^*=(1^*(010)^*)^* $$ Consider $(z_1, z_7)$. The only way for a string to end in this state is if it was in the previous equivalence class and then had an extra $0$ (note that this state has no self loops). This equivalence class is represented by $$ (1^*(010)^*)^*0 $$ We can continue this pattern for the other $2$ states so that $$ z_0,z_2,z_6:\{(1^*(010)^*)^*\} \\ z_1,z_7:\{(1^*(010)^*)^*0\} \\ z_3:\{(1^*(010)^*)^*01\} \\ z_4,z_5:\{((1^*(010)^*)^*00 \text{ }|\text{ }(1^*(010)^*)^*011)(0|1)^*\} \\ $$ Note that the last state has self loops and therefore $(0|1)^*$ is appended to the end.