Documente Academic
Documente Profesional
Documente Cultură
LEMA POMPĂRII.
PROBLEME REZOLVABILE ALGORITMIC PENTRU
LIMBAJE INDEPENDENTE DE CONTEXT.
a) uyv ≤ n
b) uv ≠ λ
c) xu i yv i z ∈ L pentru orice i ∈ N .
Lema pompării se foloseşte în aplicaţii pentru a demonstra că un limbaj nu
este de tip 2.
Aplicaţie. Demonstraţi că următoarele limbaje nu sunt de tip 3:
a) L1 = {a n | n = numar prim}
{
b) L2 = a n | n ∈ N
2
}
Soluţie.
a) Presupunem prin absurd că L1 ∈ 3 şi aplicăm lema pompării. Fie
w = a m ∈ L1 , m = nr prim, w ≥ n = constanta din lemă. Atunci w = xuyvz unde
x = a k1 , u = a k2 , y = a k3 , v = a k4 , z = a k5 şi k1 + k 2 + k 3 + k 4 + k 5 = m şi
m = nr prim . Secvenţele obţinute prin „pompare” sunt de forma
wi = xu i yv i z = a k1 a ik 2 a k3 a ik 4 a k5 = a k1 + ik 2 + k3 +ik 4 + k5
k + ik + k + ik + k
„pompare” sunt de forma wi = xu i yv i z = a a a a a = a
k ik k ik k 1 2
.
3 4 5 1 2 3 4 5
2
Pentru i = 2 avem wi = xu 2 yv 2 z = a k a 2 k a k a 2 k a k = a k + 2 k + k + 2 k + k = a n + k + k .
1 2 3 4 5 1 2 3 4 5 2 4
Cum între două pătrate perfecte consecutive nu poate exista un alt pătrat
perfect rezultă n 2 + k 2 + k 4 nu este pătrat perfect şi secvenţa xu i yv i z ∉ L2 ,
contradicţie cu c) din lemă. Presupunerea făcută este falsă şi L2 ∉ 3 .
P2. i ← 0
P3. N i +1 = N i ∪ { A ∈ V N | ∃ ( A → α ) ∈ P , α ∈ ( N i ∪ VT ) * }
P4. Dacă N i +1 ≠ N i atunci i ← i + 1 şi mergi la pasul P3.
P5. Dacă S ∈ N i atunci scrie „NU” altfel scrie „DA”.
P6. STOP
Soluţie.
a) N 0 = {C} C → b
N 1 = N 0 ∪ {B, A} A → aCb B → aC
N 2 = N 1 ∪ {S } S → aA | bB
N3 = N2
b) N 0 = {C} C → 1
N 1 = N 0 ∪ {A} A → 0C
N 2 = N1
Algoritmul CYK
I: G = (V N ,VT , S , P ) în forma normală Chomsky şi w = a1 ...a n , n ≥ 1
O: Mesajul „DA” dacă w ∈ L(G ) şi „NU” în caz contrar
1. for i = 1, n do
1.1 Vi1 = {A ∈ V N | ( A → ai ) ∈ P}
2. for j = 2, n do
2.1 for i = 1, n − j + 1 do
begin
2.1.1 Vij = φ
2.1.2 for k = 1, j − 1 do
2.1.2.1 Vij = Vij ∪ { A ∈ V N | ∃( A → BC ) ∈ P, B ∈ Vik , C ∈ Vi + k , j − k }
end;
3. Dacă S ∈ V1n atunci tipăreşte „DA”, altfel tipăreşte „NU”
4. STOP