Normální forma Greibacha

V teoretické informatice , a zejména v teorii formálního jazyka , je algebraická gramatika v Greibachově normální formě (v angličtině, Greibachově normální formě nebo GNF ), pokud správní členové jejích pravidel začínají symbolem terminálu , případně následovaným a nebo více proměnné . Varianta umožňuje dalšímu pravidlu vygenerovat prázdné slovo, pokud je součástí jazyka. Tato normální forma je pojmenována po Sheile Greibachové, která ji představila a prokázala svou existenci.

Existují i ​​jiné normální formy gramatiky, jako je Chomského normální forma , nebo gramatiky bez levé rekurze . Normální forma Greibacha je nejkomplikovanější z těchto normálních forem a byla dále vylepšena.

Popis

Algebraická gramatika je v Greibachově normální formě, pokud jsou všechna její pravidla ve tvaru:

nebo

kde je proměnná , je písmeno a je možná prázdná sekvence proměnných; je axiom a ε je prázdné slovo .

Gramatika v normální Greibachově podobě je pozoruhodně bez levé rekurze . Hlavní vlastností je, že jakoukoli algebraickou gramatiku lze transformovat do ekvivalentní gramatiky v normální formě Greibacha, teorém založený v roce 1965 Sheilou Greibachovou.

Existuje několik konstrukcí. Pokud neexistuje žádné pravidlo epsilon , je algoritmus jednodušší; v obecném případě dochází k časovým transformacím složitosti a v případě, že gramatika nemá pravidlo jednotky (ve formě proměnné ).

V normální Greibachově formě derivace generuje v každém kroku derivace písmeno daného jazykového slova: délka derivace se proto rovná délce slova. Normální formu lze použít ekvivalentním způsobem k vytvoření tlačítkového automatu, který přijímá slova jazyka v reálném čase, to znamená čte písmeno vstupního slova v každém kroku výpočtu.

Konstrukce

Konstrukce gramatiky v normální formě Greibacha z algebraické gramatiky dané částí předmětů zpracovaných v mnoha teoretických počítačových učebnicích formálních jazyků, automatů a jejich složitosti. Jedna ze staveb je v několika fázích:

Předběžná fáze: odstranění pravidel epsilon

Můžeme předpokládat, že axiom gramatiky se neobjevuje u pravého člena pravidla.

Pravidlo , kde axiom není, je odstraněno; vezmeme v úvahu každé pravidlo, kde se objeví , a přidáme pro každý výskyt pravidlo do gramatiky, pokud nevytvoříme pravidlo epsilon. Například pokud

přidáme tři pravidla

.

Pravidlo, jehož pravý člen obsahuje proměnné, které jsou všechny odvozeny od prázdného slova, se tak může vzdát nových pravidel.

Druhá fáze: odstranění pravidel jednoty

Pravidlo jednotka je pravidlo formy , kde je proměnná. Abychom tento typ pravidla vyloučili, nahradíme takové pravidlo pravidlem

pro každé pravidlo

(pokud se nejedná o dříve odstraněné pravidlo jednotky). Tato technika je dokončena v případě cyklů (například existence tří pravidel ) identifikací proměnných cyklu: všechny jsou nahrazeny jednou z nich.

Formátování normální

Předpokládáme gramatiku bez pravidel ε a bez pravidel jednotek. Předpokládáme číslované proměnné  ; definujeme posloupnost gramatik, kde je počáteční gramatika, s tou vlastností, že se proměnné neobjeví v čele správných členů pravidla. Předpokládáme, že gramatika je konstruována, a postupujeme ve dvou fázích

1. Odstranění levé rekurze pro  : odstraníme záhlaví pravidel z  : pravidel

kde jsou nezačínají nahrazeny

2. Odstranění hlavičkových  výskytů: výskyty proměnných, které se objevují nebo se mohou objevit v hlavičce v pravých členech pravidel, jsou nahrazeny sadou pravidel pro tyto proměnné.

Pokud na konci zůstanou v pravých členech pravidel jiná než v záhlaví koncová písmena, budou nahrazena další proměnnou , jednou pro každé písmeno , s pravidlem .

