Esercizi pumping lemma

Linguaggi di programmazione – esercizio 3 pumping lemma

pumping lemma

Esercizio pumping lemma

Determinare il tipo del linguaggio:

Lab = {w ∈ {a,b}* | na(w) = nb(w)}

Per prima cosa dobbiamo trovare la grammatica così da identificare il tipo:

G = (X, V, S, P)
X = {a,b}
V = {S}
P = {
S -> ab | ba | SS | aSb | bSa | ε
}

Quindi L è almeno libero da contesto perché generato da una grammatica libera da contesto. Proseguiamo con la verifica se, questo linguaggio, può essere di tipo 3. Per assurdo supponiamo che L sia un linguaggio regolare. Se L è un linguaggio regolare allora per L vale il pumping lemma per i linguaggi regolari, quindi:

∃p ∈ N tale che ∀z ∈ L, |z| ≥ p allora z = uvw con
1) |uv| < p
2) |v| > 0
3) uvtw ∈ L, ∀t ≥ 0

Consideriamo z = apbp, z ∈ L  e |z| = 2p ≥ p quindi per il pumping lemma z = uvw

v può essere così composta:

  • di sole a: v =aj con 1 ≤ j ≤ p

z = uvw = ap-j aj bp

Consideriamo la stringa pompata uv2w
uv2w = ap-j (aj)2 bp = ap-j a2j bp = ap+j bp
uv2w ∉ L. Per assurdo L non è un linguaggio regolare, quindi è al massimo libero da contesto.

/ 5
Grazie per aver votato!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *