Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> Programmazione >> Computer Programming Languages >> .

Come si può usare il lemma di pompaggio per dimostrare che le seguenti lingue non sono prive di contesto?

Il lemma di pompaggio per le lingue prive di contesto è uno strumento potente per dimostrare che una lingua * non * senza contesto. Funziona per contraddizione:supponiamo che la lingua * sia * senza contesto, quindi mostriamo che questa ipotesi porta a una contraddizione. Ecco come viene applicato, insieme ad esempi:

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 i xy i Z* è in L.

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 n B n C n | n ≥ 0}

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 p B p C p *, dove *p *è la lunghezza di pompaggio. | W | ≥ *p *.

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 i xy i Z* è in l₁ per tutti* i* ≥ 0.

5. Conclusione: Pertanto, L₁ non è privo di contesto.

2. L₂ ={a n B m C n+m | n, m ≥ 0}

1. Supponiamo che L₂ sia privo di contesto.

2. Scegli una stringa W: Let *w =a p B p C 2p *.

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 p B p A p B p *.

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