Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Kontextsensitive Grammatik finden » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Kontextsensitive Grammatik finden
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
aRo
Jungspund


Dabei seit: 25.10.2007
Beiträge: 18

Kontextsensitive Grammatik finden Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo!

Ich möchte eine kontextsensitive Grammatik zu dieser Sprache finden:

[latex] L = \{ a^{2^k} | k \geq 0 \} [/latex]

Schwierigkeiten macht mir vor allem die Bedingung, dass linke Regelseiten höchstens so lang wie rechte Regelseiten sein dürfen.

Hier meine Idee:

S -> VXaH | a
Xa -> aaX
XH -> YH
aY -> Ya
VY -> VX
V -> epsilon
XH->epsilon

Erläuterung:
Die Grammatik basiert auf der Idee, dass ich jedes a, was schon vorhanden ist, verdoppeln muss, "um auf die nächste Stufe zu kommen".
Die Terminalsymbole V,H bezeichnen "Vorne" und "Hinten" im Wort, und sollen dafür sorgen, dass die Grammatik eindeutig ist.
Die Variable X wandert immer von links nach rechts und verdoppelt dabei alle as. Die Variable Y wandert nur zurück, falls man eine Ebene weiter will.

Das Problem ist, dass ich diese beiden Regeln mit Epsilon unten habe und ich dabei eine Bedingung von kontextsensitiven Sprachen verletze.

Jemand eine Idee, wie ich die wegkriege?
22.05.2008 18:39 aRo ist offline Beiträge von aRo suchen Nehmen Sie aRo in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Kontextsensitive Grammatik finden