Környezetfüggetlen grammatikák, Chomsky normálforma, CYK algoritmus
Egy környezetfüggetlen grammatika szabályai alakúak, ahol
Egy környezetfüggetlen grammatika egy nemterminálisát aktívnak mondjuk, ha van olyan terminális szó, amire teljesül. Egyébként -et inaktív nevezzük.
Egy környezetfüggetlen grammatika egy nemterminálisát elérhetőnek nevezzük, ha léteznek olyan szavak, amelyekre teljesül. Egyébként -t elérhetetlennek (nem elérhetőnek) mondjuk.
Egy környezetfüggetlen grammatika egy nemterminálisát hasznosnak nevezzük, ha aktív és elérhető. redukált, ha minden nemterminálisa hasznos.
Redukált grammatika
Minden környezetfüggetlen grammatikához létezik vele ekvivalens redukált környezetfüggetlen grammatika.
Lépések:
- inaktívak elhagyása
- elérhetetlenek elhagyása
Chomsky normálforma
Egy grammatika Chomsky normálformájú, ha minden -beli szabály alakja a következők valamelyike:
- továbbá , ha
Minden környezetfüggetlen grammatikához létezik vele ekvivalens Chomsky normálformájú grammatika
Lépések:
- álterminálisok bevezetése
- hosszredukció
- -mentesítés
- láncmentesítés
Környezetfüggetlen grammatikák szóproblémája
Legyen egy környezetfüggetlen grammatika és egy egy szó. Eldönthető, hogy
A naiv algoritmzs csak exponenciális felső becslést adhatunk a szóprobléma eldöntésének hatékonységéra.
Dinamikus programozás segítségével megalkotott algoritmus már polinomiális lesz.
A CYK algoritmus Chomsky normálformában adott grammatika esetében nagyságrendűű lépésben eldönti a szóproblémát.
Tetszőleges környezetfüggetlen grammatika esetén tehát a Chomsky normálformára hozással kombinálva a CYK algoritmus hatékonysága