Chomskyjev normalni oblik
Ovaj članak ili neki od njegovih odlomaka nije dovoljno potkrijepljen izvorima (literatura, veb-sajtovi ili drugi izvori). |
U računarstvu, formalna gramatika je u Chomskyjevom normalnom obliku ako i samo ako ima sve produkcije u obliku:
- A → BC or
- A → α or
- S → ε
gdje su A, B i C nezavršni znakovi, α je završni znak (znak koji predstavlja konstantnu vrijednost), S je početni znak i ε je prazni niz. Također, ni B niti C ne smiju biti početni znakovi.
Chomskyjev normalni oblik je imenovan po Noamu Chomskyu, američkom lingvistu, tvorcu Chomskyjeve hijerarhije.
Svaka gramatika u Chomskyjevom normalno obliku je kontekstno nezavisna, te prema tome, svaka kontekstno nezavisna gramatika se može svesti na istovjetnu gramatiku u Chomskyjevom normalnom obliku.
Sa iznimkom opcionalnog pravila S → ε (uključenog kad gramatika može generisati prazni niz), sva pravila gramatika u Chomskyjevom normalnom obliku su strogo ekspanzivna - prilikom prijelaza između međunizova za vrijeme generisanja niza znakova, svaki međuniz završnih i nezavršnih znakova je uvijek ili iste dužine ili za jedan element veći od prethodnog međuniza. Generisanje niza znakova dužine n se uvijek obavlja u 2n-1 koraka. Štaviše, budući da sve produkcije koje stvaraju nezavršne znakove transformišu jedan nezavršni znak u tačno dva nezavršna znaka, stablo parsiranja gramatike u Chomskyjevom normalnom obliku jest binarno stablo, a dubina ovog stabla ima gornju granicu jednaku dužini niza.
Zbog ovih svojstava, mnogi dokazi u području formalnih jezika i izračunjljivosti koriste Chomskyjev normalni oblik. Ova svojstva mogu dovesti do raznih algoritama baziranih na gramatikama u Chomskyjevom normalnom obliku; npr. CYK algoritam koji odlučuje generiše li data gramatika dati niz znakova koristi Chomskyjev normalni oblik.
Alternativne definicije
[uredi | uredi izvor]Neki autori definišu Chomskyjev normalni oblik na malo drugačiji način:
Formalna gramatika je u Chomskyjevom normalnom obliku ako i samo ako ima sve produkcije u obliku:
- A → BC ili
- A → α
gdje su A, B i C nezavršni znakovi, a α završni znak. Po ovoj definiciji B ili C mogu biti početni znakovi.
Ova se definicija razlikuje od prethodne u tome što unaprijed isključuje mogućnost da će gramatika generisati prazni niz, ε. Ostaje vrijediti svojstvo da bilo koja kontekstno nezavisna gramatika koja generiše jezik L se može svesti u gramatiku u Chomskyjevom normalnom obliku koja generiše jezik L - {ε}. Principijelna prednost potonje definicije jest što kao posljedica dokazi mogu biti marginalno jednostavniji, budući da svaki korak u generisanju međunizova nikad neće smanjiti dužinu rezultirajućeg međuniza. Nedostatak je, dakako, posebna pažnja koju treba posvetiti ukoliko je izvorna gramatika generisala ε
Također pogledajte
[uredi | uredi izvor]Reference
[uredi | uredi izvor]- Michael Sipser - Introduction to the Theory of Computation, PWS Publishing, 1997; ISBN 0-534-94728-X Pages 98–101 of section 2.1: context-free grammars. Page 156.
- John Martin - Introduction to Languages and the Theory of Computation, McGraw Hill, 2003; ISBN 0-07-232200-4 Pages 237–240 of section 6.6: simplified forms and normal forms.