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

Informatiker Board » Themengebiete » Theoretische Informatik » Kontextsensitive Grammatik finden » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
aRo Kontextsensitive Grammatik finden

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?