1 Lema o napihovanju za KNJ IZREK IN

  • Slides: 14
Download presentation
1 Lema o napihovanju za KNJ IZREK IN DOKAZ UPORABA

1 Lema o napihovanju za KNJ IZREK IN DOKAZ UPORABA

Intuicija Se spominjate leme o napihovanju za regularne jezike? … če lahko najdemo dovolj

Intuicija Se spominjate leme o napihovanju za regularne jezike? … če lahko najdemo dovolj dolg niz, ki povzroči cikel v DKA, potem lahko ta cikel “napihnemo” in tako dobimo neskončno mnogo nizov, ki so prav tako v jeziku tega DKA. 2

Intuicija – (2) Za KNJ je intuicija rahlo zapletenejša … … vedno lahko najdemo

Intuicija – (2) Za KNJ je intuicija rahlo zapletenejša … … vedno lahko najdemo dva koščka kateregakoli dovolj dolgega niza, ki ju “naenkrat napihujemo”. Drugače povedano: … če vsakega od dveh koščkov niza ponovimo enako število -krat (0 -krat, 1 -krat, 2 -krat, …), dobimo niz, ki je prav tako v jeziku. 3

4 Izrek: lema o napihovanju za KNJ Za vsak kontekstno neodvisen jezik L obstaja

4 Izrek: lema o napihovanju za KNJ Za vsak kontekstno neodvisen jezik L obstaja celo število n, tako da za vsak niz z iz L dolžine > n obstaja z = uvwxy, tako da: 1. |vwx| < n. 2. |vx| > 0. 3. Za vsak i > 0, uviwxiy je v L.

5 Dokaz leme o napihovanju Vzemimo slovnico v CNF za jezik L – {ε}.

5 Dokaz leme o napihovanju Vzemimo slovnico v CNF za jezik L – {ε}. Naj ima ta slovnice m spremenljivk. Izberimo n = 2 m. Naj bo z (dolžine > n) v jeziku L. Trdimo (“Lema 1”), da mora drevo izpeljave s pridelkom z vsebovati pot dolžine vsaj m+2.

Dokaz “Leme 1” Če so vse poti v drevesu izpeljave za neko slovnico (v

Dokaz “Leme 1” Če so vse poti v drevesu izpeljave za neko slovnico (v CNF obliki) dolžine < m+1, potem ima najdaljši pridelek dolžino 2 m-1, kot je to prikazano na sliki: m spremenljivk en terminal 2 m-1 terminalov 6

Nazaj na dokaz leme o napihovanju Sedaj vemo, da vsebuje drevo izpeljave za besedo

Nazaj na dokaz leme o napihovanju Sedaj vemo, da vsebuje drevo izpeljave za besedo z pot z vsaj m+1 spremenljivkami. Vzemimo neko tako “dolgo” pot. V slovnici je le m različnih spremenljivk, torej se mora med spodnjimi m+1 vsaj ena ponoviti – recimo, da je ta spremenljivka (ki se ponovi) A. Drevo izpeljave torej izgleda takole: 7

8 Drevo izpeljave v lemi o napihovanju – dokaz < 2 m = n,

8 Drevo izpeljave v lemi o napihovanju – dokaz < 2 m = n, ker smo izbrali najdaljšo pot in uporabili spodnjih m+1 spremenljivk. Ne moreta biti oba ε. A A u v w x y

Napihnemo 0 -krat A A A u v w 9 w x y u

Napihnemo 0 -krat A A A u v w 9 w x y u y

Napihnemo 2 -krat 10 A A u v w x y u v v

Napihnemo 2 -krat 10 A A u v w x y u v v A w x x y

Napihnemo 3 -krat itn. , itn. A A u v w 11 x y

Napihnemo 3 -krat itn. , itn. A A u v w 11 x y u v v v A A w x x x y

12 Uporaba leme o napihovanju {0 i 10 i | i > 1} je

12 Uporaba leme o napihovanju {0 i 10 i | i > 1} je KNJ. Preverimo lahko dva “povezana” indeksa. Ampak: L = {0 i 10 i | i > 1} ni KNJ. Ne moremo preveriti 3 ali več “povezanih” indeksov, Ali 2 ali več parov “povezanih” indeksov. Dokaz z uporabo leme o napihovanju za KNJ. Predpostavimo, da je L KNJ. Naj bo n L-ova konstanta za lemo o napihovanju.

13 Uporaba leme – (2) Vzemimo z = 0 n 10 n. Zapišemo lahko

13 Uporaba leme – (2) Vzemimo z = 0 n 10 n. Zapišemo lahko z = uvwxy, kjer je |vwx| < n in |vx| > 1. Scenarij 1: vx ne vsebuje 0 -el torej je vsaj eden (v ali x) enak 1 in uwy vsebuje največ eno 1 -co, kar pa nobena beseda v jeziku L ne vsebuje.

14 Uporaba leme – (3) Naj bo še vedno z = 0 n 10

14 Uporaba leme – (3) Naj bo še vedno z = 0 n 10 n. Scenarij 2: vx vsebuje vsaj eno 0 -lo vwx je prekratek (dolžina < n), da bi zajel vse tri skupine 0 -el v besedi 0 n 10 n. torej uwy vsebuje vsaj eno skupino n-tih 0 -el in vsaj eno skupino z manj kot n 0 -lami. Torej: uwy ne more biti v jeziku L.