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.)

Alternative Lösung auch korrekt?

+1 Punkt
40 Aufrufe

Wäre 

{S->01A

A->0A|1A|lambdaC

C->01}

auch korrekt? 

Ich frage eigentlich deshalb, weil ich wissen möchte, ob ich 2 Terminalsymbole (TS) vor einem NTS schreiben darf.

Und ob ich lambda vor einem NTS schreiben darf. 

In meiner Lösung möchte ich damit bezwecken, dass eben auch direkt von A ohne zufügen eines Buchstaben 0/1 direkt zu C gegangen wird sodass auch Wörter der Länge 4 erkannt werden können. Oder könnte ich dann das lambda vor dem C auch einfach weglassen?

Danke

Gefragt 15, Okt 2014 in END-AG von Lukas König Dozent (10,065,100 Punkte)  

Eine Antwort

0 Punkte
 
Beste Antwort

Hallo, 

bereits in der ersten Zeile : S --> 01A verletzt du die Regeln für Rechstlineare Grammatiken.

'nur Produktionen der Form: A --> lambda ; A --> a oder A--> aB' vergl.: erstes Kapitel der VL-Folien

In der Aufgabenstellung ist explizit nach einer rechstlinearen G gefragt, somit würde deine G zwar die korrekte Sprache erzeugen aber nicht den korrekten Typ aufweisen.

Das mit dem lambda ist auch nicht so schön, weil es ja auch nicht Element deiner Terminalsymbolmenge ist und somit nicht wirklich ein Terminalsymbol. Somit verstößt du mit deiner Umbenennung (A --> C ) wieder gegen die Rechstlinearität. 

Abkürzen könntest du eleganter, indem du gleich die Regel A-->01 hinzufügst - aber Achtung: wieder nicht rechtslinear!

LG

Basti(Tutor)

Beantwortet 15, Okt 2014 von Lukas König Dozent (10,065,100 Punkte)  
...