Příklad

Zde je příklad z knihy Oliviera Cartona (píšeme místo ):

Gramatika G 0  :

Obě pravidla jsou nahrazena

.

Získáváme:

Gramatika G 1  :

Obě pravidla jsou nahrazena

a výskyty v horní části

jsou nahrazena těmito dvěma pravidly. Získáváme:

Gramatika G 2  :

Podobně jsou dvě pravidla nahrazena, v prvním kroku,

,

ale přední proměnná je nahrazena jejími pravidly, stejně jako přední proměnná . Dostaneme gramatiku:

Gramatika G 3

Jiné běžné formy

Kvadratická normální forma

Gramatika je v Greibachově kvadratické normální formě, pokud jsou všechna její pravidla v podobě

kde se skládá z nejvýše dvou proměnných, takže pokud navíc mají správní členové pravidel délku nejvýše 3. Výše ​​uvedená gramatika a gramatika:

jazyk Lukasiewicz jsou v kvadratické formě, gramatiky

není. Lze jej transformovat do kvadratické gramatiky seskupením po sobě jdoucích výskytů; zde představíme novou proměnnou a gramatiku nahradíme:

Gramatika již není v normální Greibachově formě, ale stejně jako dříve nahradíme přední proměnnou v pravidle pro , což dává , tedy

.

Bilaterální normální forma

Gramatika je v normální formě oboustranného nebo normální formě duálního z Greibachové-li spustit všechna její pravidla a konec s koncovou dopisem formálně pokud pravidla členů práv ve kterém a je abeceda terminál a non-terminál gramatiky. Gramatika je v bilaterální kvadratické normální formě, pokud jsou v ní praví členové pravidel , takže pokud jsou navíc praví členové pravidel v délce menší nebo rovné 4. Tuto konstrukci představil Günter Hotz.

Ostatní stavby

Jinou algebraickou konstrukci navrhl Daniel J. Rosenkrantz. Je založen na řešení soustavy rovnic v algebře částí na volném monoidu. Tato metoda vede přímo k kvadratické gramatice, pokud vycházíme z gramatiky v Chomského normální formě . Další konstrukce a zevšeobecnění byly dány různými autory.

Poznámky a odkazy

  1. Hopcroft a Ullman 1979 , str.  95.
  2. (in) Sheila A. Greibach , „  The New Normal-Form Theorem for Context-Free Grammars Sentence Structure  “ , Journal of ACM , vol.  12, n o  1,Leden 1965, str.  42–52 ( DOI  10.1145 / 321250.321254 ).
  3. (in) Norbert Blum a Robert Koch , „  Greibach Normal Form Transformation Revisited  “ , Information & Computation , sv.  150, n o  1, 1999, str.  112–118 ( DOI  10.1006 / inco.1998.2772 , číst online ).
  4. Představujeme, co se týče konstrukce Chomského normální formy , novou proměnnou, která se stává axiomem, a jediné další pravidlo , kde je starý axiom.
  5. Hopcroft, Motwani a Ullman 2007 , s.  268.
  6. Carton 2008 .
  7. Günter Hotz, „  Normální tvarové transformace bezkontextových gramatik  “, Acta Cybernetica , roč.  4, n o  1, 1978, str.  65-84.
  8. (in) Joost Engelfriet , „  Elementární důkaz dvojí normální formy Greibacha  “ , Information Processing Letters , sv.  44, n O  6, 1992, str.  291–293 ( DOI  10.1016 / 0020-0190 (92) 90101-Z ).
  9. Daniel J. Rosenkrantz, „  Maticové rovnice a normální tvary pro bezkontextové gramatiky  “, Journal of ACM , sv.  14, N O  3, července 1967, str.  501–507.
  10. (in) Ryo Yoshinaka , „  Elementární důkaz zobecnění pravidelné dvojité Greibachovy formy  “ , Information Processing Letters , sv.  109, n o  10,2009, str.  490–492 ( DOI  10.1016 / j.ipl.2009.01.015 ).

Bibliografie

ManuályTřídy

Podívejte se také

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">