What are the minimum pumping length for the following languages ?
(01)*
10(11*0)*0
1011
011
U 0*1*
Here are my solutions. Please correct me if I'm wrong.
01
is the shortest string that can be pumped10100
is the shortest string that can be pumped0
can be pumpedI am not sure about my answers, so any help is appreciated. Thanks a lot!
I think Simon's answer may be a little off. You do, in fact, need to take a cycle somewhere. The pumping lemma requires that the path taken to recognize the string include a cycle (this is the 'y' of the pumping lemma's 'xyz'). We can take this cycle as many times as we want, which pumps the string.
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,
(01)*
has two states, and you can only make one transition without ending up at the initial, accepting state.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.1011
has exactly 4 edges and no recursion.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.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With