Pumppauslemma

testwikistä
Versio hetkellä 3. elokuuta 2015 kello 09.03 – tehnyt imported>YiFeiBot (Botti poisti 5 Wikidatan sivulle d:q1059648 siirrettyä kielilinkkiä)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Pumppauslemma on keino osoittaa jokin formaali kieli epäsäännölliseksi. Koska kaikki säännölliset kielet ovat tunnistettavissa äärellisillä automaateilla, on kyseisten automaattien pakko sisältää jokin itseään toistava osa. Pumppauslemma perustuu tähän ajatukseen, mutta sillä ei kuitenkaan voida todistaa mitään kieltä säännölliseksi.

Pumppauslemma voidaan formalisoida seuraavasti: Jos kieli L on säännöllinen, on olemassa p>0 siten, että mikä tahansa x, joka kuuluu kieleen L, missä |x|p, voidaan kirjoittaa muotoon x=uvw siten, että |uv|p, |v|1 ja uviw kuuluu kieleen L kaikilla i.

Esimerkiksi kieli L={anbn|n0} voidaan todistaa epäsäännölliseksi olettamalla, että kieli on säännöllinen, eli pumppauslemma on voimassa. Valitaan x=apbp, jolloin |x|=2pp, koska p>0, joten x voidaan jakaa osiin (kun x=uvw), siten että |uv|p, |v|1.

Valitaan u=am, v=an ja w=ap(m+n)bp, missä mn1, n1 ja pumpataan 0 kertaa, eli i=0. Tällöin saadaan merkkijono amap(m+n)bp=apnbp ja koska n1, tämä merkkijono ei selvästikään kuulu kieleen L. Päädyttiin ristiriitaan, joten oletus oli virheellinen. Siispä kieli L on saatu osoitettua epäsäännölliseksi.

Malline:Tynkä/Tietotekniikka

he:למת הניפוח לשפות חופשיות הקשר