2.6k views

Consider the set of strings on $\{0,1\}$ in which, every substring of $3$ symbols has at most two zeros. For example, $001110$ and $011001$ are in the language, but $100010$ is not. All strings of length less than $3$ are also in the language. A partially completed DFA that accepts this language is shown below.

The missing arcs in the DFA are:

A.
00 01 10 11 q
$00$ $1$ $0$
$01$       $1$
$10$ $0$
$11$     $0$
B.
00 01 10 11 q
$00$   $0$     $1$
$01$   $1$
$10$       $0$
$11$   $0$
C.
00 01 10 11 q
$00$   $1$     $0$
$01$   $1$
$10$     $0$
$11$   $0$
D.
00 01 10 11 q
$00$   $1$     $0$
$01$       $1$
$10$ $0$
$11$     $0$
edited | 2.6k views

(D) is the answer. From $00$ state, a '$0$' should take the DFA to the dead state-$q$. From $11$, a '$0$' should go to $10$ representing the $10$ at the end of string so far. Similarly, from $00$ a $1$ should go to $01$, from $01$ a '$1$' should go to $11$ and from $10$ a '$0$' should go to '$00$'.

edited by
+5
From 11, a '0' should go to 10
+1
Though Sir has explained the logic but the name of the states are themselves very indicative. From a state $q_{ab}$ on input symbol c we go to state $q_{bc}$ which means we need to be concerned about the latest 2 symbols in the i/p string so that we can take action accordingly after seeing the 3rd one.

Eg: From $q_{00}$ on 1 we go to $q_{01}$, From $q_{01}$ on 1 we go to $q_{11}$

Only for From $q_{00}$ on 0 this doesn't hold and we need to send it to Dead state.
'000' cannot be accepted. So, '00' when gets another 0 must go to a dead state, q.

So, options A and B are eliminated.

By analyzing options C and D, we can understand that when states like 00, 01, 11 or 10 get an input 1 or 0, the next state is the last two digits of the newly formed string.

11 +0 -> 110 (So, 11 on 0 goes to 10).

01+1 -> 011 (So, 01 on 1 goes to 11).

So option D is correct.
0
Awsome Explaination.. thanks alot.......
Option A & B false: state 00 -> i/p 0 -> 01 ( state 01 is a final state) and our goal is to not allow 3 consequtive 0's

Option C is false:- state 10-> i/p 0 -> 10 (self loop is there on state 10 on i/p symbol 0 which allows more than 2 consequtive 0's)

Hence D is Ans.

1
2