A R S D I G I T A   V N I V E R S I T Y
Month 8: Theory of Computation
Quiz 01 Solutions - Mike Allen
  1. Finite State Machines. (15 points)

    Consider the following NFA over the alphabet {0,1}:

    1. Convert this NFA to a minimal DFA.

    2. Write a regular expression for the set the machine accepts.


    3. Write a linear grammar where each right side is of the form aB or a.

      A -> 0A | 0B | 1B
      B -> 1B | 0C | e
      C -> 0B | 1A

  2. More Machines. (5 points)

    Draw a finite state machine that accepts the complement of the language accepted by the non-deterministic machine below:


  3. Regular or Not, Here I Come. (15 points)

    Determine and prove for each set below whether it is Regular or not. Be careful.

    1. The set of all strings in which every third symbol is the same as the first symbol in the string.

      REGULAR. This language can be accepted by the following NFA:

    2. The set 1m0n1m+n, for m and n greater than or equal to one.

      NOT REGULAR by the pumping lemma. Let p be the pumping length and consider the string s=1p0p12p. Now we try to break it up into s=xyz. Since |xy|<=p and |y|>0, y can only contain 1s. When we pump the string once we get xy2z = 1p+|y|0p12p which is not in the language. This contradicts the pumping lemma, so the language is not regular.

    3. The set of strings where each string has an equal number of 0ís and 1ís, and every prefix of the string has at most one more 0 than 1, and at most one more 1 than 0.

      REGULAR. This language can be accepted by the following NFA:

  4. Closure. (10 points)

    Determine whether Regular sets are closed under each of the operations below. Prove your answers by an explanation and/or example or counterexample.

    1. Even(L) is the set of all strings x in L such that |x| is even.

      CLOSED Even(L) is just the intersection of L with a DFA which accepts strings of even length. Since L and this DFA are both regular, and regular sets are closed under intersection, regular sets must also be closed under Even.

    2. Triple(L) = {x | x=uvw, such that u, v, w are in L, and |u| = |v| = |w|}.

      NOT CLOSED by counterexample. Consider the language A = 0*1. Triple(A) has the form 0n10n10n1 where n>=0. If we assume pumping length p and try to pump the string s=0p10p10p1 which is in this language, we get s=0p+|y|10p10p1 which is not. Since A is regular and Triple(A) is not, the set of regular languages is not closed under Triple.

  5. Decision Algorithms. (5 points)

    Give a decision algorithm to determine whether a regular language L1 has one or more strings in common with the language described by the regular expression [00 + 11 + (01 + 10)(00 + 11)*(01 + 10)]*.

    1. Obtain a DFA for L1
    2. Obtain a DFA for the regular expression [00 + 11 + (01 + 10)(00 + 11)*(01 + 10)]*
    3. Intersect the two DFAs.
    4. If the result accepts anything, accept; Otherwise reject.