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:

  1. inaktívak elhagyása
  2. 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:

  1. álterminálisok bevezetése
  2. hosszredukció
  3. -mentesítés
  4. 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

Források