Lemma di pompaggio per semplici lingue regolari finite


20

Wikipedia ha la seguente definizione del lemma di pompaggio per i linguaggi regolari ...

Sia un linguaggio regolare. Quindi esiste un numero intero ≥ 1 che dipende solo da tale che ogni stringa in di lunghezza almeno ( è chiamata "lunghezza di pompaggio") può essere scritta come = (ovvero, può essere diviso in tre sottostringhe), soddisfacendo le seguenti condizioni:LpLwLppwxyzw

  1. | | ≥ 1y
  2. | | ≤xyp
  3. per tutti ≥ 0, ∈ixyizL

Non vedo come questo sia soddisfatto per un semplice linguaggio normale finito. Se ho un alfabeto di { } e un'espressione regolare allora costituito dall'unica parola che è seguita da . Ora voglio vedere se il mio linguaggio normale soddisfa il lemma del pompaggio ...a,babLab

Poiché nulla si ripete nella mia espressione regolare, il valore di deve essere vuoto in modo che la condizione 3 sia soddisfatta per tutti . Ma se è così, allora fallisce condizione 1 che dice deve essere di almeno 1 di lunghezza!yiy

Se invece lascio essere sia , o , allora soddisferanno condizione 1 ma sicuro condizione 3 perché mai effettivamente si ripete.a b a byabab

Mi manca ovviamente qualcosa di incredibilmente ovvio. Che è?

Risposte:


29

Hai ragione - non possiamo permettere parole "di pompaggio" di una finita L. La cosa che ti manca è che il lemma dice che esiste un numero , ma non ci dice il numero.p

Tutte le parole più lunghe di possono essere pompate dal lemma. Per un finita L , avviene in modo che p è maggiore della lunghezza della parola più lunga L . Pertanto, il lemma vale solo vacuamente e non può essere applicato a nessuna parola in L , cioè qualsiasi parola in L non soddisfa la condizione di "avere almeno la lunghezza p " come richiede il lemma.pLpLLLp


Un corollario: se ha una lunghezza di pompaggio p , e esiste una parola w L di lunghezza almeno p , allora L è infinito.LpwLpL


2
Un bel esempio dell'insieme vuoto adempiere -statements.
Raffaello

7

Il lemma di pompaggio viene solitamente utilizzato su infiniti linguaggi, ovvero linguaggi che contengono un numero infinito di parole. Per qualsiasi linguaggio finito , poiché può sempre essere accettato da un DFA con numero finito di stato, L deve essere regolare.LL

Secondo wikipedia ( http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages#Formal_statement ), il lemma di pompaggio dice: (LΣ)(regular(L)((p1)((wL)((|w|p)((x,y,zΣ)(w=xyz(|y|1|xy|p(i0)(xyizL))))))))

Per qualsiasi linguaggio finito , lascia che l m a x sia la lunghezza massima delle parole in L e che p nel lemma di pompaggio sia l m a x + 1 . Il lemma del pompaggio vale poiché non ci sono parole in L la cui lunghezza l m a x + 1 .LlmaxLplmax+1Llmax+1


2

Un modo per formalizzare la parte centrale del lemma di pompaggio è questo, usando :Lk={wL|w|k}

Se è regolare, esiste p N in modo cheLpN

(*).wLp. x,y,z

Per tutte le finite e p > max { | w | w L } , ovviamente abbiamo L p = . Pertanto (*) è (vacuamente) vero per tale p .Lp>max{|w|wL}Lp=p

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.