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

Neuer alternativer Lösungsvorschlag

+3 Punkte
119 Aufrufe

Hallo, 

wäre genial falls jemand kurz Zeit hätte, meinen Vorschlag zu überprüfen :) 

Liebe Grüße,
Andrea

Gefragt 17, Jan 2016 in 2014-B-02 von utdas utdas Lernwillige(r) (700 Punkte)  
Wie wäre es, wenn Sie uns die Überprüfung erleichtern, indem Sie ein XWizard-Skript angeben? Sie können dieses Beispiel abwandeln: http://www.xwizard.de:8080/Wizz?template=ID-12665#Output
:-)
Natürlich, ich hoffe es stimmt so:

turing:
(s0, 0) => (s0, 0, R);
(s0, 1) => (s1, e, L);
(s0, *) => (s2, *, L);
(s0, e) => (s0, e, R);
(s1, 0) => (s1, 0, L);
(s1, 1) => (s1, 1, L);
(s1, *) => (s0, e, R);
(s1, e) => (s1, e, L);
(s2, 0) => (s2, 0, L);
(s2, *) => (se, *, R);
(s2, e) => (s2, 1, L);
--declarations--
e=#n#;
s0=s0;
F=see;
blank=*;
inputs=abbbab;
runStepsScript=100;
shortTrace=false;
tempInputToCreateCodeFrom=null
--declarations-end--
Ich muss mich entschuldigen, habe gerade gesehen dieser Vorschlag stand auch in der Bonusklausur, muss ich übersehen haben! Aber trotzdem vielen Dank auch für den Tipp mit XWizard :)
Stimmt! Habe ich auch übersehen :-)
Brauche ich den Übergang (s1,1) -> (s1,1,L) überhaupt?
Weil wenn ich am linkesten Zeichen von w beginne, wandelt (s0,1) -> (s1,e,L) immer die erste Eins von links in w in ein "e" um und geht ein Feld nach links, womit links vom rechtesten e in w keine 1 mehr vorkommen kann.

Vielen Dank
ja - du hast Recht. In der Musterlösung werde die Lösung auch ohne diese Übergang angegeben.

Hier kannst du das auch mithilfe XWizard sehen:

turing:
(s0, 0) => (s0, 0, R);
(s0, 1) => (s1, e, L);
(s0, *) => (s2, *, L);
(s0, e) => (s0, e, R);
(s1, 0) => (s1, 0, L);
(s1, *) => (s0, e, R);
(s1, e) => (s1, e, L);
(s2, 0) => (s2, 0, L);
(s2, *) => (se, *, R);
(s2, e) => (s2, 1, L);
--declarations--
e=#n#;
s0=s0;
F=see;
blank=*;
inputs=0101;
runStepsScript=100;
shortTrace=false;
--declarations-end--

Viele Grüße.
Kaleb (Tutor)
Ja da hast du Recht. In dieser Lösung wird der Übergang nicht verwendet, daher kann er weggelassen werden, da weiter links alle 1en in e`s umgewandelt wurden. In der Musterlösung ist der Übergang erforderlich, da vor dem Wort gleich 1en geschrieben werden.

Viele Grüße
Moritz (Tutor)

Eine Antwort

+2 Punkte

Wenn Sie dieses Skript verwenden (die Variable "inputs" ist verändert), dann sehen Sie eine Beispielrechnung Ihrer Maschine:

turing:
(s0, 0) => (s0, 0, R);
(s0, 1) => (s1, e, L);
(s0, *) => (s2, *, L);
(s0, e) => (s0, e, R);
(s1, 0) => (s1, 0, L);
(s1, 1) => (s1, 1, L);
(s1, *) => (s0, e, R);
(s1, e) => (s1, e, L);
(s2, 0) => (s2, 0, L);
(s2, *) => (se, *, R);
(s2, e) => (s2, 1, L);
--declarations--
e=#n#;
s0=s0;
F=see;
blank=*;
inputs=0101;
runStepsScript=100;
shortTrace=false;
--declarations-end--
 
Die Lösung ist soweit ebenfalls richtig und sogar noch etwas kürzer als die Musterlösung!
Beantwortet 17, Jan 2016 von Lukas König Dozent (10,065,100 Punkte)  
...