Zwei Sachen vorneweg. Erstens, ich wurde gerade zum Großes laut.
Ich wurde gerade zum dritten Mal darauf hinten drittes Mal.
Ich wurde gerade zum zweiten, dritten, vierten Mal darauf hingewiesen,
dass ich zu schnell rede in der Vorlesung.
Macht mal Anzeichen oder so. Also wenn ich
irgendwie zu schnell rede, bremst mich.
Zweitens, ich bin höllisch unausgeschlafen heute. Also Mistrede bremst
mich auch oder korrigiert mich oder so
Das war das, das. Ach so, und drittens,
wer von euch hatte oder hat noch Probleme mit dem Pumping-Lämmer,
also das für reguläre Sprachen?
Alles klar. Zwei Sachen dazu. Erstens, ich,
dann, ich gucke mal, dass ich dazu noch was mache.
Und zweitens, es gibt noch das Tutorium von Niklas,
diesen Freitag wieder. Da wird bestimmt auch das Pumping-Lämmer dran sein.
Also da könnt ihr dann so zur Klausurvorbereitung nochmal hingehen.
16 bis 18 Uhr, B201. So, dann heute Touring-Maschinen.
Was macht der denn da
Genau, so ein Pumping, ich mache da nochmal irgendwas
zum Pumping-Glamour. Ein Text oder ein Video oder so.
Turing-Maschinen. Wir hatten ja bisher diese DFAs,
die PDAs und wir hatten die Grammatiken, wo wir dann gesehen haben,
das ist im Grunde genommen das Gleiche wie Automaten,
nur dass halt Wörter generiert werden, statt dass die akzeptiert werden.
Und heute wollen wir uns mit Turing-Maschinen beschäftigen. Und so
sah das bis jetzt bisher aus, so sah so ein DFA aus.
Und der Turing-Maschine geben wir eigentlich nur zwei Sachen mehr. Das eine,
was der DFA machen konnte, war ja,
Buchstaben zu lesen und dann auf dem Band nach rechts zu gehen,
also das finden wir doof,
wir wollen auch,
dass er auf den Band nach links gehen kann
Und er konnte auf dem Band nur lesen. Das finden wir
auch doof. Jetzt wollen wir das ja lesen und schreiben
kann. Also die zwei Einschränkungen, dass wir sagen,
wir wollen auf dem Band nach rechts und links gehen können,
mit dem diese Schreibkopf und wir wollen auf dem Band lesen und schreiben können.
Und das ist im Grunde genommen schon alles, dann ist man schon bei den Touring-Maschinen.
Und mit diesen Touring-Maschinen tut man die Touring-Maschinen angelangt,
mit den Touring-Maschinen sagt man, intuitiv kann man damit alles berechnen,
was auch von Menschen berechnet werden kann oder auch alles,
was mit anderen Maschinen berechnet werden kann.
Sprich, wenn es um Berechnungen geht, die Maschinen können alles. Die sogenannte Church-Touring-These,
die zwei, die das damals als Behauptung aufgestellt haben,
Lässt sich natürlich nicht beweisen, weil dann müsste man irgendwie fassen können,
was intuitiv berechenbar bedeutet vom Menschen.
Und man müsste fassen können, was alle Maschinen bedeutet.
Lässt sich also nur widerlegen. Bisher gibt es kein Gegenbeispiel dazu.
Und so von der Intuition her würde man auch sagen,
so ja, stimmt, müsste so sein.
Kann natürlich immer sein, eine Intuition ist irgendwie trügerisch. Kann natürlich sein,
dass irgendwann mal jemand daherkommt mit einer ganz neuen Sichtweise auf Berechnung,
irgendwas, woran man bisher noch nicht gedacht hat.
Vielleicht irgendwie neuartiges physikalisches Modell oder so.
Und dass man dann plötzlich mehr kann als mit Touring-Maschinen.
Bisher sieht das aber nicht so aus. Also Touring-Maschine kann alles,
dann lohnt sich das, sich das Modell anzugucken,
weil man dann mit einem sehr einfachen Modell,
Wenn man sich das so anguckt und jetzt noch definiert,
dass man auf dem Band auch in die andere Richtung gehen kann und dass man auch schreiben kann,
das wird jetzt nicht so ein großartiger Definitionsaufwand.
Und dann kann man sich an diesem recht einfachen Modell
Gedanken darüber machen, was nicht berechenbar ist.
Also wo dann die Grenzen des Computers liegen oder eben auch
des Menschen im Rechnen. Komme ich später nochmal dazu,
aber das so als Motivation, warum es sich lohnt,
diese Maschine überhaupt zu definieren, sich dann anzugucken.
Also die letzten vier Wochen Vorarbeit waren eigentlich dazu da,
dahin zu kommen. Da nochmal,
was ich eben schon ein bisschen gesagt habe,
also DFA und PDA konnten nur lesen,
Touring-Maschine kann auch schreiben.
Dazu hat sie dann so
einen Leseschreibkopf
Der Lesestaatenschreibpop, wie stets auf dem aktuellen Symbol,
genauso wie bei dem DFA auch. Und jetzt gibt es noch so
eine Eigenschaft, das Eingabeband ist nach rechts hin unendlich.
Da kann man nachher auch so definieren, dass das beidseitig unendlich ist.
Idee ist, wenn man, wenn man als Mensch irgendwas berechnet,
kann man sich theoretisch ja immer wieder ein neues Blatt Papier nehmen und damit weiterrechnen.
Und wenn die Touringmaschine jetzt irgendwie Dinge rechnen soll,
dann soll sie halt nach rechts hin beliebig weiter irgendwie Bannzellen,
sagt man, benutzen können eben als Speicher.
Also ein prinzipiell unendlicher Speicher. Bei jeder Rechnung,
die sie tut, benutzt sie natürlich nur endlich viel Speicher,
weil irgendwann ist die Rechnung zu Ende.
Aber prinzipiell kann sie eben
beliebig viel benutzen
Definition. Wieder so ein Tubel, sechs Tubel in dem Fall,
endliche Menge von Zuständen, kennen wir schon,
endliches Alphabet von Eingabesymbolen, kennen wir auch schon.
Beim PDA war das Gamma jetzt für das Kelleralphabet und durfte ganz unterschiedlich sein zu dem Eingabealphabet.
Bei der Turing-Maschine nimmt man dieses Gamma für die Bandsymbole,
wo man sagt, die Bandsymbole säulen beziehungsweise müssen mehr sein als die Eingabesymbole. Grund ist,
bei den Bandsymbolen ist noch das Symbol für das leere Feld,
das kommt gleich ganz unten dabei, dass man quasi sagen kann,
am Anfang ist irgendwie eine Eingabe auf dem Band,
zwei Zahlen, die man addieren will oder so.
Und danach ist eben das Zeichen für das leere Feld.
Das braucht man irgendwie noch im Bandalphabet.
Und ansonsten darf es natürlich mehr sein,
weil man eben in den Zwischenrechnungen ja unter Umständen irgendwelche Dinge tut.
Mit Symbolen, die man vorher nicht im eigenen Alphabet hatte.
Also Eingabealphabet für das, was man als Eingabe nehmen kann,
Bandalphabet einfach noch mehr Symbole, wenn man noch mehr benutzen will.
Und dann hier sagt man noch, dass das Bandalphabet und
die Zustände, die sollen nichts gemeinsam haben.
Üblicherweise macht man das sowieso so. Also warum will man
Doppelbezeichnungen drin haben? Das dient dazu, dass man nachher
elegant die Konfiguration definieren kann
So, dann der nächste wichtige Schritt, die partielle Überführungsfunktion.
Da wird eben gesagt, zu jedem Zustand,
in dem man ist und zu jedem Symbol,
das man auf dem Band liest, gibt es ein Symbol,
das man dann auf das Band schreiben kann.
Das heißt, das Symbol, was man eben gelesen hat,
wird mit einem neuen Symbol überschrieben.
Dann bewegt sich der Leseschreibkopf auf dem Band entweder nach links
oder nach rechts oder er hält seine Position.
Und man wechselt eben in einen neuen Zustand.
Das ist die Überführungsfunktion. Am Anfang habe ich gesagt,
der Leseschreibkopf kann jetzt nach links und rechts gehen.
Hier steht jetzt zusätzlich, er kann noch halten
Also im Grunde genommen, egal, das kann man
machen oder auch nicht. Man könnte sich überlegen,
dass man, wenn man eine Touring-Maschine hat,
die den Kopf halten kann, die kann man durch eine ersetzen,
die dann, wenn die andere halten soll,
einen Schritt nach rechts macht und sofort wieder zurückgeht.
Macht man sich so einen temporären Zustand,
wo man sich nur merkt, oh,
ich habe gerade einen Schritt nach rechts gemacht und soll jetzt wieder zurückgehen.
Und hiermit halten einfach das dann ein bisschen einfacher bei einigen Sachen.
Startzustand können wir auch schon, Menge der Endzustände, können wir auch schauen.
Und dann eben dieses Gatter als Symbol für das leere Feld,
was eben ein Bandalphabet drin sein soll, aber nicht im Eingabealphabet.
Also wenn ihr sowas machen wollt wie Ihr wollt ein Leerzeichen
drin haben in der Eingabe, also dass man,
keine Ahnung, einen Satz als Eingabe nehmen kann,
dann nimmt man eben als für das leere Symbol in der Eingabe noch irgendwie ein anderes Symbol.
Dass er soll explizit dafür sein, dass man sagt,
Speicherzelle, die man noch nicht benutzt hat. Ja,
das sind die zwei, drei, vier, fünf,
sechs Sachen aus dem Tupel mit diesem speziellen Symbol noch rangehängt.
Genau, das ist eine deterministische Touring-Maschine. Statt der über
Führungsfunktion hier kann man das auch wieder mit Kanten machen,
dann hat man halt die fünf Elemente in der Kantenrelation drin.
K ist eine Teilmenge von Z-Kreuz, Garmer-Kreuz, Garmer-Kreuz,
links, rechts halten,
Kreuz,
Und dann hier ist die Überführungsfunktion ja deterministisch,
also zu jedem Pärchen aus Zustand und Symbol, das man liest,
gibt es eben nur ein Pärchen, ein Triebel,
mit dem man die Nachfolge, die Nachvollkonfirmation bestimmen kann.
Und wenn man jetzt Kantenrelation hatte, muss man eben
darauf achten, wie man das im deterministischen Fall macht.
Da sagt man dann zu jedem Pärchen aus ZX,
das sollen die ersten beiden sein,
gibt es maximal einen so einen Triebel derart,
dass das dann eben das Tupel und das Triebel zusammen in dieser Kantenrelation ist.
Wenn es mehr solche Triebel hier gäbe,
dann wäre es nicht deterministisch, dann könnte ich Zustand,
in dem ich bin und Symbol, das ich lese,
unterschiedliche Dinge tun.
Das ist ja nicht mehr deterministisch
Dann kann ich, wenn ich im Zustand Z bin und das Symbol X lese,
kann ich entweder ein Y schreiben oder ein Set schreiben oder ein U schreiben oder irgendwie sowas, dann habe ich mehrere Wahlmöglichkeiten.
Genau, das sind die terministischen Fall. So,
jetzt was gemeint ist,
also wenn ich so einen Übergang hier habe, wenn ich sage,
ich bin in Delta ZX und ich will nach X-S-B-Z-Strich,
dann heißt das, wenn die Turing-Maschine im Zustand Z ist und dieser Lese-Schreibkopf gerade über einem Feld ist,
das mit dem Symbol X beschriftet ist,
dann lösche ich das Symbol X, schreibt er das X-Strich hin,
dann bewege ich den Lese-Schreibkopf,
so wie das B-Mi das ansagt, nach links,
rechts oder ich halte eben.
Und dann wechsle ich in den Zustand Z-Strich
Noch als Anmerkung für später, wenn hier dieses B,
also wenn die Kopfbewegung das Haar ist,
also dass ich den Leseschreibkopf nicht bewegen will,
dann bedeutet das nur, dass ich den Leseschreibekopf nicht bewege,
nicht, dass ich die Touring-Maschine anhält.
Das steht da schon mal so für später, das wird später nochmal wichtig,
dass ihr da nicht durcheinander kommt. Also das B hier,
das bezieht sich nur auf die Bewegung des Leseschreibkopfs, nicht darauf,
ob die Touring-Maschine jetzt sagt, oh, ich bin fertig oder so.
So, Zusammenfassung bis dahin, endlich viele Zustände,
Eingabealphabet, aus denen die eingebewertet aufgebaut sind,
das war das Siedmar, ein größeres Bandalphabet,
weil ich mir Symbol auf dem Band nachher haben kann,
wenn ich rechne,
insbesondere eben dieses spezielle Symbol gattern
Eingabeband nach rechts hinten und endlich zu Anfang das eigene bewahrt
und dann eben unendlich viele von den Gattern.
Und dann eben anders als bei allen Modellen, die wir
das bisher hatten. Wir lesen nicht nur auf dem Eingabeband,
sondern wir können eben auf dem Eingabeband auch arbeiten und die Symbole manipulieren.
Und anders als bei den PDA, da kamen wir immer
nur an das oberste Symbol vom Keller ran.
Können wir jetzt eben an beliebige Symbole rankommen. Also wir
können ja irgendwie auf der Eingabe lesen und Dinge tun.
Genau. So, das ist erstmal die Statik der Touring-Maschine.
So ein bisschen auch die Dynamik, aber um die Dynamik
jetzt besser auszudrücken, brauchen wir wieder diese Konfiguration.
Dass man wieder sagt, eine Konfiguration ist wieder so
ein Wort, bestehend aus Gammastern,
Die Idee soll gleich sein, dass die Position des Zustandes in der Konfiguration,
die gibt an, wo der Leseschreibkopf auf dem Wort ist.
Und weil wir ja anders als früher,
wo wir das eingebewahrt immer einfach von links nach rechts gelesen haben und es ist der Teil,
den wir dann gelesen hatten, egal war,
da wir den ja jetzt noch brauchen,
weil wir eventuell ja wieder dahin zurückgehen,
muss das in der Konfiguration drin bleiben.
Also wenn man irgendwie sowas hat,
wie A hoch NB hochenden und man will das mit einer Touring-Maschine lesen,
dann kann man zum Beispiel erstmal über die As rüberlesen,
also ein A abhaken, über den Rest rüberlesen,
ein B abhaken,
dann wieder zu den As gehen,
da ins Abhaken,
wieder zu den Bs gehen
Das heißt, man braucht den Teil, den man links
schon vielleicht gelesen hat, den braucht man nachher wieder.
Deswegen steckt er da in der Konfurzone mit drin. So ein Wort UZV,
ne, UV aus Garmer Sternzeit aus den Zuständen,
soll eben bedeuten, wir sind im Zustand Z,
die Bandentschrift des UV und links und rechts davon sind dann nur noch Gatter,
wo bei links von dem U eben nur bis zum Ende des Bandes.
Und das erste Symbol von V ist gerade unter dem Leseschreibkopf
Und das ist eine Konfiguration. Beispiel dazu,
und da wieder diese bildliche Darstellung jetzt einer Touring-Maschine,
jetzt stehen da wieder drei Sachen dran, so ähnlich wie beim PDA auch.
Und die Bedeutung jetzt, unten steht das mal in diesem Beispiel dieser AXR-Kante,
die soll eben bedeuten, wenn wir im Zustand Z0 sind,
und der Lese-Schreibkopf gerade ein A liest,
dann kann ich jetzt diese Kante benutzen.
Was bedeutet, ich ersetze das A durch ein X,
gehe mit dem Lese-Schreibkopf nach rechts,
und dann wechsle ich eben der Kante entsprechend in den Zustand Z0,
das heißt,
ich bleibe im Zustand Z0
in dem Fall
Also am Anfang, hier ist jetzt das Wort AAB die Eingabe und
wir sind am Anfang im Zustand Z00, das ist der Startzustand.
Jetzt kann ich nur diese obere Kante entlang gehen,
die mit dem AXR hier. Und dann setze ich also
A durch X und gehe mit dem Leseschreibkopf nach rechts.
Das heißt, diese nächste Konfiguration sieht so aus,
dass ich jetzt erst das X habe,
dann das Set 0 und dann das AB,
weil der Leseschreibkopf jetzt über dem zweiten A ist.
Nehme ich die gleiche Kante nochmal. Sieht das so aus
? Und dann Leseschreibkopf wieder und fällt nach rechts.
Jetzt kann ich die Kante hier nehmen mit dem BBR
Da ersetzt sich das B durch sich selbst, das heißt,
da passiert eigentlich nichts, aber der Leseschreibkopf wird halt nach rechts bewegt.
Das heißt, jetzt steht dieses XXB komplett links vom Leseschreibkopf
und der Leseschreibkopf ist eben über so einem Lehramen-Feld.
Jetzt kann man die Kante von diesem Z0 nach Z1 nehmen
und die sagt eben, wenn da ein Gatter steht,
dann schreibt er auch wieder eins hin und bewegt den Leseschreibkopf,
einfällt nach links. Das heißt,
der steht dann als nächstes über dem B. Jetzt sind wir im Zustand Z1,
das Wort auf dem Eingebeband ist XXB und den Buchstaben,
den wir aktuell lesen,
ist das B. Dann können wir die Kante hier nehmen mit
dem BBR
Wechseln wir den Zustand, also da setzen wir B durch B,
gehen mit dem Leseschreibkopf nach rechts und wechseln den Zustand C2.
Das ist was Z1 hier, ein Feld nach rechts und
wir wechseln den Zustand C2, sieht also so aus.
Jetzt sind wir im Endzustand, jetzt würden wir akzeptieren.
Das kommt gleich noch. So arbeitet eine Touring-Maschine.
Fragen bis dahin. Sieht erstmal nicht so spektakulär aus,
also sind ja erstmal wieder nur so Buchstaben und so,
kommen gleich noch andere Beispiele,
dass man sehen kann,
dass die mehr kann
Die eine Frage war, was bedeutet das,
dass man mit dem Leseschreibkopf nach rechts geht oder halt nach links,
wenn man gar uns am Anfang... Dieses Band,
das sieht man ja eigentlich nie in der Darstellung mit dem Zustandsdiagramm und so.
Aber dieses Band ist eigentlich das Eingabeband und diese gestrichete Linie,
die soll den Leseschreibkopf symbolisieren.
Also das, wo man gerade ist, mit dem Leseschreibkopf.
Und wenn er sich nach rechts bewegen soll,
dann bedeutet das, er geht hier halt ein Feld nach
rechts und wenn er sich nach links bewegen soll,
dann geht er mit dem Feld nach links.
Und bei den Maschinen, die wir bisher hatten,
da war das immer nicht Furk,
da wurde das
nicht explizit erwähnt
Weil sich da der Leseschreibwurf immer nach rechts bewegt hat,
der Lesekopf, der konnte gar nicht schreiben, dass sich immer nach rechts bewegt.
Deswegen stand das dann die explizite. Also rechts ist quasi das,
was wir bisher auch immer gemacht haben, links,
dass man über den Feld nach links bewegen und H ist dafür,
dass der Leseschreibekopf einfach hier stehen bleiben würde.
Genau, und die zweite Frage war, nach dem,
warum da AXXXR steht und BBBR? Warum das CLAXR ist
und da BBR, einfach nur als Beispiel, hat keine tiefere Bedeutung. Das soll nur bedeuten hier,
wenn man A liest, also wenn ich in Z0 bin und ich lese,
A, dann ersetzt sich das A halt durch den X,
also das A wird gelöscht und ich schreibe einen X hin,
Und bei dem BBR bedeutet es halt, wenn man B liest,
dann ersetzt sich das in Anführungsstrichen durch den B,
also ich mache gar nichts.
Also zumindest mache ich nichts auf dem Band. Ich gehe
dann mit dem Leseschreibkopf ein, fällt weiter nach rechts.
Was ist sonst noch Fragen? Ob da ein Gatter steht,
wenn man das Wort zu Ende gelesen hat,
also das Wort zu Ende gelesen, macht bei Turing-Maschinen erstmal nicht unbedingt mehr Sinn.
Also so wie früher, früher war ja,
wenn ich das Wort zu Ende gelesen habe,
habe ich geguckt, bin ich im Inzustand oder nicht.
Wenn ja, akzeptiere ich. Es macht jetzt keinen Sinn mehr,
weil man unter Umständen einmal über das ganze Wort rüberliest,
einfach nur um irgendwas zu überprüfen oder irgendwas zu zählen oder so.
Und dann geht man vielleicht wieder zurück
Und wenn man halt über das Wort rübergelesen hat, dann stehen rechts davon nur noch diese Gatter.
Aber jetzt könnte man da theoretisch was hinschreiben. Also was weiß ich,
wenn du rüberlebst, manchmal macht man sowas wie,
man liest erstmal über das ganze Wort rüber und macht sich dann eine Begrenzung dahin,
dass man dann da, was weiß ich,
ein Dollarzeichen hinmacht, um zu wissen,
hier ist das ursprüngliche eigene Wort zu Ende.
Und jetzt könnte man es zum Beispiel Buchstabe für Buchstabe kopieren.
Dann hat man es da zweimal stehen, wenn man damit
irgendwas machen will. Und das geht ja ja beliebig weiter.
Also nach rechts kommen halt nur noch solche Gatter,
aber die da alle hinzuschreiben, macht keinen Sinn.
Sonst noch Fragen
Weil das Bandalphabet ja, also die Frage war,
warum in der Überführungsfunktion das Eingabealphabet nicht vorkommt.
Also das war ja eine Funktion von Z-Kreuz,
Gamma, nach Gamma, links, rechts halten,
Z. Weil das Bandalphabet ist ja eine Übermenge vom Eingabealphabet.
Also das ist alles mit drin. Aber du kannst ja
so wie hier im ersten Schritt irgendwas von der Eingabe durch ein Bandsymbol ersetzen.
Das heißt, nachher brauchst du auch die Fähigkeit eben abhängig
von Zustand und Bandsymbol, dass da steht,
das zu manipulieren
Kommt gleich noch. Also die Frage war, wann akzeptiert wird
, kommt gleich noch. Hier würde man jetzt akzeptieren,
weil man im Endzustand ist, wie das genau gemacht wird,
machen wir gleich. Sonst noch Fragen. Und dann,
jetzt ist das Problem hier, jetzt will man,
wenn man das hier jetzt formal fassen will, diese Übergänge,
also wir wussten ja, was eine Konfiguration ist, wir wussten,
was so ein, wie Delta, Z-0-A aussieht und sowas.
Und dann kann man sich schon vorstellen,
dass man das irgendwie so aufschreiben muss,
wenn man das jetzt formal fassen will,
Dann wird das ein bisschen komplizierter durch solche Geschichten wie,
was passiert denn, wenn ich hier jetzt einen Schritt nach rechts mache?
Dann muss da ja irgendwie der Schapeln. Das Gatter.
Oder was passiert, wenn ich hier einen Schritt nach links
machen will? Das darf ich ja nicht machen,
weil ich schon ganz links beim Eingewalt beim Band bin und sowas.
Dadurch wird das dann kompliziert. Also Definition der Rechnung wird dadurch
kompliziert. Eingebandt ist einseitig unendlich. Nach links muss ich
irgendwie aufhören, nach rechts kann ich beliebig viel machen.
LSK kann ich über den linken Rand bewegt werden.
Und wir wollen, dass die Konfiration stets den,
in Anführungsstrichen, relevanten Teil auf dem Eingeband darstellt.
Das kann man sich insbesondere durch ein paar Beispiele klarmachen.
Die wollen wir
alle haben
Nur dass wir den haben wollen, ist klar,
das ist vielleicht irgendwie der Staat.
Hier haben wir zwei Symbole gelesen, sind irgendwie in der Mitte.
Sowas wollen wir aber auch darstellen können.
Also jetzt ist ja plötzlich dieses Gatter mit dazugekommen.
Wir wollen aber auch solche Konfigurationen darstellen können. Die sehen
jetzt vielleicht ein bisschen wilder aus. Vielleicht waren hier,
vielleicht stand da mal was bei den ersten drei Symbolen und
wir haben es mittlerweile gelöscht oder wir haben das Wort irgendwie nach rechts geschoben.
Hier haben wir in der Mitte des Wortes irgendwie was gemacht.
Hier haben wir das Wort sogar in drei Teile zerlegt.
Hier sind wir aus irgendwelchen Gründen weiter nach rechts gewandert.
All sowas will man ausdrücken können. Und das Wichtige ist,
meistens will man ausdrücken können,
alles was links steht bis zum Ende des Bandes
Und rechts so lange, bis eben irgendwie der letzte Buchstabe, der nicht ein Gatter ist, kommt.
Das will man alles in den Konfigurationen ausdrücken können,
wie man das intuitiv macht, so wie in dem Beispiel eben,
ist meistens relativ klar, wenn man diese Konfirmuinsübergänge jetzt formal fassen will,
dann wird das ein bisschen wilder, weil man eben jede Menge Fallunterscheidungen machen will.
Wir gehen mal die erste durch und die anderen drei sparen wir uns gleich. Diese Schrittrelation,
also von Konfiguration nach Konfiguration, kann man definieren als,
man kommt von wem, auf B-Strich, genau dann,
wenn eins, zwei, drei oder vier gilt,
und zwar wenn das Wort so aussieht, UY PXV,
P ist der Zustand, X und Y sind Bandsymbole,
die links und rechts davon stehen, U&V sind noch weitere Bandwörter,
die links und rechts davon stehen,
die nicht so sonderlich relevant sind.
Also das hier entspricht,
das hier entspricht irgendwie in den Beispielen hier irgendwie solchen Konfigurationen,
dass das Set hier irgendwie in der Mitte ist oder
auch der hier AAZ BB oder hier der dritten,
in der dritten Zeit oder sowas.
Also so quasi das Allgemeinste, was man so haben kann.
Und jetzt weiß man ja, dadurch,
dass das P hier vor dem X steht,
dass der lese Schreibkopf gerade über dem X ist.
Und jetzt kann man halt alle Fälle durchspielen,
was so passieren kann und wieder die Nachfolgkonfiguration aussehen muss
Wenn ich irgendwie sowas habe, dass ich hier,
dass ich sage, Delta PX ist,
ich gehe nach links,
ersetze das X durch ein Z und wechsel in den Zustand Kuh,
dann muss das irgendwie so aussehen hier,
dass ich dann eben das P nach links geschoben habe und dafür ein Kuh da jetzt steht,
weil ich in Zustand gewechselt habe.
Und das X habe ich durch Z ersetzt,
das heißt, so sieht irgendwie die Nachfolgekonfiguration aus.
Genau. Und dann kann man sich all die Fälle angucken
und immer gucken, was da passiert. Wie gesagt,
intuitiv ist das wahrscheinlich relativ klar, aber wenn man es formal fassen will,
muss man eben auf all diese Geschichten aufpassen,
was es für Fälle geben kann.
Also hier gibt es diese Fallunterscheidung mit V ist Ungleichlander,
Z ist Ungleichgatter und dann kann eben V-Lander sein und all solche Geschichten.
Und dann sieht die Nachfolgekonfliktion immer ein bisschen anders aus.
Aber intuitiv sollte das, glaube ich, klar sein,
mit dem Beispiel, dass Formale da,
das ist so ein bisschen, das ist sehr klein klein.
Dann gibt es noch den zweiten, dritten und vierten Fall,
wenn eben der Zustand ganz recht steht oder der Zustand ganz
links steht oder der Zustand ganz links steht und da auch
gar kein Wort mehr auf dem Band ist oder so.
Dann kann man auch mal gucken, was passiert.
Und hier sieht man bei der zweiten und dritten hier,
da ist der Zustand ja
ganz links
Und da sind Übergänge auch nur möglich, wenn in der Überführungsfunktion
davon ausgegangen wird, dass ich jetzt irgendwie nach rechts gehe.
Wenn hier jetzt ein Link stehen würde,
dann kann man gar keinen Übergang machen.
Also durch die beiden Letzten hier ist abgedeckt,
dass wir nicht nach links aus dem Band rausfallen können.
Okay, dabei will ich es bei der Schrittrelation mal belassen.
Wenn ihr mögt, könnt euch die zu Hause mal angucken
und könnt mal nachvollziehen, dass wirklich alle Fälle richtig sind.
Ansonsten reicht es aber auch, wenn man damit arbeiten kann.
Also wenn man quasi so was hier aufschreiben kann.
Und das ist intuitiv meistens auch klar
Gut, dann statt diesem für einen Übergang kann man
das wieder mit dem Stern machen, für die reflexive,
transitive Hülle, um eben mehrere Schritte zu machen.
Eine Folge davon heißt wieder Rechnung. Und wenn ich jetzt
so eine endliche Rechnung habe von K1 bis KN,
dann heißt sie eben Erfolgsrechnung, wenn ich im Startzustand stehe,
also wenn die Konfirmation so aussieht, Startzustand verknüpft mit irgendwie dem Eingabewort.
Und ich gelange dann in eine Konfiguration,
wo ich eben in einem Endzustand bin, dann akzeptiere ich.
Wenn das eine Erfolgsrechnung ist, was ist jetzt anders
als bei den Automatenmodellen,
die wir vorher hatten
Seht ihr das? In der Volksrechnung steckt ja immer drin, dass man akzeptieren will. Also sprich,
wenn ich in so eine Konfiguration komme, wie hier angegeben,
hier wird gesagt, so eine endliche Rechnung, K1 bis KN,
denn nicht Erfolgsrechnung, wenn ich eben in der Startkonfiguration starte,
also dieses Wort aus Südmar Stern hier,
das wird jetzt das Eingabewort sein.
Z0 ist der Startzustand, die Stadt also in der Stadtkonfiguration
und irgendwie komme ich jetzt zu so einer Konfiguration,
wo ich in einem Endzustand bin und dann sage ich,
hey,
das ist eine Erfolgsrechnung,
also würde ich
das Eingabewort bestimmt akzeptieren
Was ist da anders als bei den Erfolgsrechnungen, die wir
bisher kennengelernt haben? Ja. Genau. Wichtig ist nur,
dass wir irgendwie im Endzustand gelandet sind, wie das,
was auf dem Band aussieht, dann aussieht, ist uns egal.
Was meint ihr denn, was man jetzt akzeptiert?
Das ursprüngliche Eingabewort oder das, was auf dem Band steht
Ja, genau, das ursprüngliche Eingebewort,
dass sich das eventuell irgendwie manipuliere oder mir noch Dinge in
Speicher schreibe und so, das ist mir eigentlich ziemlich egal.
Ich will ja die Eingabe akzeptieren. Also genau,
der wichtige Unterschied bei der Touring-Maschine im Vergleich zu allen anderen Automatenmodellen
ist, ich akzeptiere, sobald ich im Endzustand bin.
Also, da steht es nochmal, wir starten irgendwie in dieser Startkonfiguration Z0W.
Wie ist das Eingabewort? Und aufhören tun wir dann,
wenn wir irgendwie in so einer Konfiration sind,
U und Faul sind irgendwie die Worte, die noch auf dem Band stehen.
Und ZE ist eben der Endzustand. Und dann akzeptieren wir
schon, insbesondere muss das Eingebewort nicht vollständig betrachtet werden
Und wir akzeptieren, sobald wir irgendwie im Endzustand gelangen.
Und auch das hier ist interessant, auch wenn sie dann vielleicht
noch weiterrechnen könnte. Also ich komme in eine Konfirmation,
wo ein Endzustand ist, dann weiß ich,
ich akzeptiere, vielleicht gibt es eine Naturing-Maschine noch Übergänge,
um weiterzurechnen, ist mir egal.
Ich weiß da nicht, ich akzeptiere. Ja genau,
also die Frage war, ob ein Endzustand wieder verlassen werden konnte,
ist gerade das, was ich eben erzählt habe,
auch wenn sie dann vielleicht noch weiterrechnen könnte.
Also wenn sie im Endzustand ist, weiß ich,
das Wort wird akzeptiert und kann im Prinzip aufhören,
auch wenn die Tourmaschine eventuell noch weiterrechnen könnte.
Das kann man dadurch verhindern, wenn man sagt,
naja, dann mache ich einfach gar keine Kanten mehr
aus Endzuständen raus
Das kann ich ja immer machen. Dann weiß ich,
sobald ich im Endzustand bin, akzeptiere ich.
Aber dann hätte man das in der Definition noch weiter einschränken müssen,
hätte man sagen müssen, Endzustände, da dürfen keine Kanten rausgehen und so.
Das wollte man nicht machen, ist auch unnötig.
Und man weiß einfach, sobald ich im Endzustand bin, akzeptiere ich.
Und wenn ich möchte, kann ich die Türenmaschine noch so ummudeln,
dass sie den auch nicht verlassen kann. Akzeptierte Sprache ist dann auch genauso definiert,
dass man sagt, all die Eingabe,
also all die, weh aus Sicht mal Stern,
all die Eingabeworte möchte ich akzeptieren,
bei denen ich von der Startkonfliktion Z0W irgendwie in eine Konfirmation kommen kann,
UZEV mit der Eigenschaft,
dass ZE eben ein Endzustand ist
Da steht es nochmal, uns zu betonen,
wir akzeptieren, sobald wir einen Inszustand erreichen.
Ich muss weder das Eingebetwort ganz betrachten, noch ist es
wichtig, dass ich den Endzustand nicht wieder verlassen kann.
Sobald ich im Inszustand bin, akzeptiere ich.
Fragen bis dahin. Also was jetzt dazukam,
war im Grunde genommen diese Schrittrelation,
die jetzt formal gefasst ein bisschen kompliziert ist,
aber die muss man aus so einem Detail nicht wissen.
Man muss die halt ausführen können und eben,
was die akzeptierte Sprache ist.
Dann die Touring-Maschine von eben Ja,
nein oder Musik Was passiert denn?
Kann das einer beschreiben
Ah. Genau, warte kurz. Wie sieht das Band
jetzt aus? Genau. Genau. Alle Jungs, das
ist ein Gift. Genau, da blockiert sie sogar,
da kann sie gar nichts mehr weitermachen.
Genau. Für die Kamera nochmal
Ich nehme zweimal die oberste Kante. Also jetzt zweimal
ein A durch den X und gehe dabei nach rechts.
Jetzt ist die Bandinschrift XXXBBB-B-B-A. Und mein Leseschreibkopf ist über dem
ersten B. Jetzt gehe ich über die beiden Bs rüber,
mit der zweiten Kante hier. Da erinnere ich gar nichts.
Jetzt bin ich bei XXBB-B-A. Also weiterhin bei dem gleichen Wort,
aber der Leseschreibkopf ist jetzt über dem A. Wieder noch zwei,
fährt dann weiter nach rechts gegangen.
Und jetzt nehme ich wieder die oberste Kante.
Jetzt habe ich XXXB-B-X. Und der Leseschreibkopf ist ganz rechts.
Und dann ist er halt quasi auf so einem Gatter.
Und jetzt kann ich nur noch diese Kante nehmen von Z0
Ändern nix an dem Wort. Skatter überschreibe ich auch nicht
. Leseschreibkopf geht ein Feld nach links. Der letzte Buchstabe
hier waren A. Das A wurde durch ein X ersetzt.
Also ist der Leseschreibkopf jetzt über so einem großen X. Ich
bin im Zustand Z1 und ich lese ein großes X,
so eine Kante existiert da nicht.
Also komme ich aus dem Z1 nicht raus und akzeptiere nicht.
Also ich lehne ab. Das ist das,
was da passiert
Ist das andere? A, A, B,
B, mit der Beschreibung von eben passiert irgendwie
fast das Gleiche
Ja, genau. Ja, ist richtig, ne?
Ich lese genau wie eben auch zweimal über das A rüber.
Er setzt das durch den X,
dann habe ich XX
BB, wobei der Leseschreibkopf über dem ersten B ist,
dann lese ich über die beiden Bs rüber.
Da habe ich XXBB, bin ganz rechts von diesem XXBB.
Das heißt, ich bin über so einem Gatterzeichen,
das kann ich da lesen und nach links gehen.
Und dann bin ich über dem letzten B,
also dann ist die Konfiguration irgendwie X, XB,
Z1B. Und dann, weil ich dann über dem B bin,
kann ich eben diese letzte Kante nehmen und dann bin ich
in einem Endzustand und kann akzeptieren
Für die, die schon geklickt haben, das ist eine Fangfrage.
Ihr könnt natürlich eure Meinung ändern. Ja, ich glaube,
bist du dreimal, wenn ich das richtig eingestellt habe?
Ihr könnt also schnell noch alle drittens klicken und dann muss
ich die Vorlesung vielleicht von vorne nochmal anfangen oder so
Akzeptierte diese Toolmaschine das Wort lil lil lim? Ja,
nein, also eben hatten wir ja das Wort A-A-B-B,
ne? Und da haben wir akzeptiert. Also kommen wir
auf jeden Fall auch in Endzustand mit dem A,
wenn wir eben mit dem A-A-B-B im Endzustand gekommen sind,
sind wir jetzt auch in Endzustand gekommen.
Warum ehrt die Mehrheit trotzdem? Warum ist die Antwort nein
Ja. Genau, das ist gar kein Eingabewort,
ne? Das kann zwar irgendwann mal als Konfiguration auftreten,
aber das hier kann kein Wort sein,
wo ich von akzeptieren oder nicht akzeptieren rede,
weil akzeptieren tue ich nur Eingabewörter oder eben nicht.
Das hier ist aber kein Eingabewort,
weil dieses Raute-Symbol explizit eben nicht im Eingabealphabet drin sein soll.
Blöde Fangfrage zugegeben. Und wenn das irgendwie ein anderes Symbol wäre,
also wenn man ein Dollarzeichen als Platzhalter hätte und dann wäre das irgendwie AAB,
B, Dollar, B, dann würde man eben akzeptieren,
weil man vorher ja auch schon AAB,
B akzeptiert hat
Achso, Moment, stimmt das? Nee, dann würde
man nicht akzeptieren, ne? Dann könnte man gar nicht
weitermachen. Dann würde man irgendwie bei dem Dollarzeichen ankommen,
bei dem jetzt nicht als gedachten Dollarzeichen und würde da blockieren.
Genau. Also Antwort da ist, nein,
weil das kein Eingabewort ist, kann man auch nicht so schnell retten,
wie ich das eben gedacht habe.
Welche Sprache akzeptiert das Ding denn überhaupt?
Ja, genau. Alle Wörter, die mit B enden.
Ich lese über As und Bs im Grunde genommen einfach rüber
mit dem Unterschied, dass ich aus As X mache.
Aber eigentlich ist das gar nicht so wichtig.
Ich lese also über As und Bs
Und irgendwann komme ich an das Ende des Wortes.
Jetzt mache ich einen Schritt zurück und gucke mir also den letzten Buchstaben an.
Also diese ganze Aktion hier mit dem Gattergatter links, die führt einfach nur dazu,
dass ich jetzt auf dem letzten Symbol des Eingebebebewahrts bin.
Und wenn das ein B ist, dann akzeptiere ich und
sonst eben nicht. Wenn das ein B ist,
kann ich wieder von Z1 nach Z2 gehen und bin dann im Endzustand.
Also die Sprache all der Wörter aus AB-Stern, die auf B enden.
Und auch nur die aus AB-Stern, wenn da jetzt irgendwie
noch ein Zeh drin vorkommt oder so in dem Wort,
dann blockiert die Touring-Maschine halt.
So, dann welche akzeptiert die denn
CDE Wert als E?
Ja, stimmt,
hier bei drittens wäre auch gar kein B dabei,
also irgendwie, ich kann ja hier das Lamm da rausnehmen,
also B-Stern, Sigmar Stern ist das Gleiche wie Sigmar Stern.
Also das kann es nicht sein, aber irgendwo ein B,
das wäre die vierte gewesen.
Das wäre beliebig
ein B irgendwo
Das heißt, das ist der Kraft. Ja. Ja
, genau. Also das B muss der allererste Buchstabe sein,
weil wenn der erste Buchstabe in A ist,
dann kann man hier gar keine Kante machen.
Und dann, also für das A gibt es keine Kante,
also kann man den zu, blockiert die Touring-Maschine.
Das ist das einzige der Frauen, die dann runtergebaut werden.
Das heißt, er lacht, er lacht.
Ja, aber die erste versagt ja auch
Ja, die ganze Zeit, wie, das weißt du, die beiden Autos akzeptiert. Und die,
die, die, die, die, die,
die, die, die, die, die, die,
die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, dieorg-Maschine, die.
Die, die, die, die, die,
die, die, die, die, die,
die, die, die, die, die, die,
die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, Blöd.
Der akzeptiert zwar all die Wörter, die in dieser anderen Sprache drin sind,
aber die Sprache, die akzeptiert, ist eine andere.
Das ist nämlich nur genau diese eine Menge und keine andere.
Und die hier akzeptiert eben B, was du eben auch gesagt hast,
B.sieht mal Stern. Ganz schöner Zeitfresser, diese Klickerfragen.
Also ich finde das ja lustig und so. Aber ich gucke,
eben als das losging, dachte ich so,
12.44 Uhr, cool, liegt gut in der Zeit,
noch folge und jetzt schon kurzen Heid.
Mann. Also wie beginnt mit B? Da die Nachbereitung und jetzt Ach
, genau. Bisher, oder fragen wir es dahin?
Fragen, Fragen, Fragen. Okay. Bisher,
das war jetzt so die ganzen Grundlagen,
dass wir es sonst auch immer so definiert haben.
Das Automatenmodell, wie arbeitet das Automatenmodell, wie akzeptiert das
Automatenmodell eine Sprache? Das ist alles schön und gut.
Aber wir kommen ja eigentlich mit dieser Idee,
dass wir sagen, wir wollen ja irgendwas berechnen.
Bisher akzeptieren wir ja nur Sprachen. So,
und jetzt kommt eben das, die Definition dafür,
dass du eben auch tatsächlich Funktionen berechnen können.
Also sowas wie FOLX gleich X plus 1 oder irgendwie sowas
Erstmal Wortfunktionen. Ich kann ja auch sowas haben wie irgendwie aus dem Wort,
was weiß ich, alle Ars rausstreichen oder sowas,
das sind ja auch Funktionen, die bilden eben Wörter auf Wörter ab.
Und wenn ich jetzt also so eine Wortfunktion habe,
die von Sigmar Stern nach Sigmar Stern geht,
dann nenne ich diese Funktion Thuring berechenbar oder eben auch brechenbar oder partiell rekursiv,
genau dann, wenn.
So, ist so eine deterministische Touringmaschine A gibt mit der Eigenschaft,
wenn ich in dieser Startkonfiguration Z0W starte,
dann komme ich genau dann in diese Akzeptierungskonfiguration ZEV,
wenn eben
F&W V ist
Also die Idee ist,
ich starte mit W auf dem Eingabeband,
die Touring-Maschine arbeitet irgendwie rum und am Ende steht das V auf dem Auto,
das V auf dem Eingabeband, mit der zusätzlichen Eigenschaft,
dass ich in einem Endzustand bin und ich ganz links von dem Wort bin.
Also ich starte in Z0 W und ich ende auch so,
dass der Zustand ganz links vor dem Wort steht,
das macht man einfach zusätzlich noch und dass das V dann eben auf dem Band steht.
Dann nenne ich so eine Funktion Touring-berechenbar. Als Beispiel die Funktion,
die ein beliebiges Wort, das aus As und Ws besteht,
auf das Wort abbildet, was irgendwie einmal das Wort ist
oder erst das Wort und dann das umgedrehte Wort nochmal.
Oder das Wort, wo ich all die Ars rausgestrichen habe oder
all die Ars verdoppelt habe oder irgendwie sowas, ist alles tooling berechenbar.
Warum? Weil ihr euch auch selbst vorstellen könnt,
wie ihr das mit dem Blatt Papier macht.
Also man muss das auch irgendwie mit einer Touring-Maschine gehen und
ein Beispiel sehen wir auch gleich noch, die gehen alle.
Dann, wenn ich sowas habe hier, tue ich eine berechenbare Wortfunktion,
jetzt möchte ich aber eigentlich so Funktionen berechnen können wie X plus Y,
also F von XY ist gleich X plus Y.
Solche Funktionen will ich berechnen können.
Wie mache ich das? Ich komme jetzt von N hoch
R und will nach N
hoch S abbilden
So typische Sachen von Endquadraten nach Enden für die Addition, Multiplikation und solche Geschichten.
Entschuldigung. Und da mache ich jetzt Folgendes, diese R-R-R-Eingabezahlen,
die hier kommen, die schreibe ich mir unnäher auf. Hier halt durch Nullen,
also ich fange an in der Startkonfliktion,
ich bin ein Z0 halt und dann steht hier null hoch
M1 und M1 soll eben das erste Argument sein,
0 hoch M2,
M2 soll das erste Argument sein und so weiter und hier steht immer noch das Plus 1,
damit man eben,
wenn da eine Null steht,
dann courdiert das halt
die Zahl null
Wenn da 2-0 stehen, kodiere ich die Zahl 1,
wenn da 3-0 stehen,
kodiere ich die Zahl 2 und so weiter.
Also quasi Unähe gezählt, die Zahlen.
Und dann gehe ich halt von dieser unnäheren Zählung mit den
vielen Nullen zu der Unären-Zählung auf der rechten Seite über,
wobei jetzt die N-Hoch-1-N-Hoch-2 bis N-HS eben gerade das Ergebnis sind.
Also wenn ihr beispielsweise eine Additionsfunktion haben wollt und ihr wollt sowas rechnen wie 5 plus 3 ist 8,
dann wäre die Eingabe eben auf der linken Seite stehen für die 5,
6 Nullen, dann kommt die 1 als Trennsymbol und dann kommt für die 3-4 Nullen.
Und auf der linken Seite steht dann eben,
was kam da raus, 5 plus 3, 8,
auf der rechten Seite stehen dann eben 9 Nullen
Kann man so machen, so. Ist natürlich tierisch unhandlich,
also ist auch von der Laufzeit her nachher blöd,
wenn man das alles umnäher aufschreibt.
Deswegen schreibt man das üblicherweise irgendwie beneakuliert auf, da was eben
eine unnähere Kodierung üblicherweise machen, wie das binär kodiert.
Und dann wird die Zahl 9 eben durch das Wort 1001
ausgedrückt. Dann braucht man hier ein anderes Trennsymbol,
also hier ist das Trennsymbol die 1,
wenn man jetzt 1 und 0 in dem Wort drin hat,
aber auch mit anderes Trennsymbol.
Und dann kann man eben beispielsweise diese Funktion X plus Y als Wortfunktion ausdrücken,
wenn man jetzt halt 1001 plus 100 rechnen will,
dann kriegt man das hier als Argument, das Dollarzeichen als Trennsymbol.
Und dann soll eben das Wort 13 berechnet werden,
das sieht dann so aus
Genau, das kann man dann machen.
Das ist berechnen von Wortfunktionen und von richtigen Funktionen,
also wobei richtige Funktionen eben durch Wortfunktionen gemacht werden.
So, eine Touring-Maschine, die F von x gleich x
minus eins berechnet und x ist eine natürliche Zahl in binäre Kodierung.
Und den Fall, dass da am Anfang nichts
gegeben sein kann oder dass da null gegeben sein kann,
also die Grenzfälle, die ignorieren wir mal.
Wir gehen mal davon aus,
wir haben da irgendwie eine Zahl wie, was weiß ich,
acht stehen oder so und dann wollen wir da
minus eins rechnen
Wie würdet ihr das machen? Also, weil die Grenzfälle,
die fängt man dann halt vorneweg noch irgendwie ab.
Dass man sagt, wenn da nur das Gatter draufsteht,
dann mache ich das und das, wenn da nur eine Null draufsteht,
also die Null koordiert dann ja die Zahl null,
dann breche ich auch ab oder so.
Und erst ab eins wird das spannend. Wie würdet ihr
das machen? Wie würdet ihr sonst binär subtrahieren?
1001 und ihr wollt 1 abziehen
Achso, einfach die Binärkulierung direkt angegeben.
Also 1-0-0 soll die Zahl,
welches ist das jetzt, vier symbolisieren.
Ja, was heißt? Ja. Einer ist immer weiter
. Genau, ich lese erst mal bis zum Ende.
Nein, zwei. Ja, ja. Als wir mit
einer Eins haben. Ich glaube, eines Kapitels sind wir
gegen uns, die Vereine der Vorderseite.
Weil es da auch eine Geburt ist.
Bei der Führung
eine einzige Beine
Andersrum, oder? Wenn dann einsteht, mache ich eine Null
raus und gehe in Endzustand. Wenn dann eine Null steht,
mache ich eine Eins draus und dann muss ich ja noch weitermachen.
Oder mache ich es gerade falsch? Ja, ja,
aber bei dem anderen kannst du ja noch nicht aufhören.
Also wenn dann da einsteht, als letztes Symbol,
wenn du zum Beispiel hast 1-0-1,
dann ist du das Beispiel,
wenn du das 1-0, 1-0. So,
dann gehst du bei der Null,
erstmal noch ein Feld nach links.
Jetzt findest du eine Eins. Ne, stimmt gar nicht
, ne? Ne, bei der
Ja. Nee, nee,
aber aus der Null muss ich doch eine Eins machen.
Warte mal, mache ich das gerade total falsch?
Also wenn da eine Eins steht, helft mir Biniakolierer.
Wenn er einsteht, die Eins 0-1. Ich glaube auch.
Warte mal. Also, wir fahren zum weitesten rechtsstehenden Symbol.
Am Reit ist ein bla. Wenn das eine Eins ist,
schreiben wir eine Null und fahren bei Schritt vier fort.
Das heißt, wir fahren ganz nach links und sind im Endzustand.
Genau. Wenn da nämlich eine Eins steht, kann ich
da noch einfach eine Null draus machen und bin fertig.
Also das letzte Symbol in der Eins ist, bin ich ja fertig.
So, also wenn ich hier nur das mache.
Wenn das aber schon eine Null ist,
dann ziehe ich da jetzt gerade eins von ab,
dann mache ich da eine Eins draus und gehen,
fällt weiter nach links und muss weitermachen.
Solange ich auf Nullen treffe, gehe ich weiter nach links.
Solange ich auf Nullen treffe,
gehe ich weiter nach links und mache da immer Einsen draus,
bis ich auf eine Eins treffe, da mache ich eine Null draus.
Also zum Beispiel müsste ich ja aus Ja, ne?
Ja, gut. Ja, genau, die Anzahl
der Zustände ist mir gerade nicht so wichtig, aber...
Ja. Ich hätte doch Addition nehmen sollen, das ist
irgendwie eingängiger. Okay, kann man also machen, ne?
Addition ist noch so ähnlich, ne? Da fange ich
halt ganz rechts an. Wenn das eine Null ist,
dann mache ich da eine Eins draus und bin fertig.
Wenn es eine Eins ist, mache ich eine Null raus
und gehe weiter nach links.
Und mache dann immer weiter, bis ich auf eine Eins komme.
Okay. Und dann muss man hier natürlich noch darauf achten,
so Sachen wie, wenn das Wort nur aus Eisen besteht,
dann müsste man überall Null draus machen,
dann muss man ganz hinten noch was machen und so.
Ja,
ist ein bisschen doof
Quatsch, bei der Adition muss man das machen.
Eieiei. Erinnert ihr euch noch,
dass ich am Anfang gesagt habe, ich bin total übermüdet?
Das kommt davon. Anderes Beispiel. Wir wollen eine Schulingmaschine,
die X plus Y berechnet. X und Y wieder binäre Zahlen,
die in Beniako, natürlich zahlt die Mini-Kolierung gegeben sind.
Wie macht ihr das? Jetzt habt ihr irgendwie sowas wie 101,
ist das erste und 111 ist das nächste und ihr wollt ja addieren.
Wie geht das? Da kommt Leute, wenn ihr,
wenn ihr dann nehmt, nicht binäre zahlt,
sondern nehmt Zahlen im Dezimalssystem.
Wie addiert ihr 34 und 63
Im Kopf. Ja, genau. Wie er dir in die Stellenweise war, die Antwort, ne? Ich nehme mir von der ersten Zahl,
also neben Beispiel von dem X, nehme ich mir die letzte Stelle,
das merke ich mir im Zustand,
dann gehe ich zu der letzten Zahl von dem Y,
nehme mir da die Stelle, die euch beide zusammen,
kann ich auch im Zustand machen,
weil das ja nur endlich viele Kombinationen gibt,
da schreibe ich mir irgendwo hin,
wo ich das Ergebnis hinhaben will,
merke mir unter Umständen noch so ein Carrie-Flag und dann gehe ich weiter und suche mir von dem X und Y die vorletzte Zahl und das mache ich immer weiter.
Und am Ende muss ich immer noch darauf achten, diese ganze Eingabe zu löschen,
sodass halt nur noch das Ergebnis auf dem Band steht.
Nochmal die Frage? Die Frage nochmal, ich habe es nicht.
Ja. Ja, aber ich mache das ja stellenweise.
Jede Stelle hat ja nur irgendwie, also wenn wir jetzt
dezimal bleiben, dann hat eine Stelle 0 bis 9,
die andere Stelle 0 bis 9.
Da können wir endlich viele Kombinationen rauskommen,
dann kann ich mir noch
Carrie Flag merken
Geht also auch mündlich. Im Grunde genommen,
da steht es nochmal, das ist wie Programmieren,
nur mit einer sehr, sehr eingeschränkten Programmiersprache.
Also nicht mal die Addition kriegen wir. Man kann jetzt natürlich so Sachen machen,
wie dass man sich eine Touring-Maschine baut für die Addition,
eine Touring-Maschine für die Subtraktion und die dann quasi so wie Unterfunktionen irgendwie aufrufen kann.
Dann kann man von der Touring-Maschine die Multiplikation berechnen soll,
die Touring-Maschine benutzen, die die Addition berechnet oder so.
Das kann man dann alles machen. Ergo,
da nochmal diese Church-Touring-These, alles,
was ihr quasi intuitiv irgendwie als Mensch machen könnt,
ihr nehmt euch ein Blatt Papier,
ihr wollt irgendwie rechnen,
da steckt immer irgendwie
eine Berechnungsvorschrift drin
Und das alles kann auch die Touring-Maschine machen. Die kann jetzt natürlich nicht irgendwie,
so wie ihr irgendwie bildlichen Graphen malen,
aber was sie halt machen kann, das all die Tubel aufzuschreiben,
die in dem Graphen abgebildet werden sollen.
Also das kriegt sie dann auch hin. Und alles,
was man sonst so berechnen kann,
so x Quadrat und sowas, das kann die auch alles.
Und wenn jetzt einer denkt so, naja,
aber wir können doch mit reellen Zahlen arbeiten und die Touring-Maschine nicht,
so, mit reellen Zahlen könnt ihr streng genommen auch nicht
arbeiten oder hat mal einer probiert, Wurzel 2 aufzuschreiben.
Ihr könnt natürlich das Symbol für Wurzel 2 aufschreiben,
so, ne? Aber das kann die Touring-Maschine auch,
dann fühle ich mir halt ein Symbol dafür ein,
damit kann ich auch arbeiten
Und alles könnt ihr mal drüber nachdenken, so was,
was ihr meint, was man alles so berechnen kann,
was man alles so in der Schule gelernt hat oder so.
Das kann die auch alles. Wurzel ziehen, quadrieren,
all diese ganzen Sachen machen, das kann sie auch alles.
Aproximativ irgendwie die E-Funktion berechnen oder die Zahl Pi oder sowas.
Aber proximativ berechnen kann sie das auch alles.
Periodisches heißt ja genauso, kannst du ja auch nicht aufschreiben. Du kannst ja auch nicht,
wenn du die Periode hast, was weiß ich,
0-1 oder so, ne,
dann kannst du ja auch nicht dich hinstellen und 0-1,
0-1, 0-1, 0-1,
0-1, 0-1 bis zum St. Nimmerleins-Tag aufmalen,
sondern du schreibst irgendwann 0-1 und weiß ich nicht,
wir haben es in der Schule immer so gemacht mit Balken drüber,
keine Ahnung, ob man da heutzutage was Neueres macht,
0-1 Balken drüber oder so,
das kannst du ja auch machen,
dann führst du dir neue Symbole ein,
dass du sagst, es gibt ein Symbol für 0,
es gibt ein sowohl Vereins und es gibt ein Symbol für 0 mit beiden drüber und eins mit Balken drüber oder so und dann schreibst du genau die hin.
Also im Grunde genommen tatsächlich genauso wie du, ne,
wenn du irgendwie was rechnest, musst du auch irgendwie irgendwo abbrechen,
wo du zum Beispiel sagst,
so ab da reicht es mir.
Deswegen auch das Beispiel so eine Zahl VP oder so approximativ zu berechnen.
Du kannst das irgendwie bis zur vierten Stelle,
fünf Stelle, sechstens schnell die siebten Stelle oder so berechnen
und das kann die aber auch
Ob die dreimal ein Drittel rechnen könnte, das geht sogar,
also da bist du ja sogar im Körper der rationalen Zahlen.
Das geht sogar alles sehr einfach, weil da hast du
irgendwie natürliche Zahlen und ganze Zahlen und einen Brufstrich oder so.
Das kannst du dann alles ohne Probleme machen.
Die kannst du ja sogar ausdrücken, ohne jetzt mit Bruch,
ohne mit, nicht ohne mit Brüchen zu arbeiten,
aber ohne irgendwie mit Dezimalzahlen zu arbeiten.
Dass halt immer zwei ganze Zahlen und einen Bruchstrich dazwischen.
Und damit kannst du halt gut arbeiten.
Sonst noch Fragen
Und so andere Sachen, so Algorithmen, wo man,
keine Ahnung, hatte den vielleicht in SE2 oder so,
Graf-Algorithmen oder irgendwie sowas, das kann die dann auch alles.
Das sieht natürlich alles ein bisschen behämmert aus,
weil ihr irgendwie, wenn ihr, weiß ich nicht,
eine zweidimensionale Matrix habt oder so,
für die Adiatienzmatrix seines Grafen oder so,
dann kann die Touring-Maschine das halt nicht zweidimensional aufmalen,
so wie wir aufschreiben, so wie wir das bis jetzt definiert haben,
sondern wir müssten dann quasi jede Zeile der Matrix hintereinander schreiben.
Und da brauchen wir noch ein Trendsymbol damit,
wir wissen irgendwie, hier endet gerade eine Zeile,
das ist alles mit sehr viel Aufwand verbunden,
aber kann man halt machen
Den weißt du? Ja, genau. Genau. War
noch eine Frage? Ich kann auch kein Mensch sprechen.
Das war mein Mittelfeld von all dem.
Die Frage war gerade sprachlich nach dem letzten Satz.
Also die Bedeutung soll sein, wenn ein Mensch etwas berechnen kann,
Dann kann auch eine Touring-Maschine das berechnen.
Das ist diese Idee von intuitiv Brechbarkeit und Church-Touring-These.
Und im Umkehrschluss heißt das auch, wenn wir jetzt
irgendwie beweisen können, die Touring-Maschine kann irgendwas nicht berechnen.
Also wenn die jetzt zum Beispiel Addition nicht berechnen könnte oder so,
dann wüssten wir auch, okay, dann gibt es auch keine Möglichkeit,
dass ein Mensch das berechnen kann.
Also dann gibt es keine Möglichkeit,
wie du mit Stift und Papier das irgendwie lösen kannst.
Und auch nicht mit Computern, genau. Weil da auch,
da ist auch die Idee, deswegen steht das dann noch irgendwo,
ebenso ist alles, was eine andere Maschine berechnen kann.
Damit sind tatsächlich jetzt nicht nur theoretische Maschinenmodelle gemeint,
sondern auch praktische Maschinenmodelle. Also alles,
was irgendwie ein Computer berechnen kann,
geht auch mit einer Touring-Maschine und so
Und jetzt kann man noch, jetzt bei aktuellen Rechnern
kann man jetzt noch an sowas denken wie, hey,
wir haben noch irgendwie verteilte Systeme, parallele Rechnersysteme und sowas.
Aber die führen auch alle nicht dazu,
dass man effektiv mächtiger wird. Man wird vielleicht effizienter,
also man kann was schneller lösen oder so, aber nicht,
dass du jetzt etwas lösen kannst, was du vorher nicht lösen konntest.
Weil wenn du irgendwas mit einem, keine Ahnung,
mit einem verteilten System lösen kannst, oder mit einem parallelen Algorithmus,
dann kannst du theoretisch auch jeden davon sequentiell irgendwie simulieren.
Und dann musst du halt so Sachen machen wie,
oh, jetzt hat der gerade drei Schritte gemacht,
jetzt darf mal der zwei Schritte machen oder so,
lädt die Laufzeit auf, sehr, sehr, sehr doll sogar so.
Aber wenn es jetzt einem erstmal nur darum geht,
sich darüber Gedanken zu machen, was geht, was geht nicht,
so, dann ist das nett mit der Touring-Maschine,
weil man eben insbesondere nicht dann tausend Fälle unterscheiden muss.
Wenn man das sonst machen möchte,
also wenn ich sonst herangehen möchte und sagen muss,
ich glaube, dieses Problem lässt sich von keinem Rechner lösen.
Und ich will das jetzt machen, ohne so einen formalen Unterbau.
Dann müsste ich losgehen und sagen, keine Ahnung,
hier alle Rechnermodelle mit verschiedenen Speicherhierarchien angucken und verschiedenen Prozessorarchitekturen und all sowas.
Da werde ich nie fertig. Deswegen diese Idee einer
möglichst abstrakten und einfachen Maschine, mit der man sich dann
darüber schon Gedanken machen kann.
Frage? Okay
So, das als Appetitanreger auch für die nächste und übernächste Vorlesung.
Da gucken wir uns dann nicht entscheidbare Probleme an.
Also Probleme, die man nicht mit einem Rechner entscheiden kann.
Wo wir dann sehen werden, dass da schon sehr,
eigentlich sehr wichtige Probleme, die auch praktisch von Bedeutung sind,
dass man die tatsächlich gar nicht lösen kann.
Und dann kann man sich eben Gedanken darüber machen,
wie kann man das irgendwie einschränken?
Beispielsweise sind fast sämtliche semantische Fragen über Computerprogramme nicht berechenbar.
Sind taktische sind ja sehr leicht berechenbar. Also diese taktische Frage,
habe ich eigentlich eine Funktion, in der mal die Return-Null-Anweisung aufgerufen wird.
Sind taktisch, sich total einfach zu lösen,
ich gehe durch den Source-Code durch und dann weiß ich,
ah ja, hier steht's. So, semantisch,
gegeben dieser Programmcode, wird diese Zeile überhaupt wirklich mal aufgerufen?
Also, das ist dann ja eine semantische Frage,
passiert das irgendwann mal im Programmcode, passiert das irgendwann mal im Ablauf des Programmes?
Das kann man algorithmisch nicht lösen. Man kann da irgendwie mit Tests rangehen und so,
man kann das nicht algorithmisch lösen,
also ich kann nicht so wie beim Compiler,
der ja einen Sintax-Check macht, kann ich nicht semantischen Programm prüfen.
Das machen wir nächstes und übernächstes Mal.
Fragen bis da
Frankfurt. Dann, F von sieht man das Sieg mal,
Stern ist berechenbar, genau dann,
wenn es eine Touringmaschine gibt mit, genau dann,
wenn, irgendwo da ist ein Fehler.
Wo? Fünf für, wenn ihr meint, fünf,
wenn ihr meint, das ist alles richtig und sechs,
wenn ihr euch
nicht sicher seid
Ein Kommentarfehler ausschließend, also
Genau, in der zweiten Zeile, welcher, also was ist da falsch?
Bitte? Ja, was muss ZE dann sein? Genau,
also Z wäre auch okay, aber Z muss ein Endzustand sein.
Oder eben ZE und ZE soll ein Endzustand sein, genau.
Also das Wichtige ist,
ich komme nicht nur einfach in eine Konfiguration,
wo ich dann das V auf dem Band stehen habe,
sondern ich soll dann auch in einem Endzustand sein.
Das ist meistens relativ einfach dann sicherzustellen so,
aber damit ihr das da nochmal seht.
Einmal per Handzeichen, wenn ich zwei Turing-berechenbare Funktionen F&G habe,
Ist jetzt auch F plus G-Touring berechenbar.
Wer meint, ja? Ja, ich finde auch,
ich meine, das machen wir ja auch alle naselang.
Also ich rechne die eine Funktion aus, ich rechne die
andere Funktion aus. Ich schreibe mir das irgendwie auf ein
anderes Blatt und dann addiere ich die halt noch zusammen.
Kriege ich die Tour im Maschine auch hin.
Und es multipliziert mit G genauso. Ich rechne F
von X aus, ich rechne gehe von Y aus.
Jetzt habe ich zwei neue Werte, die multiplizieren.
Kriege ich auch hin. Also beides auch Touring berechenbar.
Und das hier, das mit dem Kringel,
also das hintereinander ausführen,
wer meint,
dass das geht
Dafür ja. Ja, wer ist für nein?
Einer. Nee, ist auch Touring berechenbar, ne?
Man berechnet G von X, da kommt irgendein Wert rein raus,
den steckt man in F rein und dann hat man F von Lee von X.
Was man halt machen muss, ist,
wenn ich weiß, ich habe eine Tour,
dass die beiden Funktionen Touring berechenbar sind,
dann heißt das erst mal nur, ich habe eine Touring-Maschine,
die F berechnet und ich habe eine Touring-Maschine, die G berechnet.
Und die muss man dann so ähnlich,
wie man das mit Unterfunktionen macht, irgendwie kombinieren.
Da würde man halt eine neue Touring-Maschine bauen,
die quasi die Touring-Maschine für G aufruft,
um G von X zu berechnen und das Ergebnis nimmt man dann als Eingabe für die Touring-Maschine.
Die F von B von X berechnet und dann hat
man das
Also beides tun berechenbar. So,
jetzt hatten wir den ersten Teil, wo wir gesagt haben,
das und das sind Turing-Maschinen, so und so akzeptiert man Sprachen.
Und wir hatten den zweiten Teil, wo wir gesagt haben,
so und so berechnet man Funktionen. Das sieht erst mal
unterschiedlich aus, ist aber im Grunde genommen das Gleiche.
Deswegen kann man sich nachher darauf beschränken,
wenn es einem jetzt um diese Entscheidbarkeitsgeschichten geht,
also ist ein Problem lösbar oder nicht,
kann man sich dann darauf beschränken, Sprachen zu akzeptieren.
Weil man dann immer das auch irgendwie mit Funktionsberechnungen machen kann und andersrum.
Wie geht das? Akzeptieren einer Sprache ist im Grunde genommen
das Berechnen der charakteristischen Funktionen der Sprache
Charakteristische Funktion tut folgendes, wenn ihr eine Menge M habt,
dann ist Xi von M eben genau dann eins, wenn X&M ist.
Also die charakteristische Funktion bildet sozusagen die Elemente,
die in M sind, auf eins ab und die anderen auf null.
Und wenn ihr also eine Touring-Maschine habt, die eine Sprache
M akzeptiert und ihr wollt aber eine Touring-Maschine, die eine Funktion berechnet. Ja,
dann baut ihr euch eine, die die charakteristische Funktion berechnet,
indem ihr sagt, ich nehme die,
die die Sprache akzeptiert als Unterfunktion, nehme das eigene Wort,
leg ihm das vor, wenn er akzeptiert,
dann lösche ich das ganze Band und schreibe dann eine Eins hin,
wenn er nicht akzeptiert,
lösche ich das ganze Band und schreibe dann eine Null hin
Tut also im Grunde genommen das Gleiche. Andersrum, berechnen einer Funktion,
wenn ich so eine Funktion von M nach N habe,
das ist Akzeptieren dieser Sprache, die besteht aus den Tubeln X, F von X.
Muss man gegebenenfalls geeignet kodieren, aber von der Idee her,
wenn ihr jetzt eine Turing-Maschine habt, die diese Funktion berechnet,
und ihr wollt eine haben, die die Sprache hier akzeptiert,
dann kriegt ihr als Eingabe irgendwie so ein Tubel,
bestehend aus X und Y,
das X legt eurer Turing-Maschine vor, die F berechnet,
da kommt irgendwie ein WRTF von X raus,
und den vergleicht ihr mit eurem Y im Tubel.
Und wenn die gleich sind, akzeptiert ihr,
weil du wisst, das Element ist in der Sprache und
wenn die unterschiedlich sind,
akzeptiert ihr nicht
Wo tritt das auf? Die Funktionen hatten wir berechnet.
Da können wir uns eine Touring-Maschinen überlegen, die die berechnet.
Dann hat man irgendwie solche Rechnungen,
X und Y irgendwie durch den Trainer getrennt und irgendwie kommt man
dann in so eine Endkonfiguration ZE und hier steht eben die Codierung von F von XY.
Und wenn man jetzt eine Sprache akzeptieren will,
also wenn man nicht die Funktion berechnen will,
sondern wenn man eine Sprache akzeptieren,
dann bastelt man sich eine Touring-Maschine, die diese Triple XYZ akzeptiert,
die genau die Eigenschaft haben,
dass X plus
YZ ist
Also beispielsweise das Triebel 2, 3, 5 würde ich akzeptieren,
weil 2 plus 3, 5 ist,
2, 3, 6 will ich nicht akzeptieren.
Und was mache ich dann? Ich nehme mir eben
das X und das Y aus diesem Tupel raus,
lege das meiner anderen Touring-Maschine hier als Eingabe vor.
Die berechnet mir dann ja das F von XY und das
da, das vergleiche ich dann mit dem Z.
Und nur wenn die gleich sind, weiß ich,
ah ja, okay,
dann ist das dritte Element im Tupel gerade die Summe von
X und Y und dann akzeptiere ich und sonst lehne ich ab.
Deswegen kann ich mir eben nachher schönen Gedanken machen über das
Akzeptieren von Sprachen und muss nicht so viel über Funktionsberechnungen nachdenken
Das ist ja hier auch immer so ein bisschen doof,
weil wenn ich so starte hier in Z00X Dollar Y und ich gehe lange dahin,
so hatten wir das ja definiert, dass wir dann gesagt haben,
so jetzt würde diese Funktion berechnet werden.
Jetzt würde diese Turing-Maschine, die Sprache, die diese Turing-Maschine akzeptiert,
das sind dann immer diese Tupel da vorne.
Weil das ist irgendwie doof, damit kann man nicht so viel anfallen.
Da würde ich nämlich alle Tupel akzeptieren. Das heißt,
die akzeptierte Sprache von der Turing-Maschine hier, die ist relativ langweilig,
aber ich kann die halt benutzen als Unterfunktion,
um diese sehr viel spannendere Sprache zu akzeptieren,
wenn es mir denn ums Akzeptieren von Sprachen
geht.
Genau. Fragen bis dahin
Dann noch zwei Sachen, einmal eine Touring-Maschine für A hoch NB
hoch enden. Aber auch in Biochen haben wir schon festgestellt,
ist nicht regulär, es ist kontextfrei, also es gibt
ein PDA dafür und es gibt eine kontextfreie Grammatik dafür.
Wie würdet ihr das mit einer Touring-Maschine machen?
Ich kriege das eingebewollt, irgendwas aus Aschen,
irgendwas, was aus ASMBs besteht,
was macht ihr
Was heißt das? Das heißt, der Vers 100,
der jemals an meiner Arbeit, der ist damit da.
Ja. Ja. Genau. Was man vorneweg noch machen kann,
ist, also ich wiederhole das gleich nochmal,
was man vorneweg machen kann, ist,
man liest einmal über das Wort rüber und guckt,
ob A-A-A-A, ne?
Und wenn jetzt irgendwann das erste B kommt,
dann dürfen nur noch Bs kommen, müsste ich irgendwann so einen Gatter habe.
Dann weiß ich, das Wort hat zumindest schon mal
die Form, dass es irgendwie aufs A-Stern-B-Stern ist.
Jetzt gehe ich wieder ganz nach links und jetzt nehme ich
mir zum Beispiel das erste A und fahre ganz nach rechts und nehme mir das letzte B und dann fahre ich wieder ganz an den Anfang,
nehme mir das jetzt erste A und die lösche ich dann immer,
die ersetze ich immer durch das Gatter und dann fahre ich wieder ganz nach rechts und nehme mir das letzte B,
nehme mir das dritte A, das dritte B,
das vierte A, das vierte B und A,
man muss sich in der Mitte treffen.
Oder ich mache das, was er gesagt hatte,
ich lösche das erste A, das erste B,
das zweite A, das zweite B, das dritte A,
das dritte B und so, das kann man alles machen.
Irgendeine Idee, die Dichter an Programmiersprachen dran wäre,
Also das ist ja so irgendwie diese Idee über das Wort
rüber zu lesen, so, das kann man gut machen.
Dafür lässt sich auch gut ein Zustandsdiagramm machen. Aber was
will dich da an der Programmiersprache? Also nehmen wir mal an,
ihr wollt das implementieren und ihr habt irgendwie einen Arry of Char und ihr wisst,
da sind jetzt irgendwie As und Bs drin,
das würdet ihr definitiv nicht so implementieren.
Also dass ihr irgendwie tausendmal über dieses komische Char übergeht,
das würdet ihr definitiv so nicht machen.
Also hoffe ich
Ja, ja. Ja, genau. Ich mache mir
einfach ein oder zwei Variablen und dann lese ich über
das Wort rüber und ziehe die As und die Bs.
Fertig ist. Also gehe ich einmal über das Wort rüber und dann ist gut.
Gut, muss ich noch ein bisschen wie eben ausschauen.
Da muss ich ein bisschen darauf achten, dass ich jetzt nicht die Wörter akzeptiere,
die aus gleich vielen As und Bs bestehen.
Hier ist ja noch die Reihenfolge wichtig, aber im Grunde genommen so.
Und bei einer Touring-Maschine ist es natürlich ein bisschen behämmert,
weil ich dann irgendwie den Zähler ja nur ganz rechts von dem Board haben kann.
Das heißt, ich lese ein A,
jetzt gehe ich ganz nach rechts, erhöhe den Zähler um eins,
jetzt gehe ich wieder ganz nach links,
ziehe das zweite A, gehe ganz nach rechts,
erhöhe den Zähler um eins und so.
Das ist ein bisschen doof so,
aber ist okay
Kann man so machen. Eine Touring-Maschine, die F von W
gleich wie Rest berechnet. Also Eingabe ist ein Wort,
wie? Aus 001. Und ich will so enden,
dass sich das Wort genau umgedreht auf die Wand habe.
Wie macht ihr das denn? Man kann natürlich
auch die Sprache BWRF akzeptieren, also das Tubel-WWRF.
Aber wir berechnen mal die Funktion. Wie würdet ihr
das machen?
Ein Wort umdrehen
Warum? Gar keine Idee?
Ja. Ja, genau
Genau, genau so. Also ich gehe ja immer über
das Wort rüber und setze mir am Ende noch einen Marker.
Und dann fange ich das, lese ich das eingebewortet quasi
von rechts nach links und baue mir dann hinter dem Marker
das Ergebniswort von links nach rechts auf. Und jetzt,
wenn es jetzt, dann gibt es auch diese Detailgeschichten,
dass ich am Schluss noch den Marker lösche oder irgendwie so ein Kram, aber geschenkt so.
Also das Wichtige ist, ich lese das eine von rechts
nach links, das eine von links nach rechts.
Also für die Idee ist das wichtig.
Das Zustandsdiagramm, das sieht dann schon reichlich wild aus.
Da ist ja irgendwie so eine Schleife drin,
dass ich irgendwie sage, rechts ist das Symbol nehmen,
löschen, dahin gehen, hinschreiben, dahin gehen,
dass sie am jetzt rechtesten wohl löschen,
dahingehend hinschreiben und so weiter
Idee, mag er sowohl links als auch rechts vom Wort W setzen,
damit man bei dem anderen Marke halt finden kann,
okay, das Wort ist jetzt zu Ende.
Letztes sowohl von W lesen, löschen, also durch das Gatter ersetzen.
Nach Rechtswandern, über das Dollarzeichen herüber, also das Dollarzeichen,
was die in der rechten Rand markiert, Symbol dort zu speichern.
Und das immer wieder wiederholen. Das ist ein Gabewort,
löschen wir von rechts nach links und das Ergebniswort
bauen wir von links nach rechts auf. Zu beachten,
bei diesem Rüberlesen, ich lösche hier ja irgendwo Worte da,
das letzte Symbol von W lösche ich immer.
Da muss ich also auch über die Datter rüber lesen können
und bei W Ref muss über das schon geschriebene Teilwort herüber
gelesen werden
B wurde zu Ende gelesen, wenn man auf das zweite
Dollarzeichen trifft und dann löscht man die beiden eben noch und
bewegt den Kopf an den Anfang von diesem WRF.
So sieht das dann aus. Da stand reichlich wild,
die kann, wir gucken uns mal kurz an hier,
der Startzustand, die kannte zu dem ZE,
die ist nur dafür da, das leere Wort auch zu akzeptieren.
Die ist also egal. Als erstes,
den ersten Buchstaben ignoriere ich quasi, gehe einen Schritt nach links,
setz mir LB steht für Leftboundary oder so und schreibe mir dann links da,
wo das Gatter ist, ein Dollarzeichen hin und gehe wieder einen Platz nach rechts.
Jetzt lese ich über das ganze Wort drüber und setze mir
halt auch rechts dieses den Begrenzter des Dollarzeichen. So,
und jetzt bin ich hier angekommen und jetzt sieht die Eingabe,
jetzt sieht das, was gerade auf dem Band ist,
eben so aus, dass ich habe Dollarzeichen,
jetzt das eingabe Wort Dollarzeichen.
Und jetzt kann ich loslegen mit genau dem,
was er eben erzählt hat. Wenn jetzt das letzte Symbol
eben eine Eins war, dann gehe ich hier oben lang.
Das heißt, da oben merke ich mir,
dass jetzt eine Eins gleich schreiben will.
Wenn es eine Null ist, gehe ich da unten lang.
Dann lese ich über alles rüber nachher,
was ich eventuell schon gelöscht habe von dem Eingabewort.
Wenn ich auf den Begrenzter treffe, gehe ich nach rechts,
lese über das, was ich schon geschrieben habe vom WRF-Wort rüber.
Und wenn ich dann irgendwann bei dem Gatter bin,
dann schreibe ich mir eben
entweder die Eins oder die Null
Und dann gehe ich nach links,
lese wieder über das Wort von WEREF rüber,
bis ich zu dem rechten Begrenzer komme und dann beginnt das Spiel von vorne.
Und das mache ich immer so weiter,
bis ich eben fertig bin und die Schritte hier von Z nach Z-Strich und nach ZE,
die sind eben dann dafür da, festzustellen,
dass ich fertig bin und die beiden Begrenzer zu löschen.
Ein Problem bei der Geschichte ist, hier dieser Schritt,
der da, der ist so,
wie wir das bisher definiert hatten, gar nicht möglich,
wir haben ja mit dem einseitig unendlichen Band gearbeitet.
Das heißt, links vom ersten Symbol, das kann ich gar nicht machen.
Ich kann vom ersten Symbol nur nach rechts gehen.
Und die eine Möglichkeit, das zu fixen, wäre,
entweder man verschiebt das eigene Wort am Anfang,
ein Platz nach rechts
Und dann hat man ganz links ein leeres Zeichen.
Oder man arbeitet mit einem beidseitig unendlichen Band.
Da steht es auch noch mal als Anmerkung,
die Touring-Maschine, so wie sie da eben angegeben ist,
geht von einem zweiseitig und endlichen Band aus.
Und das ist aber Äquivalent zu dem bisherigen Touring-Maschinen. Gehen wir da noch einmal,
ich gehe da noch einmal ganz kurz rein,
ihr könnt ja die letzten fünf Folien, naja,
wir gehen mal kurz rein.
Also zwei Touring-Maschinen sind äquivalent, wenn eben die akzeptierten Sprachen gleich sind.
Und jetzt gibt es eben die Definition, die ein,
das zweiseitig unendliche Band Bisher hatten wir ein einseitig ein endliches Band.
Jetzt können wir welche definieren, bei denen das Band in
beide Richtungen unendlich ist. Startkonfigurationsweite in dieses Z0W,
aber ich kann jetzt eben auch gleich nach links gehen.
Das ist bei vielen Sachen eben praktisch. Die andere Geschichte,
die wir benutzen werden, ist so eine K-Band-Offline-Touring-Maschine,
etwas komplizierter Name dafür, dass wir ein Eingabeband haben,
dann K-Arbeitsbänder und dann ein Ausgabeband.
Denn das mit den Karl-Arbeitsbändern, das führt dafür,
dass wenn man diese Geschichte von vorhin haben will,
mit dem A hoch NB hoch N und wir haben einen Zähler,
dann kann man den Zähler auf den Arbeitsbändern haben.
Da muss man nicht immer über das ganze Wort drüber lesen und
irgendwie den Zähler rechts von dem eigentlichen Wort stehen haben,
sondern man kann halt ein A lesen und auf dem
anderen Arbeitsband den Zähler erhöhen
Dafür sind die beiden da. Kurz in Nebenbemerkung hier,
wenn man jetzt sowas hätte mit dem beidseitig und endlich oder auch das hier,
da wird die Konfirmation ja viel komplizierter mit den vielen Arbeitsbändern,
dann müsste man eigentlich die Schrittrelation anpassen.
Da wollen wir mal darauf verzichten. Ich denke mal,
vom intuitiven Verständnis, also die Mehrbandtouring-Maschinen brauchen wir auch nur
intuitiv und die mit dem beidseitig und endlichen Band,
da ist, glaube ich, auch klar,
wie dann die Konfirmationsübergänge aussehen.
Die sehen im Grunde genommen genauso aus,
nur dass man jetzt eben links nicht einfach stehen bleibt,
sondern man kann nach links abliebig weitergehen.
Morgen gucken wir uns einmal ganz kurz an,
warum die beiden Modelle Äquivalent sind.
Also ich begründe das einmal kurz,
warum dieses einseitig und endliche Band und das beidseitig und endliche Band
im Grunde genommen
das Gleiche tut
Und auch warum dann eben die Carband-Offline-Touring-Maschine auch simuliert werden kann.
Und dann kann man immer die nehmen, die uns mehr zusagen. Und für den Aufgabenzettel,
das, was wir im Allgemeinen machen werden, ist,
wenn es darum geht, ein Zustandsdiagramm anzugeben,
dann werden wir mit einer Touring-Maschine arbeiten,
die so wie eben ist, mit einem beidseitig und endlichen Band.
Und wenn es nur darum geht,
so wie wir das vorhin bei dem auch in Bioch-En gemacht haben,
intuitiv zu erzählen, was die Touring-Maschine denn tun müsste,
um die Sprache zu akzeptieren, dann arbeitet man eben mit möglichst Allgemeinmodell,
sprich mit so einer K-Band-Touring-Maschine.
So, die letzten fünf Folien waren jetzt ein bisschen schnell,
die könnt ihr euch zu Hause nochmal kurz im Detail durchlesen.
Das sind auch sonst die ersten Folien für morgen
Morgen ist Bahnstreik, glaube ich. Also Bahnstreik wurde auf jeden Fall.
S-Bahn, glaube ich, auch. Lars eben meinte,
er müsste es eigentlich schaffen und es müsste dann ein Livestream geben.
Ich schaffe es auch. Ich kann glücklicherweise
auch die U-Bahn nehmen und die streikt ja nicht.
Wenn ihr also nicht kommen könnt, morgen wegen Bahnstreik,
dann den Livestream, sollte es eigentlich geben.
Gut, das war's.