il lemma di pompaggio (per CFL):
Se L è un linguaggio senza contesto, esiste una costante * p * (la lunghezza di pompaggio) tale che qualsiasi stringa * w * in l con | w | ≥ *p *può essere scritto come *w =uvxyz *, dove:
1. | VXY | ≤ *p *
2. | Vy | ≥ 1
3. Per tutto *i *≥ 0, *uv
La strategia di prova è quella di trovare una stringa *w *nella lingua in modo tale che non importa come la decompiamo in *uvxyz *soddisfacendo le condizioni del lemma, pompandola (aumentando *i *) produrrà una stringa che non *nella lingua. Ciò contraddice il lemma, dimostrando che la lingua non è priva di contesto.
Esempi:
Illustriamo con alcuni esempi di lingue e come dimostrare che non sono privi di contesto usando il lemma di pompaggio:
1. L₁ ={a
1. Supponiamo che L₁ sia privo di contesto. Ciò significa che si applica il lemma di pompaggio.
2. Scegli una stringa W: Scegliamo *w =a
3. Pumping: Perché | VXY | ≤ *p *, *vxy *può estendersi al massimo due delle sezioni (AAA ... BBB ... CCC ...). Ci sono tre possibilità:
* VXY contiene solo A e B: Il pompaggio cambierà il numero di A e/o B senza cambiare il numero di C, risultando in una stringa non in L₁.
* VXY contiene solo B e C: Simile a sopra, il numero di B e/o C cambierà in modo sproporzionato.
* VXY contiene solo A: Il pompaggio influirà solo sul numero di A.
4. Contraduzione: In tutti i casi, il pompaggio produce una stringa non in L₁. Questo contraddice l'affermazione di Pumping Lemma che *Uv
5. Conclusione: Pertanto, L₁ non è privo di contesto.
2. L₂ ={a
1. Supponiamo che L₂ sia privo di contesto.
2. Scegli una stringa W: Let *w =a
3. Pumping: Ancora una volta, | VXY | ≤ *p *. Le possibilità sono simili a L₁:se * VXY * contiene solo A e B, il pompaggio cambierà il numero di A e B senza cambiare proporzionalmente il numero di C.
4. Contraduzione: Il pompaggio porterà a stringhe non in L₂.
5. Conclusione: L₂ non è senza contesto.
3. L₃ ={ww | w ∈ {a, b}*} (Il linguaggio delle stringhe che sono la concatenazione di una stringa con se stessa)
1. Supponiamo che L₃ sia privo di contesto.
2. Scegli una stringa W: Let *w =a
3. Pumping: Perché | VXY | ≤ *p *, *vxy *non può attraversare il centro della stringa (non può estendersi entrambe le metà di `ww`). Se * VXY * è interamente nel primo tempo, il pompaggio squillerà le due metà.
4. Contraduzione: La stringa pompata non sarà in L₃.
5. Conclusione: L₃ non è senza contesto.
Considerazioni importanti:
* Scegliere la stringa giusta *W *: Questo è cruciale. La stringa deve essere scelta attentamente per sfruttare le limitazioni imposte da | VXY | ≤ *p *. Spesso sono utili stringhe con motivi ripetuti.
* Gestione di tutti i casi: È necessario considerare tutti i modi possibili per decomporre * w * in * uvxyz * Soddisfare le condizioni del lemma e mostrare che il pompaggio porta a una contraddizione in ogni caso.
* La lunghezza di pompaggio * P * è arbitraria: Non hai bisogno di conoscere il valore di *p *; La prova funziona per qualsiasi *p *.
Applicando attentamente questi passaggi, è possibile utilizzare il lemma di pompaggio per dimostrare che molte lingue non sono prive di contesto. Ricorda che il lemma di pompaggio fornisce solo un metodo per provare le lingue * non * senza contesto; Non può essere usato per dimostrare che una lingua * è * senza contesto.
Programmazione © www.354353.com