Heute Teil 2 zu diesen Touring-Maschinen. Gestern hatten wir die Touring-Maschine eingeführt und
im Grunde genommen erst mal Statik und Dynamik von den Touring-Maschinen.
Also wie sieht die aus? Was hat die?
Und wie arbeitet die? Dann haben wir uns
ein paar Beispiele angeguckt und haben uns angeguckt,
dass die nicht nur Sprachen akzeptieren kann, sondern auch Funktionen berechnen kann.
Und ganz zum Schluss haben wir noch gesehen,
dass es auch irgendwie unterschiedliche Varianten geben kann.
Und ungefähr da fangen wir heute wieder an.
Aber erst mal wiederhole ich im Schnelldurchgang das, was wir
gestern gemacht haben. Also das obere Bild ist irgendwie das,
was wir noch vom DFA kennen
Und die Idee war, das irgendwie zu erweitern,
dass man jetzt auf dem Band nicht nur nach rechts gehen kann,
sondern auf diesem Eingebeband da oben eben nach links und rechts
gehen kann und dass man auf dem Band nicht nur lesen kann,
sondern dass man auf dem Band auch schreiben kann.
Und dann haben wir gesagt, das reicht schon, diese beiden Fähigkeiten,
um dann eben zur Touring-Maschine zu kommen und dann haben wir diese Church-Touring-These uns angeguckt,
wo wir gesagt haben, dass das dann tatsächlich auch alles ist,
was ein Mensch berechnen kann,
also dass das quasi ein universelles Berechnungsmodell ist,
mit dem man alles erwischen kann.
Definition war dann wieder so ein Tupel,
Zustandsmenge kannten wir schon, endlich das Alphabet von Eingabesymbolen,
dann hatten wir noch so ein zusätzliches Alphabetgammer von Bandsymbolen,
wo wir gesagt haben,
das soll irgendwie größer sein
als das Eingabealphabet
Staatszustand kennen wir Mängel der Endzustände, kennen wir dieses spezielle Symbol für
das leere Feld, war jetzt auch nicht so überraschend.
Und dann hat man eben gesagt, diese partielle Überführungsfunktion,
die soll immer ein Tupel aus Zustand und Amtssymbol abbilden auf ein Tupel,
bestehend aus Bandsymbol, Kopfbewegung vom Leseschreibkopf und eben Nachfolgezustand.
Und die Idee war eben, wenn man jetzt in so
einem Zustand Z ist und das Symbol X gerade liest,
dann, wenn eben die Überführungsfunktion sagt,
dass das abgebildet wird auf dieses Triple X-BZ-Strich,
dann ersetzt man X eben durch X-Strich
Was auch gleich sein kann, das heißt,
dann würde gar nichts passieren,
aber üblicherweise ersetzt man X irgendwie durch X-Strich,
bewegt den Lese-Schreibkopf, entweder nach links,
nach rechts oder man hält halt seine Position und man wechselt in den Zustand Z-Strich.
Also alles sehr elementar, die Beispiele, die wir uns angeguckt haben,
waren auch so, dass man gesagt hat, ja,
das ist eher elementares Programmieren, so mit wenig zusätzlichen Operationen.
Genau, was man jetzt noch braucht, ist für die Dynamik,
dass man eine Konfirmation hat und die Konfirmationsübergänge.
Und Konfirmation hat man gesagt, sollen immer Wörter sein aus
Gammastern, Z-Gammmastern. Die Idee ist eben,
dass quasi der Zustand hier dann auch angibt,
wo der Leseschreibkopf gerade ist, durch seine Position in diesem Wort.
Der ist dann nämlich gerade über dem ersten Buchstaben des Elements aus dem zweiten Kammerstern hier.
Wenn man da so als Wort so ein UZV hat,
wobei Z der Zustand ist, dann ist A, gerade in dem Zustand
Z. Die Bandinschrift ist UV. Und das erste Symbol von V
ist gerade unter dem Leseschreibkopf. Wenn man das hat,
dann kann man jetzt quasi nachgucken, naja,
was ist dann jetzt Delta Z von und dann das erste Symbol von V?
Guckt nach, was man machen kann und kann da die Nachfolgekonfiguration bestimmen.
Also das erste Symbol von V wird durch irgendwas ersetzt.
Der Leseschreibkopf wandert irgendwo hin und der Zustand wechselt sich
Und dann kann man eben diese Schrittrelation hier definieren,
was ich hier jetzt nicht mehr explizit aufgenommen habe,
sondern einfach nur, die müsste man jetzt genau definieren.
Dann kann man wieder die reflexive,
transitive Hülle dafür definieren und eben dann eine Rechnung, wenn man sagt,
mehrere Schritte davon nennt man dann eben eine Rechnung und eine Erfolgsrechnung nennt man das,
wenn man irgendwie in so eine Konfiguration KN kommt, mit der Eigenschaft,
dass der Zustand in der Konfition eben ein Endzustand ist.
Dann nennt man das Erfolgsrechnung. Und genau,
da haben wir uns ja gestern auch schon,
haben wir schon drüber diskutiert, dass eben,
wenn man dass man das Wort nicht bis zum Ende lesen muss,
dieses Wort aus Siegmar Stern, also die Eingabe,
sondern es ist eben nur wichtig, dass man irgendwie eine Konfliktion kommt,
wo ein Endzustand drin ist, dann würde man schon akzeptieren.
Beispiel, unten steht nochmal, was diese Kante bedeutet,
also wenn man jetzt irgendwie so eine Kante hier,
Z0 nach Z0 hat mit diesem AXR, dann soll das eben bedeuten,
wenn ich in Z0 bin und das A lese,
dann kann ich das A durch ein X ersetzen,
mit dem diese Schreibkopf nach rechts gehen und wieder in den Zustand Z0 wechseln.
Also die Kante hier, die steht für Delta Z0A, ist das Toople XRZ0.
Und die kannte hier von Z1 nach Z2, die steht für Delta Z1b,
also wenn ich in Z1 bin und das B lese,
dann B-R-Z2, also B, auch wieder schreiben,
nach rechts gehen und eben in den Zustand Z2 wechseln.
Genau, und wenn man dann dieses eingebührt A,
A, B hatte und im Zustand Z0 ist,
dann sieht man eben an der Konfrontation, dass Z0,
also dass ich inzwischen Z0 bin und dass ich gerade in A lesen will und dann guckt man halt hier nach,
ob man hier irgendwie Kanten dran hat,
bei denen ganz vorne in A steht und wenn das so ist,
kann man die eben benutzen.
Und die sagt uns jetzt eben,
ersetzt das A durch den X und bewegt dich mit dem
Leseschreibkopf ein Feld nach rechts und bleibt im Zustand
Z0. Dann hat man die Nachfolgekonfiguration.
Gleiche Kante nochmal. Jetzt kann man die Kante mit dem
B nehmen
Immer weiter nach rechts gehen. Jetzt ist man über diesem Gatter.
Also das Band war ja einseitig unendlich. Das heißt,
danach kommen beliebig viele von diesen Gatter-Symbolen für das leere Feld.
Und jetzt sagt die Kante irgendwie, jetzt soll ich in
den Zustand Z1 wechseln und eben mit dem lese Schreibkopf nach links gehen.
Das heißt, dieses Z0 wird ein Z1 und geht eben
ein Feld wieder zurück nach links.
Das heißt, die Nachfolgekonfiguration. Und jetzt kann man gucken,
gibt es eine B-Kante aus Z1 raus, die gibt es,
die Rechte hier. Und wenn man die entlang geht,
ist man eben im Zustand Z2. Und jetzt kann man
das Wort akzeptieren, weil man jetzt im Endzustand ist.
Also das ursprüngliche Eingewöhnwort akzeptiert, man akzeptiert jetzt nicht XXB,
sondern man akzeptiert AAB
Genau, da die Definition für die akzeptierte Sprache,
dass man eben gesagt hat, all die,
wie aus Sigmar Stern mit der Eigenschaft,
wenn ich in so einer Startkonfliktion starte und eben durch irgendwie eine beliebige Anzahl von Schritten in eine Konfiguration komme,
wo ich in einem Endzustand bin, dann akzeptiere ich das Wort.
Das war doch die gleiche Touring-Maschine von eben. Wir haben halt festgestellt,
man liest halt in Z 0 über die As und Bs rüber,
ersetzt dabei die As durch X,
aber das ist nachher gar nicht so relevant,
aber man liest halt über die ganzen As und Bs rüber,
bis man irgendwie das Ende des Wortes erreicht,
dann muss man an so einem Gatter sein,
dann geht man wieder ein Feld nach links
und guckt sich quasi den letzten Buchstaben an
Und wenn das ein A war,
dann steht da jetzt ein X und wenn das ein B war,
steht da weiterhin ein B. Naja,
und wenn da weiterhin ein B steht,
dann können wir diese letzte Kante nehmen und können akzeptieren.
Sprich, wir akzeptieren all die Worte aus A-B-Stern, die irgendwie auf B enden.
Also die Sprache akzeptiert die Tourmaschine. Und da kann man
auch tatsächlich halt all die Worte aus A-B-Stern lesen,
wenn man die zuerst in Z0 liest. Und bei der Touring-Maschine,
die kann jetzt gar nicht so viel lesen,
aber was die Macht ist,
sie guckt sich den ersten Buchstaben an und wenn das ein B ist,
dann kann ich eben diese Kante von Z0
nach Z1 nehmen
Und dann bin ich gleich in einem Endzustand, also akzeptiere ich dann.
Das heißt, die Turing-Maschine akzeptiert all die Worte, die mit B beginnen.
Hier steht A, B, Stern, also B aus A,
B, Stern. Weiß man eigentlich gar nicht genau,
sondern da müsste man jetzt irgendwie,
bei der Turing-Maschine müsste man jetzt sinnvollerweise vorher das Eingabealphabet angeben,
dass man irgendwie sagt, Sigma ist A,
B. Weil wenn Sigma A, B, C ist oder so,
dann akzeptiere ich eben all die Worte,
die aus ASBs oder Cs bestehen.
Das Wichtige ist, dass die mit B beginnen.
Ja, das war das so zur akzeptierten Sprache.
Und jetzt haben wir gesagt, wir können auch Funktionen berechnen
Immer nur Sprachen hatte. Wir wollten ja irgendwie dahin,
dass wir gesagt haben, Church-Touring-These,
die kann all das berechnen, was Menschen auch berechnen können.
Und jetzt geht es ja üblicherweise nicht ums Akzeptieren von Sprachen,
sondern irgendwie ums Berechnen von Funktionen, also Additionen oder solche Geschichten.
Und dann brauchte man irgendwie einen Begriff dafür, wie die Touring-Maschine etwas berechnet.
Dann hat man erst mal mit Wortfunktionen angefangen, hat gesagt,
wenn ich so eine Funktion F von Sigmar Stern aus Sigmar Stern habe,
dann nenne ich die Touring berechenbar, wenn folgendes gilt.
Wenn ich in der Startkonfliktion Z0W starte,
dann will ich in so eine Konfliktion ZEV enden.
Genau dann, wenn eben F von W gleich V ist.
Das heißt, wenn die Funktion F das Wort W
auf V abbildet, Dann macht die Touring-Maschine quasi gestartet.
Auf wie arbeitet die irgendwie? Und danach steht das Fower
auf dem Band. Also quasi sie berechnet gerade die Funktion F.
Und dann zusätzlich soll hier noch gelten,
dass das ZE eben dann ganz vorne steht und nur noch
das V auf dem Band ist und sowas.
Aber das kriegt man quasi alles nachher hin. Also wenn man irgendwie weiß,
ich habe jetzt das V auf dem Band stehen und bin fertig,
dann kann man danach eben den Leseschreibkopf noch ganz nach links bewegen,
alles andere auf dem Band löschen und in Endzustand gehen.
Das ist dann nicht mehr so das Problem. Genau,
das ist fürs Berechnung von Wortfunktion und spannender ist ja Funktion
zu berechnen, die irgendwas mit Zahlen zu tun haben.
Da muss man die Zahlen dann
irgendwie kodieren
Und dann hat man gesagt, wenn man jetzt so eine
Funktion hat von N hoch R nach N hoch S,
dann kodiert man halt die natürlichen Zahlen einfach unnäher durch eine Folge von Nullen.
Wenn man jetzt hat, hier F von M1 M2 bis MR,
also im 1 bis MR, sind natürliche Zahlen,
dann kodiere ich jetzt M1 eben durch M1 plus 1 viele Nullen,
das plus 1 0 nur dazu dienen,
dass sich jetzt eben die Zahl Null durch eine Null kodieren kann,
die Zahl 1 durch 2-0,
die zahlt 2 durch 3-0 und so weiter.
Also sonst kann ich die Null nicht kulieren. Ja,
und dann will ich halt hier genauso wie bei der Wortfunktion auch,
will ich eben von der Konfiguration hier,
die mein Eingabetupel hier kodiert,
will ich zu einer Konfliktion kommen,
die gerade das Ergebnistupel hier
Kodiert. Genau,
und üblicherweise macht man das nicht so wie hier mit so einer UNER-Kodierung,
weil das zu doll den Platz aufbläht, den Platz verbraucht,
sondern eben in der Bieneakudierung, dass man dann irgendwie,
also so habe ich nicht mehr, dass man dann eben dieses,
diese M1 plus 1 viele Nullen,
dass man die dann irgendwie binär ausdrückt und dann braucht man hier halt ein anderes Trennsymbol,
weil die eins dann ja in der Bieneakulierung drin ist.
Aber da hatten wir ja auch so Beispiele gesehen für irgendwie X
Dollar Y und dann soll da eben X plus Y rauskommen.
Das konnte man dann alles machen. Ein Beispiel war dieses
F&X gleich X minus
Zahl X Imbinierkudierung gegeben. Jetzt gehen wir zudem am
weitesten recht stehenden Zeichen. Wenn das eine Eins ist,
machen wir dann eine Null raus und sind fertig.
Und dann haben wir eins abgezogen. Wenn das eine Null ist,
dann rechnen wir halt auch minus eins, aber dann kommt da
halt eine Eins hin und wir müssen bei dem zweiten Schritt weitermachen.
Jetzt gehen wir halt, wir machen aus der Null eine Eins,
gehen einen weiter nach da, wenn das oft eine Null ist,
machen wir da auch wieder eine Eins raus und so weiter,
bis wir irgendwann mal auf ein Eins treffen,
dann machen wir da eine Null draus.
Genau. Und gestern hatte mich das Beispiel selbst verwirrt und
nachmittags war ich mir sicher,
dass das wieder so stimmt
Das ist tatsächlich binäres Subtrahieren. Ihr könnt euch auch überlegen,
dass man das kann auch dezimal machen und so.
Dann hat man halt einfach nur ein paar mehr Fallunterscheidung bei den Subtraktionen, die man macht.
Also hier gibt es ja nur 1 minus 0 oder 0 minus 1 oder so.
Und bei dem anderen gibt es halt mehr Zahlen, die man abziehen kann. Ja. So,
und dann kann man eben auch, wie bei diesem minus 1,
kann man auch irgendwie Subtraktionen allgemein machen, Aditionen, Multiplikationen,
kann man alles mit Thuring-Maschinen kodieren und dann kann man eben diese Church-Touring-These aufstellen,
die eben besagt, alles,
was irgendwie ein Mensch berechnen kann,
kann auch so eine Touring-Maschine berechnen,
alles,
was irgendwie von anderen Maschinen berechnet werden kann,
keine Touring-Maschine auch berechnen
Das ist quasi ein universelles Berechnungsmodell. Und wenn man dann
im Umkehrschluss kann man sich dann nämlich angucken,
was eine Touring-Maschine nicht kann und weiß dann eben auch,
das ist auch das, was ein Mensch nicht kann.
Ja, letzte Folie von der Wiederholung, um diese Brücke
zu schlagen, zwischen Akzeptieren von Sprachen und Funktionen berechnen.
Und dem sagen, ist alles relativ ähnlich.
Ob ich eine Sprache akzeptiere oder die charakteristische Funktion berechne,
ist im Grunde genommen das Gleiche. Also beim Akzeptieren von
Sprachen kriege ich das eingebewortet und sage am Ende quasi,
entweder ich akzeptiere oder nicht.
Und bei der charakteristischen Funktion kriege ich auch das Eingabewort.
Und wenn ich akzeptieren will, dann schreibe ich am Ende
der Einzelnen und wenn ich nicht akzeptieren will,
schreibe ich am Ende eine Null hin.
Das ist irgendwie ziemlich ähnlich
Und berechnen von Funktionen kann man auch durch akzeptieren,
von Sprachen ausdrücken,
wenn man diese Funktion F von MN berechnen will,
dann will man halt gerade die Tubel akzeptieren,
die aus X und Bild von X bestehen,
also aus X und F von X. Genau,
das ist also im Grunde genommen das Gleiche,
deswegen reicht es nachher, sich auf Akzeptieren von Sprachen zu beschränken.
Das ist dann in den Argumentationen, in den Beweisen
ein bisschen einfacher. Aber man weiß dann eben,
wenn es eine Sprache gibt, die man nicht akzeptieren kann,
dann kann man auch die zugehörige Funktion nicht berechnen.
Genau, so, das war das.
Du hast dann die Stichworte,
die wir
so gemacht haben
Bis dahin. Gestern haben wir noch einen kleinen Schritt weiter gemacht,
dass wir uns schon noch die Varianten von der Touring-Maschine ein bisschen angesehen haben.
Das machen wir gleich. Aber dass erstmal so die ganzen
grundlegenden Begriffe akzeptieren von Sprachen, Berechnen von Funktionen und so.
Habt ihr da Fragen erstmal bis dahin?
Gestern noch Fragen aufgetreten oder so?
Bitte? Kommt noch
Frage war gerade nach einem Beispiel für nicht berechenbare Funktionen kommt noch.
Tatsächlich ganz elementare Sachen, die nicht berechenbar sind.
Achso, nicht berechenbar. Nicht berechenbar ist quasi nachher nochmal doller.
Also es gibt gleich nicht entscheidbar und nicht aufzählbar.
Nicht entscheidbar sind jede Menge spannende Sachen und nicht berechenbar.
Das sind dann die Sachen, für die es nicht mal
eine Touring-Maschine gibt, die die Sprache akzeptieren.
Die sind dann nicht mehr ganz so praktisch relevant,
sage ich mal so. Aber da gibt es auch
noch jede Menge, die nicht gehen.
Die kommen nächstes Mal, glaube ich,
erst.
Sonst noch Fragen
Kann man sich auch schon vorstellen, dass das nicht so was Einfaches sein wird,
wie auch in Beochn-Chochn-D hoch N oder so, das wird alles gehen.
Da muss man so ein bisschen mit Paradoxien halt arbeiten, ein bisschen rumtweaken. Gut,
wenn es keine Fragen gibt dazu,
dann steigen wir ein in dieses Thema Varianten von Turing-Maschinen,
haben wir ja gestern einmal ganz kurz angetoucht,
dass wir gesagt haben, naja,
wenn ich bisher dieses einseitig und endliche Band habe,
dann kann ich auch eine Turing-Maschine machen mit einem zweiseitig und endlichem Band und das muss irgendwie gleich sein.
Sprich, ich muss irgendwie Äquivalenz von Turing-Maschinen ausdrücken können,
das wollen wir gleich machen,
dass wir halt diese Einband-TM mit beidseitig und endlichem Band uns angucken,
dann die Mehrband-TM und dann die nicht-diterministische Turing-Maschine
Und wenn wir noch Zeit haben, dann führen wir noch diese beiden Begriffe Aufzählbarkeit und in Schaltbarkeit ein.
Und dann können wir nächstes Mal nämlich uns über Unentscheidbarkeit und Unaufzählbarkeit und sowas unterhalten. Genau,
aber erst mal für jetzt erst mal diese Varianten,
was wichtig ist, immer wenn man eine Variante einführt,
will man eigentlich zeigen, dass die nicht mächtiger ist als eine Turing-Maschine,
sonst wird das gleich diese Church-Touring-These widerlegen.
Ergo braucht man seinen Äquivalenz-Begriff, dass man sagt,
zwei Turing-Maschinen sind äquivalent, wenn sie die gleiche Sprache akzeptieren.
Das erschlägt auch gleich das mit dem Berechnen von Funktionen,
wenn ich quasi zeigen kann, zu jeder Turing-Maschine,
der einen Klasse, kann ich eine Turing-Maschine der anderen Klasse bauen,
die äquivalent ist, also diese beiden,
und andersrum,
dann sind diese beiden Klassen äquivalent und dann können die auch nicht unterschiedliche Funktionen berechnen,
weil Funktionsberechnung und Sprachakzeptierung ist im Grunde genommen
das Gleiche
So, da, also bisher hatten wir ein einseitig und
endliches Band. Jetzt definieren wir uns das so,
dass wir sagen, das Band soll beidseitig unendlich sein.
Startkonfiguration ist weiterhin das Gleiche, aber ich kann jetzt zum Beispiel auch,
wenn ich das erste Symbol lese, gleich nach links gehen oder so.
Konnte ich vorher nicht. Und ich kann jetzt auch irgendwie,
wenn ich was gemacht habe, danach wieder ganz weit nach links gehen oder sowas.
Müsste man streng genommen diese Schrittrelation anpassen, sparen wir uns mal,
sodass es im Details das halt so ein bisschen rumgefrickelt,
aber so das führt nicht zu großartig neuen Erkenntnissen und
wie man es halt händisch machen würde,
ist meistens sowieso klar
Genau so. Also jetzt haben wir beidseitig ein endliches Band.
Jetzt ist die Frage, ist das wirklich äquivalent?
Genau so zu sagen. Ja, ist es so,
zu jedem Literär mit einseitig ähnlichem Band,
kann ich eine machen mit einem zweiseitig unendlichen Band und umgekehrt?
Die Frage ist, wie mache ich das?
Also dass die mit dem beidseitig unendlichen Band alles kann,
was die mit einseitig und endlichem Band kann, ist irgendwie klar.
Das ist so ähnlich wie bei all diesen anderen Modellen,
die wir bisher hatten, die hat ja mehr.
Also die hat ja noch die Fähigkeit,
auch nach links unendlich weit zu gehen,
wenn sie diese Fähigkeit
gar nicht ausnutzt
Dann kann sie nicht irgendwie weniger machen oder so.
Also wird die all das können,
was die DTMs mit einseitig unendlichem Band auch machen.
Das geht auf jeden Fall. Unter Umständen muss man sich
einmal kurz links einen Marker setzen, damit man da halt
nicht drüber hinausgeht und den nachher wieder löschen oder sowas.
Aber das kann die auf jeden Fall.
Aber wie simuliert man eine Touring-Maschine mit einem zweiseitig unendlichen Band
durch eine Touring-Maschine mit einem einseitig unendlichen Band?
Hat da einer eine Idee,
wenn man
das machen kann
Wow. Ich müsste mir mal ein Beispiel an Michael nehmen.
Michael hat das manchmal so gemacht,
da hat er eine Frage in den Raum geschmissen,
hat er sich vorhin ans Pult gestellt, hat einfach gewartet,
bis sich mehr als zehn Leute gemeldet haben.
Fünf Minuten warten, sechs Minuten warten, sieben Minuten warten.
Ihr habt ein zweiseitig unendliches Band und ihr wollt das Ausdruck
durch eine Thüringenmaschine mit nur einem einseitig und endlichen Band.
Irgendwie muss man es jetzt hinkriegen
Ey, wie muss man es jetzt hinkriegen,
dass man die Zellen, die quasi nach links gehen,
die muss man auch irgendwie auf die Zellen kriegen,
die nach rechts wandern, ne?
Ja, die Aussage war, man könnte das Wort immer weiter
nach rechts verschieben. Also du könntest sowas machen wie,
immer wenn der LSK von der zweiseitig unendlichen ein Feld nach links geht und man das irgendwie braucht,
dann schiebst du bei deiner einseitig und endlich alles,
was auf dem Band steht,
einfällt nach rechts und machst das dann.
Müsste klappen, wird wahrscheinlich
ein schöner Akt
Amen. Ja, die Idee war gerade, man nimmt
eine beliebige Bieraktion von den natürlichen Zahlen auf die ganzen Zahlen.
Kommt jetzt darauf an, wie du weitermachst. Jetzt hast du natürlich so eine Idee,
dass du sagst, die erste, dritte, fünfte,
siebte Zelle ist für die erste, zweite, dritte,
vierte bei der beidseitigen und die,
was auch immer ich eben gesagt habe, zweite,
vierte, sechste, achte ist dann für minus,
eins minus, zwei minus, drei minus vier.
Da kriegst du aber das Problem,
dass du quasi nachher beim Lesen ja wissen musst,
bin ich jetzt eigentlich gerade in der zehnten oder elften Zelle
Und da, wie willst du das machen? Ja,
aber wenn du irgendwo bist auf irgendeiner Zelle,
weißt du nicht mehr gut, ob du,
also du müsstest dir noch irgendwo merken,
ob das gerade jetzt eine gerade Zelle oder eine ungerade Zelle ist,
auf der du da rumhantierst oder irgendwie sowas.
Da könntest du weitere Symbole einführen oder irgendwie sowas
Und wie? Aber dann würde man
die Definition von der Türmaschine ändern, oder?
Wenn ich das gerade richtig verstanden habe. Ist das weiterhin
eine Überführungsfunktion? Ich glaube, ich verstehe es gerade noch nicht.
Ich bin mir noch nicht sicher, ob ich es verstehe.
Also es geht auf jeden Fall,
weil also muss ja
Ja, genau, es ist einfach nur eine Umbenennung.
Die Frage ist, wie die Touring-Maschine das im laufenden Betrieb mitkriegt.
Steht ja, also es muss ja irgendwie, es muss ja
ein konkreter Algorithmus sein, den ihr da gerade angebt.
Und mir ist noch nicht ganz klar,
wie sie das im laufenden Betrieb machen soll.
Also irgendwie müsst ihr euch zusätzliche Dinge noch merken.
Ihr könntet zum Beispiel, was weiß ich,
ihr könntet auch noch mit einem Zähler arbeiten oder so,
dann nehmt ihr noch... Ja. Ja,
aber dann manipuliere ich ja die Arbeit,
also dann manipuliere ich ja die Definition von Touring-Maschine,
dann ist es ja nicht mehr eine Einbahn-Touring-Maschine,
sondern eine Einbahn-Touring mit dem zusätzlichen Feature,
dass die Überführungsfunktion irgendwie anders aussieht
Ja, dann hast du ja noch eine neue Variante.
Okay,
erzähl mal wie
Also das mit dem quasi die Graden für das eine Band und die Ungraden für das andere,
das geht bestimmt, nur irgendwo muss man sich noch,
also man könnte zum Beispiel auch die geraden Zellen Oder du könntest auch schon im Zustand ja merken,
du weißt ja beim Zustand, wenn du am Anfang bist, dann bist du gerade auf der nullten Zelle.
Und wenn du jetzt auf die erste Zelle gehst,
dann gehst du halt in so Zustände,
die obendrauf noch einen Balken haben, damit du weißt,
du bist jetzt im ungeraden Zustand und sonst gehst du in die Zustände,
die halt keinen Balken haben, dann weißt du,
du bist jetzt gerade auf einer geraden Zelle oder so,
das würde vielleicht schon reichen oder so,
bin ich mir gar nicht ganz sicher, dass das,
irgendwie sowas könnte man bestimmt machen, so,
bin mir gar nicht ganz sicher, ob das,
also effizient wird das sowieso nicht, das macht ja nichts,
da war eingängiger, dass das klappen müsste,
dass man das immer ständig nach rechts schiebt,
das wäre auch ein totaler Akt so,
aber das wird klappen
Das ist auch klar, dass es klappen muss,
aber es ist irgendwie mit mehr Aufwand noch verbunden von der Beweisführung nachher.
Ich zeige euch mal kurz, was der Standard in Anführungsstrichen Weg ist,
das zu machen, den man dann nämlich auch verallgemeinern kann.
Die Idee ist, wenn ich einen,
also wenn ich jetzt ein zweiseitig unendliches Band habe und ich
will das durch ein einseitiges ausdrücken,
dann kann ich ja quasi den einen Teil,
den linken Teil dieses zweiseitigen unendlichen Bandes nehmen und das unter das einenseitige klappen,
was sich quasi Spuren einrichte in meinem
einseitig unendlichen Band
Mache ich dadurch, dass ich mir jetzt Symbole einführe.
Vorher hatte ich Symbole, was weiß ich, XYZ.
Und jetzt führe ich mir Symbole ein, die
quasi aufgestoppt sind. Also XXXX, XY, XZ,
Y, XY, Y, Z und so weiter.
Und dann kann ich, habe ich auf dem einseitig und
endlichen Band, habe ich jetzt zwei Spuren simuliert.
Das ist die Idee. Also wenn das Band von A 0
das erste zweites Feld hat,
dann hat das Band von B jetzt ein null das Feld.
Da ist der Anfang von LSK. Und das nächste Feld
ist für das erste und minus erste Feld und das nächste für
das zweite und minus zweite und das dritte und minus dritte und
so weiter
Das geht in die Richtung, was ihr auch vorgeschlagen hattet.
Ihr habt quasi immer zwei Zellen nebeneinander ausgenutzt. Jetzt wird gesagt,
aus einer Zelle mache ich halt das erste Minus,
erste, zweite und minus zweite Feld.
Genau, dann merkt sich A eben,
also die Einbahntouring-Maschine merkt sie jetzt auf dem Entenfeld,
was auf dem Enden- und Minusendenfeld von B steht.
Ist das schon klar geworden für alle,
was die Idee ist?
Ja. Habe ich gerade
Also wenn ihr vorher... Nein,
wenn das vorher bei der TM mit einem beidseitigen endlichen Band so aussah,
dass wir gesagt haben, hier ist das nullte Feld,
da startet, starten wir und rechts davon ist das erste Feld,
das zweite Feld,
das dritte Feld und so weiter und links davon minus 1,
minus 2, minus 3, dann sagt man,
jetzt mache ich mir eine Einbandtouring-Maschine
Bei der ich mir hier irgendwie im nullten Feld merke,
okay, das ist jetzt mein nulltes Feld,
hier unten mache ich nichts.
Da habe ich irgendein Sternchen. Und bei meinem ersten Feld merke ich mir quasi,
was das erste Feld und das minus erste Feld in der zweiseitigen ist.
Und was das zweite und minus zweite Feld und das dritte
und minus dritte Feld und so weiter von der beidseitigen Touring-Maschine ist.
Und dann kann ich halt, wenn ich jetzt hier bin,
dann kann ich entweder auf dem zweiten oder minus zweiten
Band von der zweiseitigen Endlichen sein
Auf der zweiten oder minus zweiten Zelle. Und das,
wo ich bin, merke ich mir noch im Zustand,
dass ich mir halt merke, vorher gab es einen Zustand Z und jetzt
gibt es eben den Zustand ZP für positiv und ZN für negativ.
Und wenn ich in ZN bin,
dann bin ich halt hier, wenn der Lese schreibt,
Kopf sich dann nach rechts bewegen soll,
dann gehe ich hierhin und bleibe weiterhin in diesem ZN für das Negative.
Und nur hier irgendwie, wenn ich hier mit dem Ding bin,
muss ich aufpassen, dass ich dann eventuell eben in der Spur switche.
Das ist die Idee. Und dann macht man halt,
wenn man vorher, wie gesagt, so als Symbole XYZ hatte,
dann muss man jetzt ja hier irgendwie X und Y abbilden können,
also dass oben irgendwie das X steht unten,
das Y. Und dann nimmt man sich eben statt Gamma
jetzt als Bandalphabet Gamma-Kreuzgamma
Also Tubel. Genau da. Also das ist dann Gamma-Kreuz.
Gamma ist das Bandalphabet von A, eventuell noch mit diesem zusätzlichen,
wenn man das nullte Ding hier wirklich ausdrücken will,
als oben steht ein Symbol und unten steht ein Stern,
dann nimmt man halt das Ding auch dazu.
Und dann kann sich A im Zustand merken,
ob B, gerade im positiven oder negativen Bereich ist.
Dann hat er halt zuständige ZP und ZN und dann arbeitet AWB
und ändert eben bei diesen Tubeln immer nur das Element,
was gerade durch P beziehungsweise in dem Zustand vorgegeben wird.
Wenn ich im Zustand hier in diesem ZP bin,
dann arbeite ich hier nur in dem ersten Element,
wenn ich in ZN bin,
dann arbeite ich hier nur in dem zweiten Element in dem
Und aufpassen muss man dann eben bei dem Nullfeld,
weil sich da unter Umständen bei dem ZEP oder ZN eben das P beziehungsweise N ändert.
Und dann kann man das relativ elegant simulieren,
ohne dass man viel kopieren müsste oder so.
Dann geht das ziemlich gut. Ja, das ist die Idee,
kann man ja noch beweisen, dass die auch korrekt ist.
Aber sparen wir uns mal, gibt es noch die K-Band Offline-Touring-Maschine,
wo wir gesagt hatten, Ka beidseitig unendliche Arbeitsbänder,
ein Eingabeband, auf dem wir nur lesen können,
ein Ausgabeband,
auf dem
wir nur schreiben können
Auch da müsste man jetzt genauer definieren, wie eine Konfliktion,
wie eine Schrittrelation aussieht. Aber sparen wir uns mal.
Aber kann man sich jetzt schon überlegen, dass das genauso gehen wird.
Ich habe jetzt, wenn ich keine Arbeitsbänder habe,
dann habe ich halt K solche zweiseitigen und endlichen Bänder,
dann mache ich das halt mit der Einband-Turing-Maschine so,
indem ich die in K-Spuren einteile.
Das ist dann viel mehr Arbeit nachher, aber kriegt man auch hin.
Dann habe ich K-Spuren und anders als hier bei der Idee,
wo ich immer wusste, genau wo ich bin,
weiß ich jetzt nur,
ich habe K-Spuren und die K-Leseköpfe auf den Arbeitsbändern,
die haben ja jeweils einen eigenen,
die sind halt irgendwo über diese Arbeitsbänder verteilt
Dann mache ich mir das so, dass ich nicht nur Symbole habe,
wie XYZ, sondern die immer auch noch mit dem Stern.
Und dann merke ich mir quasi im Symbol,
wo auf dem Arbeitsband gerade der lese Schreibkopf ist.
Und dann muss die Einband-Touring-Maschine immer halt einmal von ganz links
nach ganz rechts rübergehen, bis sie all diese Sternchen gefunden hat.
Und dann weiß sie, was sie manipulieren muss.
Das ist richtig aufwendig, aber kann man halt simulieren.
Und dann muss man noch das Eingabe- und Ausgabeband dazunehmen, aber gut.
Also im Grunde genommen so wie eben nur mit mir Spuren.
Und dann muss man in jeder Spur markieren, wo gerade der lese Schreibkopf ist. Genau, das geht also auch. Und was wir machen wollen,
ist halt, dass wir immer die mit beidseitig und endlichem Band nehmen,
wenn wir irgendwie so ein Zustandsdiagramm angeben wollen und dass wir so eine K-Band-Offline-Touring-Maschine nehmen,
also eine mit K-Arbeitsbändern, wenn man nur intuitiv erklären will,
wie das funktioniert, damit lässt sich halt ganz schnell sowas machen,
wie auf einem der Bänder habe ich einen Zähler oder ich habe zwei Zähler auf unterschiedlichen Bändern oder so und vergleiche die dann,
dass es dann einfacher zu erzählen,
als wenn man nur ein Band hat,
wo man dann sagt, ja,
ich schreibe ganz hinten den Zähler hin und jetzt wandere ich wieder zum Zähler und Cory und update den oder so,
das ist mit so einer Carbon-Touring-Maschine eben einfacher.
Und wir wissen, dass das alles Äquivalent ist zu der
Touring-Maschine mit nur einem einseitig und endlichen Band und dann ist
halt alles gut.
Genau, und wenn er ganz genau die Beweise wissen wollt,
dann könnt ihr einmal in dem Hauptcraft Ulman nachlesen,
wenn euch intuitiv klar ist, wie das funktioniert mit den Spuren
und dass das Äquivalent sein muss, dann genügt das auch.
Aber das sollte man sich auf jeden Fall einmal vergegenwärtigen,
so, was die Idee ist bei dieser Spureneinteilung,
weil das so typische Beweismuster irgendwie sind, oder so Konstruktionsmuster,
dass man irgendwie weiß, okay,
wenn ich eine einseitig an dieses Band habe,
dann kann ich das so in Spuren einteilen und kann das simulieren auf jeden Fall.
Genau, da nochmal,
wie wir das im Allgemeinen benutzen wollen,
mit Zustandsdiagramm angeben wollen,
dann so eine mit,
die in beide Richtungen
unendlich ist
Und eine Carband-Offline-Tour-Maschine, wenn wir nur die Funktionsweise angeben wollen.
Fragen. Meinst du das Eingabealverbiet?
Ja, oder sieht man kreuzig mal
Ach so, nee, genau, richtig. Schön,
ja, genau, gut gesehen. Die Frage war gerade,
ob man als Eingabealphabet, wenn man da jetzt Siegmar Kreuz-Siegmar nimmt,
weil wir haben ja gesagt, das Bandalphabet ist Gama-Kreuz Gama,
dann kriege ich ja ein Problem,
weil ich nicht mehr die gleiche Sprache akzeptiere.
Das ist richtig, deswegen ist das Blödsinn,
was ich eben gesagt habe, sondern du nimmst als Eingabealphabet wieder Sigmar,
also ganz normal, ne, Sigmar.
Und das Erste, was du machst, ist quasi all
die Symbole durch so ein Element aus Gama-Kreuz Gama zu ersetzen.
Und dann hast du das richtige Eingabewort,
so wie vorher auch, ein Wort aus Sigmar.
Und wie gesagt, das Erste,
was du machst, ist, du ersetzt es dann durch
so zwei Jatube
Ja, genau. Und in der zweiten Komponente ist das Gatter,
weil die zweite Komponente, das wäre ja immer gerade irgendwie minus eins,
minus zwei, minus drei, also die Felder.
Und die sind ja leer bei der beidseitig unendlichen.
Ja, sehr gut gesehen. Sonst noch Fragen, ja.
Ich versuche daran zu denken, meistens mache ich das doch.
Das war gerade die Anmerkung, dass ich für den Livestream
die Fragen doch wiederholen sollte.
Was sonst noch Fragen
Als du Metafrage gesagt hast, habe ich schon befürchtet,
das kommt jetzt sowas wie, warum, warum machen wir das?
Sonst noch jemanden fragen. Auf Meta-Ebene oder Meta-Ebene oder so.
Dann habe ich, ich glaube, drei Fragen. Die erste,
angenommen, wir nehmen jetzt nicht so ein Band für eine Touring-Maschine,
sondern wir nehmen so ein zweidimensionales Feld, das nach rechts unendlich ist und das nach unten unendlich ist.
Also sprich, wir fangen irgendwie auf dem Feld, bei dem Feldchen 00 an. Und jetzt kann das halt 1-0,
2-0, 3-0, 4-0,
5-0, 6-0,
da gibt es ganz viele Felder und 0-1-0,
2-0, 3-0, 4-0,
5-0, 6,
da sind auch ganz viele und halt auch für jedes andere,
also nach 2-5 kann man auch und nach 10,
5 kann man auch und so weiter, also mit dem ganzen Feld als Eingabebereich, das eben sowohl nach rechts unendlich weit wachsen kann, als auch nach unten.
Und die Frage ist, ist das Äquivalent zu ursprünglichen Touring-Maschinen?
Also kann man auch sowas ähnliches machen wie hier mit den Spuren oder so,
mögliche Antworten, ja und ich habe auch eine Idee,
ja, aber ich weiß eigentlich nicht, warum,
nein,
das geht nicht oder ich bin mir nicht sicher
Musik Das kann man ja fast zählen,
wie viele da noch klickern. Habt ihr übrigens gestern,
hat einer, das ist ja Bahnstreik und so,
hat einer von euch gestern das Interview mit,
ich kann den immer nicht aussprechen, den Ws,
danke, also dem Viselski, jetzt ist es toll,
wenn ich das dann wiederholen soll, bringt das ja auch nichts.
Das Interview mit ihm gesehen bei den,
ich glaube ARD-Tagesthemen,
hat das
eine von euch gesehen
Das war ein großartiges Interview. Sie hat dann am Ende,
hat ihn, glaube ich, dreimal gefragt, so,
ja, was machen sie denn nach dieser Woche?
So, also wenn sie jetzt eine Woche streichen,
was machen sie denn danach, wenn es dann noch zu keiner Einigung gekommen ist?
Da dachte ich auch so, was ist denn das für
eine Frage, was soll er denn dazu sagen?
Wenn er dann sagen würde, so, oh naja,
dann, dann hören wir auf, dann haben wir genug.
So, dann würde ich als Bahn auch sagen,
naja gut, die eine Woche halten wir noch durch,
so irgendwie, was soll man dazu sagen?
Und sie immer so, ja, ich versuche es jetzt
noch einmal, was machen sie denn dann?
Nix. So, zurück zum Thema. Nein,
nein sagen ganz viele. Nein, sagen ganz viele
Also nein, also wenn wir schon sagen, Turing-Maschine,
Church-Turing-These und so, die müsste alles können.
Wenn wir hier jetzt nein sagen, dann würde das ja bedeuten,
so eine Turing-Maschine mit einem zweidimensionalen Feld kann mehr als eine Turing-Maschine mit einem Band.
Das wäre ja irgendwie doof. Also dann haben wir ja
gleich die Church-Turing-These widerlegt. Und wer hat denn,
wo sind denn die acht Leute, die die erste gedrückt haben?
Eins, zwei, drei, vier, fünf,
sechs und zweimal aus der Box oder so.
Was meinst du denn wie
Gott. Ah, die Idee war, das könnte man so machen,
wie die rationalen Zahlen auf die natürlichen Zahlen,
dass man das auch wieder irgendwie versucht abzubilden.
Genau, da ist ja auch die Idee bei der Bieaktion,
dass man die rationalen Zahlen in so einem Feld aufmalt,
quasi auch so ein Feld, was nur nach rechts so nach unten wächst.
Und dann hat man quasi eine Funktion, in Anführungsstrichen,
so durchwandert, dass man irgendwie sagt,
die bilde ich dahin ab und dann genau,
dann wüsste man wieder irgendwie das und das Feld bilde ich da und dahin ab.
Hat sowas ähnliches wie die Problematik, dass dann schwer wird,
in welchem Feld bin ich gerade. Da wird es auch schwieriger,
das mit den Zuständen Also bei deinem Beispiel heute hier gesagt,
irgendwie da konnten wir mit den Zuständen uns merken,
bin ich gerade auf dem Graden oder ungeraden Feld,
weil das nur zwei Infos sind.
Da wird es eventuell ein bisschen schwieriger, müsste aber auch klappen so.
Ja, aber das ist schon, wird schon schwierig.
Noch einer eine Idee? Geht aber. Ob man
in einer K-Band-Maschine sich speichern könnte, in welchem Feld
man ist
Erstmal eine gute Idee, eine K-Band-Touring-Maschine zu benutzen,
weil da wissen wir ja, die ist Äquivalent zu der einen Band.
Also kann ich die benutzen, wenn ich damit Nikolenzbeweis hinkriegen kann,
dann geht das auch mit einer Einband-Touring-Maschine.
Genau, du könntest dir... Das Problem wird sein,
du müsstest dir ja weiterhin irgendwie den Inhalt des Feldes irgendwie merken.
Also das muss ja auch irgendwo stehen.
Die Frage ist noch, wie du das machst.
Da werde sich noch gemeldet, wie beiden, oh.
Wer war das noch? Schnell erzähl. Was meinst du
? Auch das mit den 18. Zahlen wieder
Ja. Ach so. Ja, aber was würdest du
dir merken? Also wie würdest du das,
wie kriegst du jetzt zum Beispiel diese,
das Feld 2005 hin, 2006 und 7,
8 oder so, wo ungefähr steht das auf dem Bann?
Ja. Ich würde so ähnlich mal Ja.
Okay. Ich bin noch nicht ganz sicher, Jim.
Ja. Ja, genau, aber wie machst du das
Nee, eine Kaban-Touring-Maschine hat ja nicht unendlich viele Bänder,
sondern K. Doch schon.
Also wenn du für eine gibst, hat die K-Bänder.
Jim wollte gerade mogeln und wollte eine Kaban-Touring-Maschine nehmen mit
unendlich vielen Bändern. Das ist... Und da was?
Ja, aber das reicht auch nicht. Das klappt auch
noch nicht.
Was ich einmal
Nee, nee, auch nicht zu kompliziert. Die Idee,
die er vorhin hatte bei dem einseitig durch beidseitig,
das war auf dem Band ständig durch die Gegend schiebt,
das kann man machen.
Ich habe ja zu einem beliebigen Zeitpunkt, habe ich ja
auf diesem unendlich großen Feld nur endlich viel Platz benutzt.
Es gibt irgendwie einen Index X und einen Index Y,
sodass ich irgendwie nur bis zur x. Zeile und Y ins Spalte gegangen bin.
Und jetzt schreibt man sich auf sein eigenes Band durch
ganz viel Marker markiert und so,
steht er innerhalb des ersten Zeilemarkerinhalts der zweiten Zeile,
Markerinhalt der dritten Zeilemarker und so weiter.
Und da geht man dann immer komplett irgendwie drüber
Also damit kann man relativ schnell sehen, dass es funktioniert,
das dann händisch auszuführen, das ist ein tierisches Gefriggel.
Also das wird genauso gefriggelt,
wie das mit der Abbildung auf die rationalen Zahlen und so.
Aber das klappt. Also das geht auch. Die Frage
soll auch nur dazu dienen, dass sie anfängt,
ein bisschen darüber nachzudenken, wie man eben diese Simulation machen kann.
Das übt irgendwie sich über Touring-Maschinen Gedanken zu machen
So, die Konfiguration einer Touring-Maschine, geben wir mal
ganz teil den Anfang, sind definiert als Wörter aus.
Gammen wir mal als Z, mal Gamma, Gammastern,
mal Z, mal Gammastern, Gammaplus, mal Z,
mal Gammaplus, Gammastern, weil Z hätten wir Gamma Plus,
Gamma Plus,
mal Z,
mal Gammastern
Ja. Ja, ja, Moment, sechs, sieben, 19 Jahre.
Mehrheitssieg da mit den 15. Ist definiert als Wörter aus Gammastern,
mal Z, mal Gammastern. Der Zustand gibt an,
wo, also in welchem Zuständig gerade bin und wo auf dem Bandalphabet,
wo auf dem Band gerade der Leseschreibkopf ist und links davon
sind eben irgendwie Bandsymbol und rechts davon sind Bandsymbol,
es können aber auch gar keine Bandsymbole sein,
also einfach nur cool, ist auch eine erlaubte Konfiguration.
Das würde halt bedeuten, ich bin ganz links irgendwie.
Genau. Also die zweite ist es und Die anderen,
die würden ja irgendwie immer verlangen, also die dritte,
vierte und fünfte würde verlangen das auf jeden Fall irgendwo ein Bandsymbol steht.
Das hat man nicht. Und die erste würde,
da dürfte ich links und rechts gar keine ganzen Wörter stehen haben,
sondern nur einzelne Symbole. Das wäre auch nicht gut. Letzte Frage,
wenn wir jetzt gleich nicht die terministische Touring-Maschine definieren wollen,
wie würdet ihr die Übergangsfunktion definieren? Also Z-Kreuz,
Gamma, Kreuz, Gamma, Kreuz, links,
rechts halten, Kreuz Z,
das war Kantenrelation bei der deterministischen Touring-Maschine und jetzt ist eben die Frage,
wie splittet man das auf,
wenn man nicht die Terminismus definieren will
Ja, sehr schön. Auch wieder die Mehrheit dabei B.
Also die Idee ist ja, dass ich abhängig vom Zustand,
in dem ich bin und Bandsymbol, das ich lese,
jetzt mehrere Möglichkeiten habe, eben meine Aktion der Touring-Maschine auszuführen,
die ja daraus besteht,
ein anderes Bandsymbol zu schreiben,
den Lese-Schreibkopf zu bewegen und den Zustand zu wechseln
Hier wäre eben immer klar festgelegt, welches Symbol ich auch schreibe.
Und dann habe ich da keine Wahlmöglichkeit, das ist irgendwie doof.
Hier ist sogar festgelegt, welches Symboli ich schreibe und wie die Kopfbewegung ist.
Ist auch irgendwie doof. Und hier ist viel zu wenig festgelegt.
Hier ist irgendwie abhängig vom Zustand, in dem ich bin.
Das ist dann die einzige fixe Sache, abhängig davon kann
ich irgendwie unterschiedliche Bandsymbole lesen, schreiben und so weiter.
Also das zweite sieht gut aus. Das einmal zur Nachbereitung und dann,
da ist sie jetzt nicht die terministische Touring-Maschine, wenn es zu jedem Paar aus Z-Kreuzgamma.
Eine endliche Anzahl von Übergängen gibt. Das heißt,
entweder ist diese Kantenrelation wieder als Teilmenge hiervon definiert,
genauso wie bei der DTM auch,
nur dass wir jetzt eben diese Einschränkung nicht haben,
dass zu jedem Pärchen hier vorne in den ersten beiden Elementen ist
immer nur genau ein Pärchen ein Triebel da hinten geben darf,
sondern jetzt halt beliebig.
Oder man definiert es sich eben als Überführungsfunktion hier.
Und dann sagen wir wieder,
wir akzeptieren so ein eigenes Wort genau dann,
wenn es mindestens eine Erfolgsrechnung gibt.
Genau,
das ist eine NTM
Und jetzt kann man, wenn man,
damit kann man natürlich auch wieder Zustandsübergangsdiagramme angeben und sowas,
das wird ja ein ganz schönes Gefrickeln. Man kann aber auch,
so wie wir das ja auch bei einigen Beispielen gemacht haben,
so wie bei diesem F von X gleich X minus 1,
sich irgendwie versuchen, nur abstrakt zu überlegen,
was müsste die NTM machen, um irgendwie eine bestimmte Sprache zu akzeptieren.
Wenn man jetzt beispielsweise dieses Problem hat,
also gegeben ein ungerichteter Graf,
und eine Zahl K ist die Frage jetzt,
hat dieser Graf eine K-Klicke,
also K-Knoten,
die alle
paarweise miteinander verbunden sind
Also eine Drei-Clicke ist ein Dreieck, eine Vier-Clicke sind
vier Knoten, die alle im Viereck miteinander verbunden sind.
Dann ist da noch ein Kreuz in der Mitte, eine Fünf-Clicke,
fünf Knoten und alle sind miteinander verbunden und so weiter.
Frage ist, wie löst man das mit einer deterministischen Touring-Maschine?
Wie löst man das mit einer nicht-diterministischen Touring-Maschine?
Und die Eingabe soll eben sein, diese Zahl K,
damit ich weiß, wie groß überhaupt die Klicke ist,
die ich suche, gefolgt von der Liste von Knoten,
gefolgt von der Liste der Kanten.
Also quasi als, naja, nee,
es ist nicht mal
eine Addizenzliste
Eingabeformat könnte auch anders aussehen, ist nicht ganz so relevant.
Wie würdet ihr das Problem mit einer deterministischen Touring-Maschine lösen?
Würdet ihr das machen? Oder werde ich gerne eine
deterministische Touring-Maschine sich überlegen, kann ja auch sich überlegen,
wie wird er das in einer imperativen Programmiersprache lösen,
C oder Jahre oder irgendwie sowas,
wie würdet ihr das lösen?
Frage, ob jene Karkligat
Okay. Ich bin hier auf der zweiten Onur Berg.
Oder mehr, ne? Oder mehr? Also Knoten,
die irgendwie 2K viele ausgehende Kanten haben,
ist ja auch super
Und jetzt auf meiner Gemeinde. Aber das ist jetzt alles
so ein bisschen Pre-Prozessing. Das ist alles so Vorverarbeitung.
Das ist alles gut. Das macht das Verfahren nachher schneller
. Aber es gibt ja auch Grafen,
wo alle Knoten irgendwie jede Menge Kanten haben.
Und da ist immer noch die Frage,
gibt es jetzt ein K-Clique drin oder nicht
Wie gehst du da jetzt? Also der Kern des Verfahrens
fehlt mir noch. Ihr dürft gerne verschwenderisch sein.
Also sowohl mit Zeit als auch mit Platz. Ja,
wenn ihr verschwenderisch sein dürft und keine Ahnung, ähnliches Beispiel,
ich gebe euch eine Liste mit zwei Millionen Zahlen
Und ich will wissen, ob da fünf Zahlen drin sind,
die sich zu 78 auferdieren.
Blödes Beispiel, aber egal. Was macht ihr? Wenn
das einfach irgendwie brutforceartig lösen wollt, was macht ihr?
Informatiker? Ja, genau, völliger Brutforce-Angriff. Ich nehme ja alle,
also in dem Beispiel mit den Zahlen eben,
alle fünf Tubel aus Zahlen und gucke,
ob die sich zu, was habe ich gesagt,
78 auferdieren oder so.
Und hier, ich nehme mir alle,
also ich fange an,
nehme mir
die ersten K-Knoten
Nehmen wir die ersten Kackknoten. Guck mal,
dass das ein Kackklicker ist. Falls Jahr ist gut,
falls nein, nehme ich mir die ersten K minus Eins-Knoten
und halt den Carplus Einsen-Knoten oder so.
Und dann den Carplus zweiten Carplus dritten Carplus vierten und so
und gucke immer, ob das eine Clicke wird.
Und dann nehme ich mir halt nicht die ersten Kackknoten,
sondern die, die erstmal den zweiten Knoten anfangen.
Also ich teste halt alle Knoten durch.
So wird man das bei der DTM machen.
Ziemlich blödes Verfahren, aber kann man so machen.
Wie macht ihr das bei einer MTM?
Wie würdet ihr das mit einer NTM machen?
Das kann man jetzt nämlich viel,
viel schneller machen.
Ja. Dann hast du einen Kreis.
Das ist noch nicht zwingend eine Clique. Bei der Clique
müssen die alle
miteinander verbunden sein
Das ist was anderes, ja.
Ja. Das würde funktionieren
Ja, aber es ist für den Brootforce sehr, sehr schnell.
Ich brauche nämlich nur irgendwie Endschritte oder zwei Hochendschritte, zweimal Endschritte,
wenn ich einen Knoten habe. Das wird richtig schnell. Die Idee wäre,
oder die andere Idee ist, ich habe ja vorher gesagt,
ich teste quasi alle Kombinationen von K-Knoten durch bei der DTM, ne?
Jetzt sage ich, ich rate mir nicht deterministisch alle diese Kombinationen,
also im Grunde genommen das, was du auch,
du hast gesagt, ich fange am Anfang bei einem Knoten,
nein, jetzt würde man sagen, nicht deterministisch am Anfang,
ich rate mir einen beliebigen Knoten und fange von dem aus an,
müsste schon am Anfang nicht deterministisch in Endkonfiration.
Jetzt macht man sich das so, dass man sich,
nehmen wir an, ich habe Endknoten,
Jetzt mache ich mir auf einem Arbeitsband eine Ziffernfolge von N,
Nullen oder Einsen.
Also, erster Schritt, ich rate mir eine Null oder eine Eins.
Also, ich gehe nicht die terministisch in die Konfiguration,
die mir eine Null aufs Arbeitsband schreibt und in die andere,
die mir eine Eins aufs Arbeitsband schreibt.
Und das wiederhole ich. Jetzt habe ich alle Zahlen vollen
N-Nullen bis N-Einsen aufgeschrieben. Und die Idee ist dann,
dass... Moment. Genau. Und die Idee ist dann,
jetzt gehe ich nochmal vielleicht rüber und zähle,
ob das nur K-Fiele Einsen sind,
weil mehr will ich
gar nicht
Die anderen lösche ich wieder, die anderen sterben die anderen Rechnungen.
Und die, wo ich viele Einsen habe,
da bedeutet eine Eins eben, dass ich gerade rate,
dass der dadurch symbolisierte Knoten in der Clique drin ist.
Und eine Null bedeutet, er ist nicht drin.
Also ich habe eine Ziffernfolge von Nullen und Einsen, enden viele.
Und da sind K-1 drin. Und diese K-1 bedeuten,
der Knoten soll drin sein oder nicht.
Also wenn an der dritten Stelle eine einsteht, soll das bedeuten,
der Knoten V3 soll drin sein in der Clique.
Und dann, das kriege ich in end vielen Schritten hin,
diese Folgen zu raten, na gut, da muss ich nochmal rübergehen und gucken,
das ist wirklich nur K, viele sind.
Und dann prüfe ich, ob die Kanten da sind
oder nicht
Dann weiß ich, dass es eine Klicke ist.
Sprich, kurz kurz erzählweise wäre, man rät eine Karklicke
und überprüft, ob es eine ist. Also Mehrband,
zunächst die Anzahl der Knoten zählen, angenommen es ist N,
dann rate ich auf dem Arbeitsband nicht die terministisch 0 oder
1 und wiederhole das halt N mal.
Jetzt muss ich noch, das habe ich,
glaube ich, vergessen, halt drüber gehen und gucken,
dass ich nur Ka mal eine Eins geraten habe.
Jetzt bin ich nicht terministisch in 2 hoch in vielen Konfigurationen.
Da stehen nämlich auf dem Arbeitsband all diese Zahlen zwischen 0
hoch N und 1 hoch
Zwei hochendviele Kombinate-Konfigurationen. Und in jeder geht es jetzt deterministisch
weiter. Also ich habe am Anfang so einen großen,
nicht deterministischen Split in den Konfigurationen,
dass ich halt viel rate oder viel nicht deterministisch gehe.
Und danach mache ich jetzt in jeder Konfiguration die terministisch weiter.
Wenn die ide Zahl auf dem Arbeitsband 1 ist, bedeutet das,
dass die NTM vermutet, dass deite Knoten zur Clique gehört.
Und dann überprüfen wir einfach deterministisch, ob die
nötigen Kanten zwischen den vermuteten Knoten vorhanden sind oder nicht.
Und falls ja akzeptieren wir uns sonst nicht.
Wobei halt, wie gesagt, fehlt,
dass ich kann
viele Einsen rate
Und nicht weniger. Also hier, wenn ich bei der
Geschichte hier, wenn die Zahl dann null hochend steht,
dann rate ich da ja auch gerade quasi eine Nullklicke.
Das interessiert mich gar nicht, ich will eine Karklicke haben.
Genau. Also so kann man das machen. Da hat man
richtig schöne Nicht-Determinismus ausgenutzt, weil man nur wenig Schritte braucht.
Viel weniger als bei der DTM. Genau. Und das
nur so als Nebenbemerkung für die Nachbereitung,
dass man da eben ganz gut sehen kann,
wie man eben quasi so abstrakt nur erzählt,
was die NTM machen soll.
Ja,
ohne das Zustandsdiagramm anzugeben
Genau so. Und wenn man sich das jetzt im Detail anguckt,
dann kommt man da eben hin, dass man sagt,
okay, die NTM ist definitiv schneller als die,
oder scheinbar viel schneller als die DTM,
bei dem Beispiel wäre es dies jetzt erstmal.
Da gucken wir später nochmal Sachen an,
ob die immer schneller ist als die DTM oder überhaupt schneller.
Erstmal jetzt die Frage, ob die NTM... Ob die
NTM generell Dinge kann, die die DTM nicht kann.
Also kann die nicht die Terministry-Maschine, kann die mehr als die deterministrische Touring-Maschine?
Der NFA konnte nicht mehr als der DFA,
nicht die terministische PDA konnte mehr als der deterministische PDA.
Haben wir nicht gemacht, ob ich aber nebenbei einmal erwähnt.
Jetzt wieder die Frage, kann das nicht deterministische Modell?
Kann das mehr als das Deterministische? Was meint ihr?
Also es scheint schneller zu sein, so, okay.
Aber Geschwindigkeit, darum geht es jetzt gerade nicht,
sondern einfach um die Äquivalenz der Maschinenmodelle.
Meint ihr, dass das mehr kann oder nicht
Ja. Beweis durch Autorität heißt das, glaube ich,
der Vortragende hat so doll auf der Church-Touring-These rumgeritten,
das kann jetzt nicht anders sein. Ja,
also die Argumentation wäre dann sinnvoll, wenn du noch gesagt hättest,
hier, ich kann mir auch vorstellen,
also wenn ich dir eine NTM gebe, nenne ich die terministische Touring-Maschine,
dann kannst du ja irgendwie eine Rechnung davon auch und ein Eingabewort,
dann kannst du ja alle Rechnungen davon irgendwie aufmalen.
Und wenn du das kannst, kann die terministische Touring-Maschine das
auch, also wird sie das irgendwie simulieren könnten.
Ergo sollte die NTM nicht mehr können
Genau, die Frage ist, also jede von einer NTM
akzeptierten Sprache kann auch von einer DTM akzeptiert werden.
Die eine Richtung ist wieder ganz einfach. Richtung von DTM
zu NTM ist wieder klar. Wir nutzen die zusätzliche Eigenschaft
der NTM nicht aus. Hat einer eine Idee,
wie er das hier machen würde, von NTM zu DTM?
Kann man jetzt auch mit Mehrbandtouring-Maschinen arbeiten oder sowas,
aber wie würde man nicht die terministische Touring-Maschine durch eine deterministische Touring-Maschine simulieren?
Man müsste ja quasi die nicht die terministische Touring-Maschine,
kann ja auf einem Wort mehrere Rechnungen haben.
Und man müsste jetzt gucken, dass man all diese Rechnungen irgendwie
von der DTM simulieren lässt. Was man aber nicht machen darf,
ist, dass ich jetzt quasi anfange und sage,
na, ich gucke mir erstmal eine Rechnung an und warte,
bis sie zu Ende ist.
Weil eventuell kommt die nicht zum Ende. Darauf muss ich irgendwie aufpassen,
weil ich will mir alle Rechnungen von der NTM irgendwie ansehen.
Und wenn da eine dabei ist,
bei der die nicht deterministische Touring-Maschine akzeptiert, sprich irgendwie in Endzustand kommt,
dann kommt sie ja irgendwie nach endlich vielen Schritten in diesen Endzustand.
Das muss die DTM irgendwie merken,
wie mache ich das
. .
Die Idee war gerade eine Carbon-Touring-Maschine zu nehmen und dann quasi
K-Rechnungen zu simulieren, also auf jedem Band eine.
Das hat aber genau das gleiche Problem,
wie wenn du erst mal eine Rechnung machen würdest und versuchen würdest,
die zum Ende zu machen.
Vielleicht führen all diese K-Rechnungen nicht zum Ende.
Und dann kommst du nie zu der K-Plus-1. Rechnung,
die vielleicht die richtige ist. Und du kannst ja nicht das,
was Jim vorhin schon probiert hat, und endlich viele Arbeitsbänder nehmen.
Das muss eine konstante Zahl Arbeitsbänder sein.
Das funktioniert noch nicht. Ist schon gut, funktioniert aber
noch nicht.
Noch eine Idee
Wenn ihr,
wenn ihr in einer Konfiguration von der Nicht-Iterministischen Touring-Maschine seid,
seid am Anfang in der Startkonfiguration nicht die himmlische Tourmaschine-Startkonfiguration, Z0W.
Jetzt kann die nicht eterministisch in viele unterschiedliche Nachfolgekonfigurationen gehen.
Also ihr fangt irgendwie hier in dem Z0W an
Das ist irgendwie die Startkonfiguration. Und jetzt,
je nachdem,
was die erste Buchstabe hier ist und was die NTM irgendwie als Zustandsübergänge hat,
könnte es ja sein,
dass sie in einer da was Neues hinschreibt und einen Schritt
nach rechts macht oder sie schreibt gar nichts hin und macht einen Schritt nach rechts oder sie macht einen Schritt nach links oder so.
Kann ganz viele unterschiedliche Sachen geben, die die tun kann.
Sprich, es kann irgendwie viele unterschiedliche Nachfolgekonfigurationen geben.
Jetzt kann diese Nachfolgekonfiguration, die kann wieder ganz viele
unterschiedliche Nachfolgekonfigurationen haben.
Die hat vielleicht
nur eine Nachfolgekonfiguration
Und immer so weiter. Einige Konfigurationen sterben vielleicht irgendwann.
Also vielleicht geht es hier irgendwie nicht mehr weiter,
dass da keine Übergänge mehr möglich sind.
Dafür geht es dann hier irgendwie weiter. Und immer so
weiter. Sprich, ihr kriegt da irgendwie so einen Baum.
Ein Baum da, eine Wurzel. Und der ist auch
endlich nur verzweigt. Also jeder Knoten kann nur endlich viele
Nachfolger haben, weil ja die Zustandsübergangsfunktion auch endlich ist.
Also soll heißen, es gibt nur endlich viele Kanten
aus einem Zustand raus. Sprich, wird ein Baum,
der hat möglicherweise ein paar unendlich lange Pfade,
aber ist endlich verzweigt und so
Was ihr jetzt gucken wollt, ihr wollt gucken,
ob irgendwo in diesem Baum eine Konfiguration drin ist,
wo ein Endzustand steht. Falls ja, bedeutet das,
der Weg von der Startkonfiguration bis zu diesem Knoten ist eine akzeptierende Rechnung.
Also würde die NTM das Wort akzeptieren, also soll die DTM das Wort auch akzeptieren.
Was sie jetzt nicht machen dürft, ist,
ihr geht jetzt zuerst in den Baum immer nach links,
weil wenn das eine unendlich lange Rechnung ist, die nicht akzeptiert,
dann rechnet die DTM unendlich lange diesen Pfad entlang.
Das ist doof. Was ihr machen könnt, ist,
ist ja ein Baum, machen wir eine Breitensuche durch den Baum.
Ich gucke mir erst die erste Konfiguration an,
dann gucke ich mir die nächste Ebene den Baum an,
dann gucke ich mir wieder die nächste Ebene in den Baum an und immer so weiter.
Sprich, ich gucke mir erst die Konfigurationen an,
die ich nach einem Schritt kriegen kann.
Dann gucke ich mir alle Konfigurationen an,
die ich nach zwei Schritten kriegen kann. Alle Konfigurationen,
die ich nach drei Schritten kriegen kann und so weiter.
Wenn da irgendwann meine akzeptierende Konfiguration dabei ist,
kriege ich das mit und kann akzeptieren.
Und wenn da gar keine dabei ist, dann rechnet
die DTM halt immer weiter, aber macht ja nichts.
Dann akzeptiert sie auch nicht. Genau. Und was man halt machen muss,
worauf man nicht aufpassen muss, ist, am Anfang steht halt die,
also ich schreibe mir die Konflation aufs Band.
Jetzt nehme ich die und ersetzt sie durch all ihre Nachfolgekonfiguration.
Sprich, ich schreibe mir all die hin.
Jetzt nehme ich mir als nächstes die
Jetzt die drei Konfrontationen stehen auf dem Band,
jetzt nehme ich mir als nächstes die und ersetzt die durch ihre Nachfolgekonfigurationen.
Dafür muss ich unter Umständen die beiden hier nach rechts schieben,
aber das kriege ich ja auch hin.
Ich muss halt vielleicht Platz machen. Jetzt stehen irgendwie die Konfigurationen hier,
die, die, also C-1-1,
C-1-2 und dann C-2 und C-3 auf dem Band.
Und jetzt halt das Wichtige,
dass ich mir als nächstes nicht das hier nehme,
sondern ich habe ja gerade diese Konfiguration nicht ihre Nachfolger ersetzt.
Als nächstes nehme ich mir jetzt die und ersetzt die durch
ihre Nachfolge und dann die oder setzt die durch ihre Nachfolger
und entsteht halt die zweite Ebene in diesem Baum auf dem Band.
Und das mache ich halt immer weiter.
Das ist die Idee. Wird tierisch teuer, funktioniert aber
. Klar
Leicht skeptischer Blick. Idee, wenn es die einzelne Konfirmation
der NTM ist, dann kann die nicht deterministisch mehrere Nachfolgkonfiration haben.
Das sind endlich viele, dann nenne ich die halt C11 bis R.
Kann man sich als Baum vorstellen, so wie ich das da versucht habe zu illustrieren.
C1 ist die Wurzel, C1 bis CR sind die Kinder,
die haben wieder alle Kinder und so weiter.
Also ein Baum, also die C1I haben wieder Kinder und
die bilden dann die dritte Ebene und immer so weiter.
So als Beispiel, wenn ich das hier als NTM da oben habe,
den kann ich hier ja nicht deterministisch wählen, wenn B kommt,
ob ich in diesem Zustand bleibe oder ob ich diesen Übergang zu Z1 mache.
Und als Baum sieht das dann bei dieser Eingabe Z0,
A, B, A, B so aus,
dass man bei dem A eben nur die Möglichkeit hat,
ein Feld nach rechts zu gehen und im Zustand zu bleiben.
Und beim B kann man eben auch ein Feld nach rechts
gehen und entweder bleibt man in Z0 oder man geht zu Z1,
wenn die Zustand Z1, hat man also zwei Nachvollkonfigurationen.
Die hier würde da enden, die Konfiguration,
weil ich in Z1 in diesem Zustand keine A kannte habe.
Das heißt, da ist Schluss und die Konfiguration hier,
die kann bei dem A eben wieder nach rechts gehen und dann bei dem B wieder zwei Dinge tun.
Das wird so ein Baum. Und die Idee,
wie gesagt, ist, man schreibt jetzt die Konfiguration aufs Band
Ersetzt die dann durch die Nachvollkonfiguration, steht die auf dem Band.
Dann setzt man die durch diese beiden Nachfolgkonfigurationen und die dann wieder,
die durch seine Nachvollkonfiguration, die hat keine Nachfolgekonfiguration.
Also ersetzt man dann nichts und immer so weiter.
Und man guckt dann eben bei jeder Konfiguration ist da ein Endzustand dabei.
Hier würde man halt feststellen, oh ja,
da ist ein Endzustand, also akzeptiert die NTM,
also akzeptiert auch die DTM fertig.
Etwas größeres Beispiel bei dem hier. Moment,
was ist das? Was habe ich mir dabei gedacht?
Achso, ja, genau. Man liest halt einfach über
das Lehrere über das Gatter rüber und kann das immer wahlweise
durch null oder eins ersetzen
Und dann führt das Ganze schnell zu vielen Zuständen,
weil man halt quasi hier sagen kann,
ich kann das Gatter durch null oder eins ersetzen.
Jetzt bin ich in den zwei Konfirationen,
wo ich es durch null ersetzt habe oder durch eine Eins.
Und bei beiden habe ich jetzt wieder die zwei Wahlmöglichkeiten,
dass im nächsten Schritt durch null oder eins zu ersetzen.
Da sieht der Baum so aus. Dass wir übrigens die Möglichkeit gewesen vorhin bei der Clique,
wenn ich das hier n-mal mache, dann habe ich danach,
bin ich in all den Konfirmationen von dem 0-0-0 hoch N,
bis zu dem 1-1-1-Wochenen.
Genau, in all den Konfirmationen ist man dann von dieser
NTM zu die Themengeschichte. Also da nochmal die Idee,
Und dann ist die wichtige Idee jetzt,
dass man in der iterministischen Touring-Maschine eben eine Breitensuche in diesem Konfirmationsbaum macht.
Genau. Also Ausfügung nochmal grob, wenn wir ein Arbeitsband haben,
notieren wir da das eingabe Wort, wo das eingebunden ist,
dann schreiben wir jetzt die Startkonfirmation hin.
Und wenn dann eben auf dem Arbeitsband irgendwann die Konfirmation C1 bis CR sind,
bisher eben nur die Startkonfirmation,
dann werden die jetzt von links nach rechts durchgearbeitet.
Jede wird durch ihre Nachfolgekonfirmation ersetzt und dabei muss man
unter Umständen die aktuelle Inschrift auf dem Arbeitsband
nach rechts verschieben
Man kann die auch hinten ranhängen,
also dass man irgendwie C1 bis CR hat und danach eben ein ganz spezielles Sonder,
ein ganz spezielles Trennzeichen,
was sich noch von dem Dollar unterscheidet, damit man weiß,
hier ist jetzt das Ende der x-ten Ebene in dem Baum
und dann schreibt man da eben nach und nach all die Elemente der nächsten Ebene.
Und dann guckt man immer, ist da eine Konfliktion dabei,
die einen Endzustand enthält und dann akzeptiert man. Genau,
so wichtig,
nachdem eben diese Konfliktion C1 durch ihre Nachfolgekonfliktion ersetzt wurde,
machen wir als nächstes bei C2 weiter und eben nicht bei C11,
sonst hat man eine Tiefensuche statt einer breiten Suche und das würde dann
dann würde man eben eine unter Umständen und endlich lange Rechnung in der NTM einfach weiterverfolgen,
was man eben nicht will.
Dann verpasst man die Erfolgsrechnung auf einem anderen Pfad.
Ja, fertig. Jede von einer NTM akzeptierten Sprache kann
auch von einer DTM akzeptiert werden. Und umgekehrt.
Fragen dazu. Jetzt haben wir heute drei Varianten kennengelernt,
die mit beidseitig und endlichem Band,
die Kaband-Offline-Touring-Maschine und diese nicht-deterministische Touring-Maschine,
alle Äquivalent zur ursprünglichen
Haben. In den Fragen hatten wir noch die mit dem Zweidimensioner im Feld.
Aber das mit der NTM ist eben besonders wichtig,
weil die nachher auch eine ganz herausragende Rolle spielt,
eben wegen diesem Unterschied in der Berechnungsgeschwindigkeit,
den wir eben an diesem Clique-Problem kurz gesehen haben.
Das werden wir nochmal formal fassen, was es eben bedeutet,
irgendwie so und so viele Schritte zu brauchen und dann werden wir sehen,
dass die NTM scheinbar wirklich schneller ist als die DTM.
Und dann kommen wir da noch zu ganz interessanten Fragestellungen.
Fragen bis dahin erstmal. Effektiv sind sie also
gleich von der Mächtigkeit hier, von der Effizienz her
sehr wahrscheinlich nicht
Fragen. Gut, dann für die letzten,
weil es jetzt nur noch zehn Minuten sind, mache ich nochmal,
ich glaube sechs Folien sind es noch, Aufzählbarkeit und Entscheidbarkeit.
Braucht ihr gerade für den aktuellen Aufgabenzettel nicht,
aber wir machen das jetzt nochmal kurz,
dass ihr die Begriffe schon mal gesehen habt mit Aufzählbarkeit und
Entscheidbarkeit und nächstes Mal steigen wir dann genau da wieder ein
und führen eben diese Begriffe dann noch zweites Mal ein,
weil ihr relativ kompliziert meistens so ein bisschen erscheinen und machen dann auch ordentlich was damit.
Gerade dieses Thema Entscheidbarkeit wird spannend,
weil man dann eben auch Unentscheidbarkeit einführen kann,
nämlich Sachen,
die dann nicht
berechnet werden können
Also Aufzählbarkeit und Entscheidbarkeit wollen wir noch einführen. Aufzählbarkeit,
und ich sage euch mal erstmal, wo das hinführt,
Aufzählbarkeit, das werden nachher, das wird die Sprachfamilie sein,
der Sprachen, die von der Touring-Maschine akzeptiert werden können.
Also einfach all die Sprachen, für die es eine Touring-Maschine gibt,
mit 11 von M gleich L. Und Entscheidbarkeit,
das werden die Sprachen sein, die von Naturing-Maschine akzeptiert werden können,
mit der zusätzlichen Eigenschaft, dass sie auf jeden Fall anhält.
Das ist noch ein Unterschied bei dem,
wenn ich eine Sprache nur akzeptieren will,
so wie bei der Aufzählbarkeit, dann bedeutet das nur,
dass die von der Touring-Maschine akzeptierte Sprache eben gleich diesem L ist.
Was bedeutet, wenn sie ein Wort akzeptieren soll,
dann kommt sie da mal in der Rechnung in Endzustand
und kann natürlich auch aufhören
zu rechnen
Wenn ich alle Kanten aus dem Endzustand halt lösche.
Aber wenn sie ein Wort nicht akzeptiert,
dann ist gar nicht klar, was dann passiert.
Also in Umständen ist sie dann in der Endlohschleife.
Was ja nicht so definiert, dass gesagt wird,
wir müssen auf jeden Fall anhalten bei jedem Wort.
Sprich, wenn sie immer länger arbeitet, weiß man nicht
genau, akzeptiert sie das Wort jetzt irgendwann noch?
Oder akzeptiert sie das Wort nie? Und bei Entscheidbarkeit wird
eben explizit gefordert, dass die Touring-Maschine immer anhält bei jedem Wort.
Also wenn ich irgendein eigenes Wort vorlege,
nach endlich vielen Schritten ist Schluss und ich sage ja oder nein.
Also entweder will ich akzeptieren oder nicht. Das ist das,
was man üblicherweise beim Algorithmus auch hat,
dass ich einen Algorithmus statue und am Ende gibt es ein Ergebnis,
entweder positives oder negatives
Format eine Definition von Aufzählbarkeit, eine Menge heißt aufzählbar, genau dann, wenn sie entweder leer ist, oder es eine totale berechenbare Funktion gibt, die eben die natürlichen Zahlen abbildet auf M. Sprich,
ich kann von sowas reden wie dem ersten,
zweiten, dritten, vierten, fünften Element,
auch wenn da unter Umständen, ist ja keine Bieraktion gefordert,
sprich das dritte und vierte Element könnten auch mal gleich sein,
aber wichtig hier ist eben,
ich kann die natürlichen Zahlen darauf abbilden und die Funktion ist auch berechenbar,
das heißt,
ich könnte eine Touring-Maschine basteln,
der gebe ich die Zahl 3 und dann berechnet die halt
irgendwie ein Element aus M eben das dritte und wenn
ich dir nach und nach alle natürlichen Zahlen vorlege,
dann kriege ich alle Elemente aus
Genau, diese Familie wird mit RE bezeichnet.
Das ist historisch gewachsen einfach. Jetzt kann man zeigen,
eine Menge ist aufzählbar, genau dann, wenn,
wahlweise so eine K-Band Offline-Touring-Maschine existierte jedes Wort der Menge genau einmal auf ihr Ausgabeband schreibt oder M gleich LA für eine DTMA gilt. Warum ist das so,
wenn so eine Menge rekursiv aufzählbar ist,
also wenn so eine total berechnbare Funktion existiert mit dieser Eigenschaft,
die hier von N gleich M, dann die Idee hier ist,
warum gibt es jetzt so eine Carband Offline-Touring-Maschine mit dieser Eigenschaft,
genau das, was ich eben einmal kurz schon erwähnt habe,
Ich schreibe jetzt auf die Arbeitsbänder nach und nach,
ich schreibe da die Eins drauf, gucke,
welches Wort da rauskommt, ich schreibe die zwei rauf,
gucke, welches Wort rauskommt und so weiter.
Und die schreibe ich mir dann eben aufs Ausgabeband.
Und dann da ich hier genau einmal jedes Wort aufschreiben soll,
nur mache ich das so,
dass ich den mir vielleicht zuerst auf ein Arbeitsband schreibe und
dann immer bei einem neu berechneten Wort gucke,
ob ich das schon habe oder nicht.
Und nur wenn ich schreibe, es auch aufs Ausgabeband.
Und dann habe ich das. Und das
wiederum kann ich auch ganz schnell in eine Touring-Maschine machen,
die diese Eigenschaft hat, dass M gleich LA ist.
Die hat dann irgendwie die Karbon-Offline-Touring-Maschine aus Eins als Subroutine.
Und wenn jetzt ein Wort kommt, wo ich wissen will,
ist das in Ändern oder nicht,
lasse ich halt meine Carbon-Offline-Toure-Maschine arbeiten und wenn da irgendwann mal das Wort kommt,
dann akzeptiere ich und sonst halt nicht.
Weil sonst arbeite ich halt einfach immer weiter.
Und üblicherweise nimmt man das ja auch als Definition,
dass man sagt, die aufzählbaren Sprachen, das sind die,
für die eine Touring-Maschine existiert, die die Sprache eben akzeptiert.
Also da ist die alternative Definition,
die von Touring-Maschinen akzeptierten Sprachen bilden gerade diese Sprachfamilie RE.
Wichtig ist, dass ihr da in Erinnerung behaltet,
wenn sie eine Sprache akzeptieren soll, bedeutet das nur,
dass sie bei Wörtern,
die in der Sprache drin sind,
in einen Endzustand gelangt
Kann man so ummodeln, dass sie in Endzustand gelangt und
dann auch stehen bleibt. Aber wichtig, bei Worten,
die sie nicht akzeptiert, ist das nicht gegeben.
Bei Worten, die sie nicht akzeptiert, kann sie in Endlosschleifen gelangen.
Und wir haben keine Möglichkeit, das zu überprüfen. Genau,
da einmal könnt ihr euch nochmal bewusst machen,
Toolmaschine kann alles, was ein DFA kann, relativ klar,
weil das ja viel, viel mächtiger ist.
Also ich könnte auch einfach nur das Wort aufs Eingäuelband lesen,
das entlang lesen und entweder akzeptiere ich jetzt oder nicht.
Sprich, ich nutze die ganzen Fähigkeiten mit,
nach links gehen nicht und mit was anders hinschreiben nicht.
In den Aufgaben zeigt ihr nochmal,
dass sie auch alles kann,
was ein PDA kann
Und ihr zeigt auch, dass sie auch in Biorenzie hoch inakzeptieren kann.
Haben sich auch relativ schnell überlegen. Und damit kann sie dann alles,
was unsere bisherigen Automatenmodelle konnten, sie kann das,
was ein DFA kann, sie kann das,
was ein PDA kann.
Und sie kann mehr, sie kann nämlich die Sprache hier,
auch in BiorenziehochN, die ja kein PDA konnte.
Aber mit dem zweiten Pumping dann mal gezeigt, Ergo,
das bisher mächtigste Automatenmodell.
Und Turs-Tooling-These sagt uns, was mächtiger ist,
werden wir auch nicht kennenlernen
Also das einmal so für die Hierarchie der Automatenmodelle, die wir bisher hatten, DFA-PDA-Touring-Maschine.
Und man kann auch irgendwie wieder eine Grammatik dazu finden. Zu dem DFA hatten wir ja die rechtslineare Grammatik zu dem Pedi-Atmen,
die kontextfreie Grammatik, zur Touring-Maschine gehört die Grammatik,
die wir ganz am Anfang mal hatten,
die am wenigsten eingeschränkt ist, wo wir einfach nur gesagt haben,
die Menge der Produktion ist eine Teilmenge von V-Stern, mal V,
mal V-Stern, Kreuzfau, sprich, das waren die Produktionen,
wo auf der linken Seite auf jeden Fall ein Non-Terminal stehen musste,
aber da darf links und rechts davon auch beliebig was anderes stehen.
Und das konnte dann eben ersetzt werden durch einfach irgendwas.
Und die Worte, die man mit, Quatsch,
die Sprachen, die man mit dieser Art von Grammatiken generieren kann,
das ist dann gerade die Sprachfamilie der Sprachen,
die von Touring-Maschinen akzeptiert werden
Also habt ihr jetzt quasi eine Folge von drei Automatenmodellen,
die immer mächtiger werden und eine Folge von drei Grammatiken,
die immer mächtiger werden und die Verbindung zwischen den Automaten und den Grammatiken.
Die sogenannte Chomsky-Hierarchie. Das so als kleiner Exkurs hier.
Entscheidbar? Eine Menge heißen entscheidbar, genau dann, wenn diese charakteristische Funktion berechenbar ist.
Da drunter steht nochmal die charakteristische Funktion und da steckt halt drin,
wenn diese Menge jetzt entscheidbar hier ist,
also wenn eine Menge M entscheidbar ist und die charakteristische Funktion berechenbar ist,
dann bedeutet das ja, ich kann dir ein Wort vorlegen,
Und entweder berechne ich dann die Null, was bedeuten soll,
das Wort ist nicht in der Menge drin,
oder sie berechnet die eins, was bedeuten soll,
das Wort ist in der Menge drin.
Und dann kann die Touring-Maschine ja stehen bleiben. Ergo,
wenn eine Menge entscheidbar ist, dann kann ich eine Touring-Maschine basteln,
die diese Menge akzeptiert, und die auf jeden Fall stehen bleibt.
Weil bei Vorlage eines Wortes B benutze ich als Subroutine
diese Naturing-Maschine, die diese charakteristische Funktion berechnet.
Und wenn die halt endet mit null, dann weiß ich,
alles klar, ich will nicht akzeptieren,
also gehe ich in einen Zustand, wo ich nicht akzeptiere,
bleib dabei stehen.
Oder es kommt eins raus, dann gehe ich in einen Endzustand,
wo ich akzeptiere und bleib da auch stehen.
Sprich, ich bleibe auf jeden Fall stehen,
die Rechnung endet
Das ist der schöne Vorteil bei entscheidbaren Sprachen. Genau,
eine Menge M ist genau, dann entscheidbar,
wenn es eine Toolmaschine gibt,
die eben diese Sprache akzeptiert und, ganz wichtig,
und, und der hat das A auf jeder Eingabe anhält.
Üblicherweise nimmt man das auch einfach als Definition für den Scheidbar.
Zusammengefasst, Entscheidbarkeit von M, wir können die Sprache akzeptieren
mit der Toolmaschine und A, hält auf jede Eingabe.
Aufzählbarkeit von M, es gibt eine Toolmaschine, die die Sprache akzeptiert.
Und kein weiteres Und, sprich bei Worten,
die ich nicht akzeptiere, bleibe ich unter Umständen nicht stehen.
Und dann weiß ich halt gar nicht,
akzeptiere ich die oder nicht
Genau, insbesondere muss die Tour Maschine für eine aufzählbare Menge,
nicht bei jeder Eingabe anhalten. Und der letzte Satz hier ist wichtig,
wenn ich eine aufzählbare Menge,
eine Aufzählbarsprache habe und die Touring-Maschine rechnet lange,
sie rechnet immer weiter, dann kann das daran liegen,
dass das Wort nicht in M ist und sie vielleicht einfach
in der Endlosschleife drin ist oder dass sie noch nicht fertig ist und das weiß ich halt immer nicht.
Das ist der wichtige Unterschied zwischen aufzählbar und entscheidbar.
Entscheidbar ist halt viel schöner aus Informatiksicht
Ja, aber ja. So,
die letzten Folien da, die überspringe ich mal,
die Zusammenfassung nur noch für heute, was wir gesehen haben,
Touring-Maschinen haben wir eingeführt gestern und heute akzeptierte Sprachen und berechnete Funktionen haben wir eingeführt und uns angeguckt,
dass das eigentlich das Gleiche ist, Varianten haben wir eingeführt,
insbesondere diese nicht die terministische Touring-Maschine,
die Simulation haben wir uns angeguckt oder auch bei den anderen haben wir uns ja auch die Simulationen angeguckt,
aber diese Simulation ist eben besonders wichtig von der DTM zur NTM,
Und wir haben eben noch mal schnell die Begriffe entscheiden und auch zielbar eingeführt,
damit ihr die schon mal seht.
Da machen wir aber nächstes Mal weiter. Also da wiederholen wir
erstmal, dass wir die Begriffe quasi noch mal einführen.
Und dann werden wir ein bisschen was mit den Begriffen machen und
insbesondere dann nachher zu nicht entscheidbaren Mengen kommen, also Mengen,
wo es halt, wo man eben keinen Algorithmus dafür finden kann.
Wenn eine Menge nicht entscheidbar ist, bedeutet das,
es gibt keine Touring-Maschine, die auf jeder Eingabe anhält.
Und ja oder nein sagt,
und das ist irgendwie doof, das ist ein Feature,
das man bei Algorithmen im Allgemeinen haben möchte
Also man stelle sich mal vor,
man hat einen Sintax-Checker für einen Programmcode und er sagt zwar bei Programmen,
die sind taktisch korrekt sind, irgendwann ja.
Bei Programmen, die sind taktisch nicht korrekt sind,
arbeitet er vielleicht unendlich lange weiter. Das würde bedeuten,
ihr startet das Programm und wenn ihr jetzt einen Tag gearbeitet habt,
dann wisst ihr nicht, hm,
sagt er mir irgendwann noch Bescheid,
dass das Programm so taktisch korrekt ist?
Oder ist es nicht sintaktisch korrekt? Und er sagt mir
das nur gerade nicht. Das wäre irgendwie total dämlich.
Also ihr möchtet ja von Programmen,
dass die irgendwie auf jeden Fall eine Ausgabe produzieren,
entweder eine positive oder eine negative.
Also nicht entscheidbare Sprachen, das wird uns noch stören.
Das wollen wir nachher nicht haben.
Fragen? Nach meiner Urpunktlandung auf 9.45 Uhr, dann?
Ja, mit überspringen, der ist eigentlich gemogelt,
aber egal. Dann sind wir fertig und bis nächste Woche