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

Schöne Ferien!
 

 

Übersicht alternativer Lösungsvorschläge aus dem alten ILIAS-Forum

+1 Punkt
88 Aufrufe

Dieser Post wurde der Übersichtlichkeit halber erstellt, um die alternativen Lösungsvorschläge aus dem alten ILIAS-Forum nicht überzubetonen. Wenn Sie neue alternative Lösungsvorschläge diskutieren wollen, sollten Sie eine neue Frage erstellen - und NICHT hier posten!

 

Gefragt 25, Sep 2015 in 2014-B-02 von uafjv uafjv Tutor(in) (167,990 Punkte)  

3 Antworten

–1 Punkt

Hallo,

ich habe bei dieser Aufgabe falls ich im Zustand S2 ein * lese einen Zustandswechsel (S3,*,L) in meiner Lösung benutzt (sonst ist meine Lösung gleich wie die Musterlösung).

Mir ist erst im nachhinein aufgefallen das ich in S2 ja nie ein * lesen kann.

Wäre die Aufgabe dann falsch gelöst, bzw würde es in der Klausur Punktabzug geben?

Lg

 

Beantwortet 25, Sep 2015 von uafjv uafjv Tutor(in) (167,990 Punkte)  
Hallo,

solange Ihre Turingmaschine funktioniert, bekommen Sie die volle Punktezahl, auch wenn es eine kürzere Lösung gegeben hätte. (In der Bonusklausur, wo eine Aufgabe ja nur richtig oder falsch sein kann, erlauben wir sogar normalerweise kleine Fehler, ohne die Aufgabe als falsch zu werten - aber darauf sollten Sie natürlich nicht bauen :-) )

(Sollte in der Aufgabenstellung eine Aussage über die Zustandsanzahl stehen o.ä., dann gilt das natürlich nicht - bei endlichen Automaten lassen wir ja z.B. gerne minimale Automaten konstruieren.)

Viele Grüße

Lukas König
–1 Punkt

Hallo, 

wäre eine Turingmaschine mit der folgenden Zustandsübergangsfunktion, bei der Se als Endzustand definiert ist, ebenfalls korrekt? 

Danke :)

 

Beantwortet 25, Sep 2015 von uafjv uafjv Tutor(in) (167,990 Punkte)  
Hallo!

Deine Lösungsidee ist gut. Ich fasse sie nochmal kurz zusammen: Du läufts nach rechts durch und bei jeder gefundenen "1" ersetzt du diese durch ein "E", läufst dann nach links, um dort ebenfalls ein "E" einzufügen und drehst wieder nach rechts um, bis du auf die nächste "1" triffst, diese wieder durch E ersetzt und auch ganz links ein weiteres "E" einfügst usw. usw. Im letzten Schritt (wenn du beim Nach-Rechts-Laufen auf * triffst) drehst du um und ersetzt beim Nach-Links-Laufen alle "E" wieder durch "1".

Der Unterschied zur Musterlösung besteht darin, dass du sowohl die schon auf dem Band stehenden "1" durch "E" ersetzt als auch die Einsen, die du vor die Bandinschrift schreibst, zuerst in Form eines "E" hinschreibst und im letzten Schritt alle "E" durch "1" wieder ersetzt. In der Musterlösung werden lediglich die Einsen der Bandinschrift in "E" verwandelt und am Schluss wieder in Einsen verwandelt, während die Einsen, die man vor dem Wort einfügen soll, direkt richtig als "1" dort hingeschrieben werden.

Wegen diesem Unterschied hast du einen falschen Zusandübergang in deiner Tabelle: Wenn du im Zusand s_1 bist, dann darf es nicht sein, dass du auf eine "1" triffst. In der Musterlösung ist dieser Übergang richtig, da du beim Zurücklaufen nach rechts ja über die eingefügten "1" vor dem Wort drüberlaufen musst. Bei deinem Vorgehen darf im Zustand s_1 jedoch keine "1" auftauchen, da du die Einsen vor dem Wort ja als "E" dorthinschreibst und erst ganz am Ende als "1" ersetzt. Lass diese Zelle in deiner Tabelle also einfach leer!

Ich hoffe, ich konnte dir weiterhelfen und die Erklärung war verständlich genug!

Gruß, Janine (Tutorin)
–1 Punkt
Wäre diese Lösung auch korrekt bzw. zulässig?
Beantwortet 25, Sep 2015 von uafjv uafjv Tutor(in) (167,990 Punkte)  
Ja, deine Lösung ist ebenfalls korrekt!

Gruß, Janine (Tutorin)
...