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

Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Kontextfreie Grammatik entwerfen » 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 Kontextfreie Grammatik entwerfen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jannes
unregistriert
Kontextfreie Grammatik entwerfen 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 brauche bei folgender Aufgabe Hilfe, weil ich einfach nicht weiß, wie ich vorgehen soll.


Ich hab auch überhaupt keinen Ansatz, wie ich da an die Lösung komme.


Bin über jede Hilfe dankbar.


Gruß,
Jannes

Jannes hat dieses Bild (verkleinerte Version) angehängt:
gram.png

31.03.2015 00:09
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

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 Jannes,

ich habe auch eine Weile nachdenken müssen. Rein intuitiv ist ja schon einmal klar, dass es eine kontextfreie Grammatik geben muss, da man relativ leicht einen Kellerautomaten konstruieren kann, welcher die Sprache akzeptiert. D.h. es muss eine kontextfreie Grammatik geben. Nur wie man diese erstellt ist ein wenig kniffelig.

Tragen wir unser wissen zusammen:
  • Es ist das leere Wort in der Sprache, wenn k=0 und n=0 sind.
  • Wenn n = 0, dann ist die Sprache [latex]L = \{a^{2k}\}[/latex]
  • Wenn n > 0, dann gibt es n mehr a am Anfang als am Ende.


Man kann die Sprache also auch folgendermaßen auffassen:
[latex]<br />
L = \{ a^{(m+n)}b^na^{m} \} <br />
[/latex]

Das macht uns die Erstellung der Grammatik ein wenig einfacher.
[latex]<br />
\begin{array}{rcll}<br />
S & \rightarrow & \varepsilon & \text{   Das leere Wort ist in der Sprache und Terminierung für } n = 0 \text{ und } m > 0<br />
S & \rightarrow & aSa & \text{   für } n = 0<br />
S & \rightarrow & aBb & \text{   für } n = 1<br />
B & \rightarrow & aBb & \text{   für } n > 1<br />
B & \rightarrow & \varepsilon & \text{ Terminierung für } n \neq 0<br />
\end{array}<br />
[/latex]

Bis man selbst auf solche Lösungen kommt, braucht es etwas Übung und Kreativität. Es gibt sicher noch andere korrekte Lösungen. Die Begründung, warumdiese Grammatik korrekt ist, sollte dir jetzt nicht allzu schwer fallen.

Falls noch etwas unklar ist, bitte nachfragen.

Gruß,

Karlito
31.03.2015 13:34 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Kontextfreie Grammatik entwerfen