20.07.2013 Views

3.6 Uzávěrové vlastnosti bezkontextových ja- zyků

3.6 Uzávěrové vlastnosti bezkontextových ja- zyků

3.6 Uzávěrové vlastnosti bezkontextových ja- zyků

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>3.6</strong>. <strong>Uzávěrové</strong> <strong>vlastnosti</strong> <strong>bezkontextových</strong> <strong>ja</strong><strong>zyků</strong> [110110-2241 ] 37<br />

<strong>3.6</strong>.4 Tvrzení. Bezkontextové <strong>ja</strong>zyky jsou uzavřeny na reverzi.<br />

To znamená, je-li L bezkontextový <strong>ja</strong>zyk, pak také <strong>ja</strong>zyk L R je bezkontextový.<br />

Zdůvodnění: Jazyk L je bezkontextový, proto existuje bezkontextová gramatika<br />

G = (N, Σ, S, P ), která ho generuje. Gramatika GR, která generuje <strong>ja</strong>zyk<br />

L R je (N, Σ, S, PR), kde<br />

A → α ∈ PR iff A → α R ∈ P.<br />

<strong>3.6</strong>.5 Tvrzení. Bezkontextové <strong>ja</strong>zyky nejsou uzavřeny na průnik.<br />

To znamená, jsou-li L1 a L2 dva bezkontextové <strong>ja</strong>zyky, pak <strong>ja</strong>zyk L1 ∩ L2<br />

nemusí být bezkontextový.<br />

Zdůvodnění: Uvažujme <strong>ja</strong>zyk L1 = {0 k 1 n 2 n | k, n ≥ 1} a <strong>ja</strong>zyk L2 =<br />

= {0 k 1 k 2 n | k, n ≥ 1}. Oba tyto <strong>ja</strong>zyky jsou bezkontextové, ale jejich průnik<br />

je <strong>ja</strong>zyk L = {0 n 1 n 2 n | n ≥ 1}, který bezkontextový není.<br />

<strong>3.6</strong>.6 Tvrzení. Bezkontextové <strong>ja</strong>zyky nejsou uzavřeny na doplněk.<br />

To znamená, je-li L bezkontextový <strong>ja</strong>zyk, pak jeho doplněk ¯ L nemusí být<br />

bezkontextový.<br />

Zdůvodnění: Kdyby třída <strong>bezkontextových</strong> <strong>ja</strong><strong>zyků</strong> byla uzavřena na doplňky,<br />

byla by uzavřena i na průniky, protože<br />

L1 ∩ L2 = L1 ∪ L2.<br />

<strong>3.6</strong>.7 Tvrzení. Třída <strong>bezkontextových</strong> <strong>ja</strong><strong>zyků</strong> je uzavřena na průniky s regulárními<br />

<strong>ja</strong>zyky.<br />

To znamená, je-li L bezkontextový <strong>ja</strong>zyk a R regulární <strong>ja</strong>zyk, pak <strong>ja</strong>zyk L∩R<br />

je bezkontextový.<br />

Nástin důkazu: Jazyk L je bezkontextový, tudíž existuje zásobníkový automat<br />

A = (Q1, Σ, Γ, δ1, q1, Z1, F1) takový, že A přijímá L koncovým stavem.<br />

Jazyk R je regulární, tudíž existuje deterministický konečný automat M =<br />

= (Q2, Σ, δ2, q2, F2), který přijímá <strong>ja</strong>zyk R.<br />

Zkonstruujeme zásobníkový automat B tak, že B přijímá <strong>ja</strong>zyk L ∩ R<br />

koncovým stavem. (Všimněte si, že se v podstatě jedná o součinovou konstrukci).<br />

Zásobnikový automat je B = (Q1 × Q2, Σ, Γ, δ, (q1, q2), Z1, F1 × F2), přechodová<br />

funkce δ je definována takto: pro (q, p) ∈ Q1 × Q2, a ∈ Σ ∪ {ɛ} a Y ∈ Γ<br />

platí<br />

((r, s), γ) ∈ δ((q, p), a, Y ) iff<br />

• buď a ∈ Σ, (r, γ) ∈ δ1(q, a, Y ) a s = δ2(p, a),<br />

• nebo a = ɛ, (r, γ) ∈ δ1(q, ɛ, Y ) a s = p.<br />

Uvědomte si, že v prvé složce se B chová <strong>ja</strong>ko zásobníkový automat A, ve druhé<br />

složce <strong>ja</strong>ko deterministický konečný automat M.<br />

Není těžké nahlédnout, že zásobníkový automat B opravdu přijímá <strong>ja</strong>zyk<br />

L ∩ R.<br />

Marie Demlová: Jazyky, automaty a gramatiky Před. 12: 6/12/2010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!