According to Patrick87, the minimum pumping length is defined as the maximum number of transitions you can make in a minimized DFA without visiting some state twice. The process then becomes to convert your regular expression to an NFA, convert the NFA to a DFA, minimize the DFA and count the longest path along the directed edges without visiting the same state twice. For an introduction to this conversion and minimization, see for example Torben Mogensen's free book, Basics of Compiler Design chapters 2.6, 2.8.
According to this definition,
- p = 0, since there are no transitions in the minimized DFA for the empty language.
- p = 1. A minimized DFA for
(01)*
has two states, and you can only make one transition without ending up at the initial, accepting state.
- p = 3. A minimized DFA for
10(11*0)*0
will have a state that has to be visited twice for the sub-expression (11*0)*
to be a part of the derivation.
- p = 4. A minimized DFA for
1011
has exactly 4 edges and no recursion.
- p = 1. The language
011
is a subset of the language 0*1*
, so 011
U 0*1*
= 0*1*
. And since neither 0
or 1
can be pumped, one can only follow one non-recursive edge.
