Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Beliebteste Tags

verständnis alternativlösung klausur kellerautomat endlicher-automat grammatik regulärer-ausdruck turingmaschine pumpinglemma tipp zahlendarstellung cmos bonusklausur klausurrelevant komplexität schaltwerk binary-decision-diagram deterministisch assembler schaltnetz minimierung sprachen nichtdeterministisch huffman chomsky-normalform fehler-in-aufgabe anwesenheitsübung rechtslinear heimübung flip-flop huffman-kodierung cocke-younger-kasami-algorithmus kontextsensitive-grammatik kontextfreie-grammatik fehlererkennbarkeit hauptklausur vorlesungsfolien polynomialzeitreduktion kontextfreie-sprache faq gleitkommazahl fehlerkorrigierbarkeit rechtslineare-grammatik dateiorganisation cache darstellung-klausur nachklausur xwizard adressierungsarten mealy lambda endliche-automaten konjunktive-normalform pipelining zustände saalübung leeres-wort moore ohne-lösungen betriebssystem speicherorganisation monotone-grammatik 2-komplement hammingzahl lösungsweg fehler pumping-lemma-für-kontextfreie-sprachen pumping-lemma reguläre-sprache monoton kodierung berechenbarkeit klausureinsicht disjunktive-normalform abzählbarkeit info-ii bussysteme rechnerarchitektur entscheidbarkeit komplexitätsklassen chomsky-klassen ableitungsbaum vorlesungsaufzeichnung round-robin aufzählbarkeit minimierung-endlicher-automaten von-neumann-rechner binärzahl entscheidbar programmiersprachen stern-symbol automaten schaltnetze-und-schaltwerke nukit-fragen bewertung zugriffsarten umformung adressierung mengen binär-subtrahieren

Kategorien

1 Pluspunkt 0 Minuspunkte
188 Aufrufe
Hallo,

ich habe mir gerade die Frage gestellt, wie eine Grammatik aufgebaut sein müsste, die die gleiche Anforderungen an die Wörter bzgl. der Zeichenzusammensetzung (Anzahl a's, b's und c's) besitzt, und zusätzlich noch die Anforderung stellt, dass erst alle a's geschrieben sein müssen, dann alle b's und dann alle c's.

Wörter aus meiner Sprache wären also abbccc oder aabbbbcccccc,
Wörter, die nicht aus meiner Sprache sind: acccbb, cabbccc,...

Wäre cool, wenn mir da jemand weiterhelfen kann, ich stehe da gerade auf dem Schlauch

Vielen Dank schon mal jetzt!
in 2011-H-04 von  
0 0
Da lassen Sie eben nicht alle Vertauschungen zu, sondern nur die, die für die Sortierung erforderlich sind. Und dann müssen Sie in Terminale nur dann umwandeln, wenn die Reihenfolge stimmt. Bspw. kann von links nach rechts aB in ab umgewandelt werden, bB in bb usw. So erhält man nur terminale Wörter, wenn die Reihenfolge stimmt. b's und c's würden Sie in dem Beispiel erst durch Nichtterminale B, C kodieren, während a von Anfang an terminal sein kann.

Das ist noch keine Antwort, sondern nur ein Tipp. Versuchen Sie mal, selbst darauf zu kommen, und posten Sie gerne hier Ihre Lösung, damit wir darüber diskutieren können.
0 0
Vielen Dank für die schnelle Antwort. Ich nehme natürlich gerne die Einladung zu Diskussion an...meine Idee wäre jetzt die folgende:

@[grammar:
A, A => a, A;
A, B => a, B;
B, A => A, B;
B, B => b, B;
B, C => b, C;
C, A => A, C;
C, B => B, C;
C, C => c, c;
S' => S', A, B, B, C, C, C | A, B, B, C, C, C;
S => S' | epsilon;
--declarations--
e=#n#;
animate=this;
N=S,S',A,B,C;
T=a,b,c;
S=S;
displayMode=1;
maxdepth=4;
cutNonTerminalBranches=true;
cutTerminalDoubleBranches=true;
maxLengthWords=100;
multiLetterSymbolsHaveIndex=true;
parseTreeNum=0
--declarations-end--]@

Ob das aber wirklich zur gewünschten Lösung führt, da bin ich mir nicht sicher
0 0
Ich bekomme mit Ihrem Vorschlag nicht einmal das einfache Wort $abbccc$ hin. Vielleicht übersehe ich auch etwas...
0 0
Oh ja, da gebe ich Ihnen Recht...es fehlt wohl noch der Übergang cC -> cc.

Damit sollten zumindest alle Wörter erzeugbar sein (und hoffentlich keine weiteren, die nicht dazugehören).
0 0
Auf den ersten Blick könnte das so funktionieren. Aber das CC => cc finde ich merkwürdig. Das brauchen Sie doch dann nicht mehr, oder?
0 0
Ich wollte den Übergang auch schon rausschmeißen, gefiel mir auch nicht.
Allerdings klappt dann der Übergang zum ersten c im Wort nicht mehr (*):

S -> ABBCCC -> aBBCCC -> ... -> abbCCC (*)-> abbccC -> abbccc

Einzige Möglichkeit diesen Übergang umzuformen wäre m.M.n. noch
CC -> cC
0 0
Irgendwie gefällt mir das alles nicht... Ich glaube nicht, dass es vollkommen korrekt ist, auch wenn mir gerade kein Gegenbeispiel einfällt. Ich würde es so machen:

@[grammar:
S => S, a, B, B, C, C, C | epsilon;
a, B => a, b;
b, B => b, b;
b, C => b, c;
c, C => c, c;
B, a => a, B;
C, a => a, C;
C, B => B, C;
--declarations--
N=S,S',A,B,C;
T=a,b,c;
S=S;
displayMode=1;
 --declarations-end--]@

Ihre Antwort

Ihr anzuzeigender Name (optional):
Datenschutzhinweis: Ihre E-Mail-Adresse wird ausschließlich benutzt, um Ihnen Benachrichtigungen zu schicken. Es gilt die Datenschutzerklärung.
Anti-Spam-Abfrage (Captcha):
Bitte loggen Sie ein oder registrieren sich, um diese Abfrage (Captcha) zu vermeiden.
...