Ja, schönen guten Morgen. Ich fange dann schon mal langsam an.
Wir werden also heute dieses Kapitelprozess Algebra zu Ende bringen mit dem Beweis des Alternierbit-Protokolls.
Und zunächst noch mal die Wiederholung in der letzten Stunde
hatten wir ja mit dem Thema Abstraktion begonnen.
Und da geht es ja um ein Thema, was eben
auch in anderen Gebieten vorkommt. Auch in dieser Vorlesung,
hatten wir bei den Petri-Netzen, bei Transitionssystemen,
mit dem Epcelon, entsprechend bei den endlichen Automaten,
wo wir das hier bei dem Getränkeautomat als interne Operation gekennzeichnet hatten.
Bei den Stageharts und auch jetzt hier in der Prozessalge Bram,
wo dann der entsprechende Buchstabe das Tau hier eben ist. Ja,
bei den Transitionssystemen hatten wir eben, wie gesagt,
dieses Äpzilon und dieses Vorgehen hier ist genau das,
was wir dann auch bei dem Alternährbild-Protokoll machen,
dass wir durch Abstraktion dann die interne verdecken,
sodass wir dann auf diese Art und Weise
das Externe Verhalten eben spezifizieren und entsprechend dann auch überprüfen können
Ja, dazu war also die sogenannte Stillern-Aktion notwendig,
die auch eben als Operation eben aufgefasst wird und unser Aktion,
unserem Aktion, kommt dann eben noch ein zweites hinzu,
was eben entsprechend aussieht, ganz analog zu dem Aktion für die Aktion.
Die Transaktionsregel bei den Transaktionsregeln gibt es dann jetzt auch den Abstraktionsoperator,
der aus einer Aktion dann hier ein Tau macht,
wo wir hier erstmal den Fall haben,
dass das V nicht da drin gehört,
Und wenn das V zu diesem E,
zu seinem Index E gehört,
dann wird in der Tat aus der Aktion V eine solche stille Aktion gemacht.
Und das Entsprechende dann noch für die Terminierenden Teile.
Ja, der Kalkül ACP mit diesem geänderten A-Strich,
mit den Tau-Transitionen, heißt dann ACP, Index Tau.
Dann sind wir dann auf die Frage zugegangen, ob jetzt,
wie weit jetzt sich unsere Konkurrenzen und dergleichen erhalten bleiben.
Und dazu wurde eben wieder das Prinzip der B-Simulation herangezogen,
dass wir dann gesehen haben, ja dann erweitern müssen.
Nicht dazu hatten wir zur Motivation ein ähnliches Konstrukt,
wie bei dem einführendes Verdeckungsapparators, wo wir hier also eine Verzweigung haben,
wo an einer Stelle eben ein Deadlock entsteht.
Und die ist weit wieder dieselbe Überlegung. Nicht,
dass wenn im einen Falle hier die Möglichkeit des Deadlocks möglich ist,
dann darf das so sagen, ein B-Seminar und Partner muss das
auch der Fall sein und nicht etwa auf einmal verschwinden.
Nicht, weil man sonst nichts beweisen kann durch diese Simulation,
denn in dem einen Teil ein Effekt,
der einem wichtig ist,
passiert in dem anderen
aber nicht
Ja, und das ging so,
dass wir dann also zunächst den Prozessausdruck eben konstruiert haben,
wo wir dann hier den Abbruch,
einen Operator für den Entdeckdok haben, gelb unterlegt sind,
die internen Operatoren, die dann später zu dem Tau werden.
Und die Überlegung war dann eben, einfaches Weglassen,
wie wir das bei den Automaten machen,
wo wir das Äpfelon sozusagen in dem freien Monoid ja einfach
als Identität weglassen können, geht nicht,
weil wir dann eben hier einen Verstoß gegen die Bisimilarität
eben haben
Ja, und dazu, da fahren dann noch weitere ähnliche Beispiele,
die genauso funktionieren. Ja, und der Ausweg bestand jetzt darin,
dass wir nicht einfach die Tower-Transitionen streichen,
sondern uns überlegen, dass wir nur solche Paare zulassen,
wonach der Tau-Operation das Gleiche hier möglich ist, wie hier,
wo wir beide Optionen mit A und B haben.
Nicht das Tau ist ja hier nicht mehr sichtbar, extern.
Und das heißt also, auch wenn diese intern stattfindet,
muss hinterher noch A und oder B eben möglich sein,
die hier unten jetzt dargestellt
Dazu hatten wir jetzt die sogenannte Verzweigungs-B-Simulation,
die also im ersten, also wo also jetzt das A
hier sowohl eine Aktion als auch ein Taum sein kann.
Und der Fall sieht dann also so aus, dass nach
einer solchen internen Aktion die B-Simularität eben erhalten bleiben muss.
Und im anderen Fall, wenn wir eine Nicht-Tauben-Aktion haben,
dann darf auf der anderen Seite eine Reihe von Taus seins,
aber das A muss auch wieder vorkommen.
Dann hatten wir den symmetrischen Fall und das entsprechende mit
der Termination
Und hier den Begriff Verzweigungsbesichmeter und die Symbolik mit dem Indexbeat. So,
dann hatten Sie ja gefragt, nach diesem Beispiel,
wie das hier aussieht, das war ja das erste Beispiel,
und das müsste ja dann gegen die Definition verstoßen und ist Ihnen das aufgefallen,
wie die Lösung dazu ist?
Ja, bitte. Wenn man das tau geht,
dann ist man müsste weh, wie sie miteinander taubert.
Genau. Also das war mir letztes Mal auch völlig klar,
dass das einfach sein müsste,
aber wie das manchmal unter Stress ist, war es nicht.
Nicht, wenn wir hier das tau gehen,
wie sie richtig, also FDB-Similarität hier annehmen und hier
das Tau gehen,
müsste das auch
wieder sein
Und das ist nicht der Fall und das ist genau der Grund,
den ich ja vorher groß und breit erklärt habe,
der trifft dann genau an dieser Stelle dann eben zu.
So, nicht und dann hatten wir aber dieses Größere Beispiel jetzt hier,
wo wir auch wieder diesen entsprechenden Fall haben,
nicht auch wenn wir hier dieses Tau hier gehen,
dann haben wir hier auch wieder die Bisemilarität.
Da haben wir das Tau und dann da wieder diese Milliarität. Ja,
und das waren dann im Fall, ist die gesamte Relation,
diese Paare hier, 1, 2, 3,
4, wo wir jetzt das letzte noch hinzugenommen haben,
was du oben den gestrichelten Kanten dann eben entspricht.
Ja, das verstößt aber gegen die Konkurrenzforderung.
Und deswegen hatten wir da noch diese Initialisierungsbedingung eingeführt,
was zur initialen Verzweigungsbisimilation führt,
sodass hier dann immer am Anfang eine Aktion sein muss und
danach wieder wir auf die Verzweigungsbeseminar zurückfallen,
wie wir das vorher definiert hatten
So, nicht? Und dann hatten wir uns überlegt,
dass wir diese Beziehung zwischen den Bisimilationsrelationen haben,
das war jetzt die vom Anfang,
das war die Verzweigungs- und das war die Initiale und aufgefasst als Mengen haben wir dann diese Inklusion,
weil wir hier zu sagen, weniger Paare haben als hier,
nicht hier haben wir die ganzen Taubpaare nicht und das hier war ja auch eine Einschränkung,
dass wir manche Paare, die wo eben keine initiale Aktion war,
ja dann nicht mehr mit hineinnehmen.
Nicht, sodass wir dann also in dem Falle,
wo wir gar keine Tausenden haben,
die dann wieder alle zusammenfassen
Ja, bei Repressionen müssen wir natürlich auch die Verträglichkeit haben.
Und da hatten wir die Forderung einer linearen Spezifikation,
die also früher schon betrachtet worden war, aber jetzt für den Fall,
wo wir hier auch die stillen Aktionen haben.
Und da würde ja möglich sein,
dass wir hier andauernd eine unendliche Folge von Taus haben,
wenn beispielsweise das A1-Tau ist und wir immer diese Alternative hier wählen,
was dann in der zweiten Bedingung dann eben ausgeschlossen wird
Ja, dadurch sind jetzt wieder die eindeutigen Lösungen gegeben.
Ja, ich habe jetzt hier nochmal einen Teil aus dem Ola-Test herausgenommen.
Das war ja eben gerade so ein Beispiel, was auf diese beiden Fälle abhebt.
Nicht hier haben wir sozusagen noch ein A. Und hier haben wir aber,
als davor dieses Tauf, was,
wenn wir hier x gleich Tau x hätten,
eben gegen die zweite Bedingung verstoßen würde,
aber da wir das immer zu der ersten Gleichung im Alternieren
müssen,
ist keine unendliche Taufolge dann eben möglich
Ja, nicht? Und dann haben wir jetzt nochmal zitiert,
dass das jetzt also eine Konkurrenzrelation ist.
Und dann sind wir zur Aktionalisierung übergegangen. Nicht,
wo wir denn mehr Gastau hinterher haben, das Äquivalent ist. Ja,
und wegen der Initialisierungsbedingung haben wir dann jetzt hier diese Gleichheit,
die wir vorher hatten, aber immer noch mit einem V davor.
Ja, und das ist jetzt sozusagen der Operator,
der aus den Faust die Stilleoperation macht,
auch entsprechend in Entgleichungen
Und dann sind wir zu dem Tandem-Puffer übergegangen. Nicht,
das war ja ein Puffer, der,
oder ein bisschen zusammengesetzt aus Puffern der Kapazität 1,
die jetzt in serieller Weise eben hintereinander geschaltet werden.
Und dadurch wird das anders,
als ich das letzte Mal gesagt habe,
natürlich ein FIFO-Puffer,
die Verwirrung kam jetzt bei mir dadurch zustande,
dass wir hier nur den Fall betrachten mit einem Element,
wo das
überhaupt gar keine Frage ist
Ja,
wir haben also dann diese Leseroperation auf dem Kanal 1,
dann die Synchronen-Operationen auf dem Kanal 3 und dann das Schreiben oder Senden auf dem Kanal 2. Ja,
und also mit mehreren Daten,
die dort eben übertragen oder gepuffert werden,
hätten wir dann hier die Alternative für diese verschiedenen Daten,
nicht und wir vereinfachen,
dass dazu,
dass wir da nur was einelementiges nehmen und dass das
insofern dann ein Sonderfall war
Ja, nicht. Und die entsprechende, das entsprechende Prozessgrafe würde dann
für die beiden Gleichungen so aussehen. Und die Idee ist dann,
diese dann beiden parallel zu setzen und die entsprechende Kommunikation dann eben einzuführen.
Und das Ziel ist dann zu zeigen,
dass das jetzt das Verhalten eines Proofers der Kapazität 2 ist,
wo wir dann das Ganze jetzt umformen,
in Gleichungen der Form, die jetzt das sind,
dementsprechend, was wir auch intuitiv als einen Puffer haben,
der Kapazität 2 auffassen für den Fall,
dass wir nur ein Element haben
Nicht aufgrund der Diskussion vom letztes Mal oder ihre Fragen,
habe ich jetzt noch mal überlegt, was denn mit mehr Elementen ist.
Dazu habe ich mir immer hier so ein Bild gemacht,
wo jetzt die beiden Striche bedeuten, dass die in der ersten,
in der ersten Funktionseinheit nichts gepuffert ist und der zweiten auch nichts.
Und wenn dann sozusagen ein A ankommt,
haben wir das links, das kann nach rechts durchgeschoben werden,
dann kann ein neues A kommen oder es kann ausgegeben werden.
Nicht so, dass wir also diese Situation haben und das
entspricht dann gerade dem, dass wir rechts unten haben.
Das sehen Sie
Gut, jetzt gucken wir mal, was passiert,
wenn wir noch ein B dazu haben. Ach so,
ja, zunächst mal haben wir dann eben hier diese,
es hat eben noch nicht ganz entsprochen.
Wichtig war ja noch, dass wir diese Abstraktion durchführen.
Das heißt, das Innere, die den inneren Übergang
sozusagen verdecken und erst jetzt entspricht das diesem Build hier.
So. Ja, das heißt also,
auf diese Art und Weise bekommen wir dann also zu diesen
vier Gleichungen, was also diesen vier Übergängen dann entspricht
Ja, machen wir die Abstraktion wieder weg und überlegen uns,
wenn jetzt wir das Ganze mit B betrachten,
dann könnte man eben auch hier ein B eingeben, durchschieben,
wieder zurückgeben oder durchschieben und dann wieder ausgeben, würde dann genauso aussehen.
Und wenn wir beides zusammen erlauben und ich keinen Fehler gemacht haben,
dann haben wir eben nur noch die Zustände,
wo im ersten A und im zweiten B ist und im
ersten B ist und im zweiten A. Das heißt also,
wenn wir hier schon ein A drin haben,
dann könnte ein B ankommen und wir kämen hier und
es könnte wieder ein A abgeben,
dann hätten wir
nur noch dieses
Hier, wenn wir vorne einen zweiten, ein B haben und ein A ankommt,
würden wir hier hinkommen und das würde dann entsprechend dann so aussehen.
Das heißt also, an diesem Bild kann man sehen,
wie die Komplexität sich erhöht, wenn wir also mehr ein Element haben,
aber die Aussage ist, die Rechnungen gehen im Prinzip genauso,
aber per Hand ist das natürlich ausgesprochen nervig.
Und wenn wir dann auch hier wieder diese Abstraktion,
das heißt also,
das Verdecken oder das Stillmachen der inneren Aktionen im Kanal 3 durchführen würde,
das ja so aussehen und wir würden dann eben zu
zwölf Gleichungen kommen statt den vier und zu einem Grafen,
der dann entsprechend so aussieht
Okay. Sollte ja hier nur das Prinzip erklärt werden,
sodass es also mit dem Bild hier auch funktioniert.
Und das Ergebnis war dann, dieses Transitionssystem oder dieser Prozessgraf,
wo wir dann hier die entsprechenden Übergänge haben und die Zustände durch die entsprechenden Prozessausgedrücke eben gekennzeichnete.
Ja, und genau wie eben machen wir dann das C3 wieder intern,
wodurch diese Abstraktion zustande kommen und wir dann auch wieder diese Struktur haben. Ja,
und die Rechnung sah dann in der Tat so aus,
dass wir im Q2 und Q1 parallel gestellt haben,
dann die entsprechenden Aktionen mal angewandt haben, Einführung des Left Merch,
dann die Anwendung rausziehen der ersten Aktionen und des Kommunikationsapparators,
wo dann eben auch dieses Delta entsteht und wo wir dann am Schluss zu dieser Form dann eben kommen.
Ja, die haben wir dann eingesetzt,
indem wir jetzt diesen Fall Deckungsoperatoren angesetzt haben und das entsprechende Recht,
die Rechnungen führte dann dazu,
dass wir dann jetzt hier tatsächlich diesen ersten Übergang haben,
die eben schon dargestellt von oben der ersten Zeile zu hier,
letzten Zeile, weiß nicht,
was die zum roten Übergang entspricht.
Also der gelbe Ausdruck oben mit dem R1 hier führt zu dem.
Ich kann den Ausdruck aus dem Ausdruck hier nach dem R1. Ja,
und in der ähnlichen Form haben wir dann noch weitere Gleichungen,
die dann in diesem Grafen dann vorkommen.
Sich, das war das mit dem R1,
was wir jetzt gerade hatten, in der dieser Gleichung hätten wir
von dem hier die beiden Übergänge mit S2 und R1,
also die entsprechende Alternative.
Und dann noch diese vierte Gleichung
So, und dann müssen wir ja eben noch dieses Verdecken,
also das Anwendung, das intern machen mit dem Tau-Opperator.
Da wenden wir jetzt auf das C3 an, also Tau-Index C3.
Und die Rechnung ergibt dann also in der Tat, diese Beziehung,
die wir dann umformen mit unserem Rekutionsprinzip in einfacherer Reablen,
X und Y. Und wir hätten damit die Erste Gleichung,
die OpenStatX X ist gleich R1,
Ja, und nicht in dasselbe passiert dann mit den anderen Gleichungen,
wo wir dann auch die anderen Formen dann eben bekommen,
die anderen beiden Gleichungen, was dann wie versprochen aussieht, wie dieses Transitionssystem.
So, und dann hatte ich das Ganze nur zur Erläuterung
ja auch nochmal durchgeführt, nur mit den Transitionssystemen.
Ich bin in der letzten Standstunde kam hier der Übergang etwas unklar vor.
Deswegen habe ich da nochmal die Folie eingefügt,
dass wir jetzt so sagen,
einen Schnitt machen und die ganze Konstruktion nur zur Erläuterung der Prozessallgebra mit Transitionssystemen,
wo wir jetzt, also jetzt nicht in der Transaktions,
in der Prozessallgehbar befinden, sondern gewissermaßen gedanklich im ersten Kapitel.
Ja, nicht, da haben wir also dieses Parallelsetzen von
Q1 und Q2 dann durch das Produkttransaktionssystem dargestellt.
Dann die Kommunikation und Synchronisation in dieser Art und Weise,
dass die beiden Operationen zusammengelegt werden. Was vereinfacht so aussieht?
Dann wurde das C3 intern gemacht zu dem TAU.
Und im externen Verhalten eben da nicht mehr sichtbar, was vereinfacht so aussieht,
was dann wieder Iso-Mauf war zu dem, was wir eben vorher hatten.
Das war der Sinn dieser Aktion. Gut,
bevor wir dann zum Alternierbit-Protokoll gekommen sind,
hatten wir noch ein paar Gedanken über in die Fairness,
weil das ja für das Alternierbit-Protokoll wichtig ist.
Und da hatten wir den Begriff der Fairness-Gruppe als einer Menge von Variablen,
die also den Problemen unterworfen sein können,
dass wir doch immer mit Tau-Aktionen bleiben,
was nach draußen dann nicht mehr sichtbar ist und gefordert wird in dem folgenden Aktion,
dass immer ein Ausgang aus dieser gewissen einigermaßen Totschleife dann gewählt wird.
Wenn ich von dem Gleichungssystem könnte das eben so aussehen,
dass wenn jetzt diese X1 bis XN diese Gruppe darstellen und ausgeschlossen werden muss,
dass wir immer diese Schleife durchlaufen,
weil nämlich im externen Verhalten dieses A hier dann intern gemacht wird und eben nicht mehr sichtbar ist und das Aktion fordert dann,
dass diese Ausgänge benutzt werden müssen, die jetzt hier violett unterlegt sind.
Und das entspricht also auch bei den Petri-Netzen so ungefähr
der fairen Schaltregel
Ja, und das war die entsprechende Fairness-Regel,
die dann eben sagt, dass diese Ausgänge dann hier benutzt werden müssen.
Das heißt, das externe Verhalten sieht so aus,
dass die interne Schleife ja nicht mehr sichtbar ist,
aber abgebrochen wird, sondern nur noch das,
was nach dem Abbruch der Schleife dann eben vorkommt.
Ja, dann hatten wir wieder die Aussagen über Korrektheit und Vollständigkeit
und sind dann zum Adarnierbit-Protokoll übergegangen, was wir jetzt schon zum dritten Mal hier haben.
Und da haben wir jetzt nochmal eine Beschreibung der Situation,
das ist jetzt im Augenblick dann mehr zum nachlesen.
Wichtig ist jetzt hier der Prozess Algebra, dass wir als Externes verhalten haben,
dass wir immer eine Aktion auf dem Kanal A haben,
wo der Sender was einliest, dann intern was passiert,
was extern nicht mehr sichtbar ist und dasselbe Datum,
dann beim Empfänger abgegeben wird und dann verhält sich das Ganze nochmal.
Ja, wenn ich so in Prüfungen,
mündlichen Prüfungen nach dem Alternierbild-Protokoll, der Spezifikation gefragt wurde,
dann wurde ja gesagt, so im Umgangssprachlich,
alles was vorne gelesen wird, muss auch hinten wieder herauskommen,
dass wir sozusagen nur die halbe Wahrheit,
weil hier ja auch noch drinsteckt, dass sozusagen der Leser,
der nächste Leseschritt erst erfolgen darf,
wenn die Abgabe des vorherigen Datums erfolgt ist.
Nicht, dass steckt da drin und entspricht ja auch eben
der, der Spezifikation des Alternierblitprotokolls. Ja,
und nicht und als Transaktionssystem werden wir dann das kriegen,
wo wir jetzt statt zwei Zuständen vier haben,
was aber auch äquivalent wäre mit zwei Zuständen.
Ja, das war das entsprechende Bild bei den Petri-Netzen
Und hier ist jetzt nochmal also die Beschreibung des Alternierbeat-Protokolls,
wie es auch in dem Buch zur Prozess Algebran drinsteht.
Will ich jetzt nicht nochmal wiederholen,
sondern nur gleich mal an so einer Mini-Simulation eben erklären.
Wir fangen also an mit einem Bit Null,
was wir dann am Anfang dieser Nachricht,
die bei A ankommt, eben beifügen.
Und die Spezifikation des Senders sieht dann eben so aus,
die wird also hier parametrisiert durch das B und wir lesen also,
wie gesagt,
hier auf dem Kanal
Und wieder die Summe über alles, was wir dann später weglassen.
Und gehen dann weiter nach Tee, in die Gleichung mit Tee,
wo wir gewissermaßen das B uns eben merken.
Und dass der eben auch nicht.
Und dann wird das Ganze auf den Kanal B geschrieben,
und zwar als Paar mit dem Datum und dem Bit.
Und dann hinterher gehen wir hier unten hin.
Und wir haben aber als Alternative auch noch,
dass wir auf den Kanal das Fehlersymbol schreiben,
was die Situation simuliert,
dass wir vorher vielleicht was Korrektes draufgeschrieben haben,
aber der Kanal dann den Fehler produziert,
um hier Gleichungen zu sparen
Wurde das in dieser Form dann eben vereinfacht. Ja,
nicht nur beim Sender geht es dann eben so weiter,
wenn das geschehen ist, dann gibt es zwei Möglichkeiten.
Entweder wird das nächste Datum gelesen und dann das Bit alterniert und dann passiert Bruder,
also das alternierte Bit wird vom Kanal D gelesen,
so muss ich sagen,
oder es wird eine Fehlermeldung gelesen und dann wird das Ganze hier nochmal gemacht.
Und wenn keine Fehlermeldung kommt,
dann wird jetzt hier auf dem Kanal das alternierte Bit gelesen
Und danach geht es dann hier wieder oben mit dem Esslos,
mit dem alternierten Bild.
So, und beim Empfänger sieht das symmetrisch aus.
Der Empfänger, da liest man im Kanal B und schreibt
auf den Kanal, erzähl dasselbe Datum.
Oder man liest ein, sozusagen das alternierte Bit. Und ja,
also nochmal hier oben, wenn man das richtig gelesen hat,
dann geht man hier die Quittung,
wobei die Quittung auch jetzt dann wieder
einem Fehler unterlaufen kann
Oder hier oben, man liest hier die Fehlermeldung und dann geht man eben auch das alternierte Bit zurück,
was dann bei dem Empfänger dazu als negative Bestätigung eben funktioniert.
So, und jetzt zu der Minis-Simulation,
also wenn wir am Anfang des RA-Funday ausführen,
dann können wir das zum Beispiel auf den Kanal B geben,
wobei jetzt das Bit B gleich 0 beigepackt wird.
Und dann würde es dann weitergehen, jetzt hier unten,
dass der Empfänger dieses dann liest, und über den Kanal eine C dann eben abgibt.
Und dann, man muss also hier diese geschweifte Klammer lesen,
die geht von hier bis hier und dann, ja,
und dann geht er hier nach Coupé übrig,
nachdem hier und würde dann die Quittung,
die positive Quittung schicken oder eben auch einen Fehler draufschreiben,
was sozusagen eine Störung im Kanal D eben bedeuten würde.
So, oder im anderen Fall kann oben im Kanal B eine Fehler auftreten,
was dadurch simuliert wird, dass auf den Kanal B, der Fehler geschrieben würde.
Und dann würde der Empfänger auch diesen Fehler lesen,
nicht die Voraussetzung im Alternierbit-Protokoll ist ja, dass die Fehler erkennbar sind.
Das unterliegende Schichten, also signalisierender ist ein Fehler. Und in diesem Falle,
er würde dann jetzt das alternierte Bit zurückgeben und der Sender dadurch merken,
da ist ein Fehler aufgetreten und er würde dann jetzt diese Zeile ausführen und dann nochmal,
also in diese zweite Zeile gehen,
wo er ja das alte Datum mit dem alten Bit gespeichert hat und das Ganze eben nochmal senden wird.
Er geht also dahin und das Ganze würde dann nochmal gesendet. Ja, nicht? Und bei den Petrin,
bei den Transitionssystemen und vielleicht bei den Petrinetzen,
haben wir ja auch den Fall simuliert,
dass es durchaus sein könnte, dass das Datum richtig übersandet wird,
übersandt wird, dann auf dem Bestätigungskanal der Fehler auftritt,
der Sender dann denkt, ja,
er muss das normal senden,
der Empfänger würde dann das korrekte Datum möglicherweise zweimal bekommen und da das Bit aber nicht gewechselt hat,
kann der Empfänger das erkennen und schmeißt das einmal weg.
Das machen wir hier jetzt aber nicht mehr
Ja, nicht. Und ähnlich wie bei dem Pandem-Puffern lernen wir
dann ein Gleichungssystem entwickelt, was dann diesem Graf entspricht,
wo wir dann jetzt zwölf Gleichungen haben. Und das geschieht so,
indem wir jetzt mit unserem spezifizierten R0 und S0 anfangen,
das Parallelsetzen, dann die Kommunikation einführen und die entsprechenden Einzelnenden
abschneiden und dann das interne Verhalten eben verdecken.
Und wir betrachten dann die Lösung entsprechend der rekursiven Spezifikation.
Nicht und was wir ableiten werden,
ist also diese Gleichung, die dann wieder zeigt,
dass wir also eine unendliche Folge von RAs und SCs eben haben.
Und das könnten wir also zum Beispiel auch durch X ersetzen,
wie wir das ja vorher eben hatten.
Da ist noch was. Naja, da steht es ja
noch, dass wir den Xen da oben nicht.
Nicht und was dann diesem unendlichen Verhalten entspricht,
was wir da oben in dem Prantisationssystem
eben haben
Ja, dann geht's jetzt also los mit der Rechnung,
wo wir unten im Kasten dann nochmal die Spezifikation von
dem Sender und von dem Empfängern haben.
Und hier haben wir jetzt die entsprechende Rechnung mit dem Parallelopperator,
wo wir dann wieder das Rekursivprinzip anwenden,
also die Spezifikation eben einsetzen können.
Das heißt, für das R0 haben wir jetzt
das hier entsprechende dieses hier eben eingesetzt
So, nicht nur, wenn wir jetzt so sagen,
intern jetzt weitermachen,
haben wir also diese Rechnung und jetzt nochmal einen Hinweis darauf,
dass wir auf Seite 234 im Skript die ganzen Axiome gesammelt haben,
damit man die schneller findet,
aber das haben wir ja schon mehrfach geübt,
jetzt nicht zunächst mal haben wir da die Auflösung des Parallelapparators mit Links,
Merch und Rechtsmerch und dann haben wir jetzt hier das R0
hier eingesetzt und dann haben wir jetzt die ersten Aktionen wieder rausgezogen,
das ist ganz analog wie beim Tannenpuffer
Ja, hier nochmal hervorgehoben,
nicht, dass es sozusagen an der Stelle,
haben wir ja diese Alternative auf der linken Seite und die ist ja zu sagen,
hier an der Stelle nur aufgelöst,
weil wir jetzt so das Distributivgesetz in Bezug auf den Left Merch haben.
Und an dieser Stelle haben wir das nur ersetzt und an dieser Stelle,
da haben wir, haben wir ja die Kommunikation und die
taucht da unten dann auch wieder auf.
Ja, da haben wir jetzt,
machen wir jetzt entsprechend weiter
Und der entsprechende Punkt ist jetzt,
dass dann hier zum Teil der Delta-Operator auftritt und wie wir das schon eben schon früher kennen,
kommt das zum Beispiel daher,
dass wir hier eine Kommunikation haben mit einem,
mit einem etwas,
was eben nicht in der Kommunikationsrelation steht,
weil eben sozusagen nur die passenden Paare eben zu einer Synchronisation
führen und dann dieses Delta dann eben entsteht
Ja, so geht die Rechnung dann entsprechend erweiter,
wo wir dann an dieser Stelle dann eben ankommen und das
Ganze dann zusammenfassen können, dass sozusagen unser erster Schritt.
So, und jetzt wenden wir dann das Verdecken an,
wo sozusagen die internen Operationen, Einzeloperationen auf dem B eben rausgeschnitten werden.
Das führt dann dazu,
ja an dieser Stelle eben angesetzt, führt dann dazu,
dass eben nur noch der untere Teil hier unten übrig bleibt,
weil das sozusagen dann eben alles eben verschwindet
Ja, und das ist jetzt die erste Gleichung,
bei die wir jetzt also auch jetzt darstellen können,
schon in unserem Grafen.
Also hier haben wir den Ausdruck im Zustand eins.
Hier haben wir die Operation RA von D. Und hier haben wir den erreichten Zustand.
Und in dieser Weise gibt es also jetzt zwölf Gleichungen,
wo das jetzt die erste davon ist.
Ja, dann ist das nochmal hervorgehoben, nicht?
Und dann geht es irgendwie weiter zu drei.
Das ist jetzt im Augenblick nicht nochmal,
kann man nachrechnen,
aber jetzt hier nicht nochmal vorführe
So, nicht? Und da haben wir jetzt diese Ergleichungen
von 1 bis 6 und nochmal mit dem Y von 1 bis 6,
wobei das eigentlich die relativ symmetrisch ist und nur dem gewechselten Bit eben entspricht.
Ja, und im Prozessgrafen würde das dann eben so aussehen,
dass wir diesem Zustand 1 die Variable X1 zuordnen,
dann hätten wir den Übergang mit dem RA von D-Strich nach 2.
Und das wäre dann zu sagen,
das X2 AD und so geht das dann in der Form
dann eben weiter
Ja, nicht wobei wir hier etwas haben,
was wir schon im Kapitel 1 besprochen haben, nämlich diese Schleife,
die darin besteht, dass der Fehler immer wieder auftritt,
den wir dann durch die Fairness-Regel dann später dann eliminieren.
Nicht das wäre dann der Graf, den wir früher schon im Kapitel 1 schon mal hatten,
wo wir das ganz entsprechend ganz analog gebildet ist. So,
dann haben wir sozusagen das Verdecken der internen Aktion,
das machen wir an dieser Stelle,
denn dieser Fehler ist ja intern Wir brauchen dann aber,
müssen das als Fairness-Gruppe auffassen und das Aktion so anwenden,
dass das hier unser Ausgang ist,
dass also dieser Fehler irgendwann mal nach endlicher Zeit aufhört und wir den Ausgang finden,
dass auf den Kanal B der korrekte Wert übermittelt wird.
Nicht so, dass im externen Verhalten diese Schleife nicht auftaucht.
Ja, nicht auf diese Art und Weise bekommen wir dann
die anderen Gleichungen und insgesamt führt das dann dazu,
dass wir jetzt diese dieses Verhalten kommen wir ursprünglich gewünscht.
Und wir haben dann, können das wieder durch das X
ersetzen und das Hintere auch und bekommen dann also diese Form.
Und wenn wir uns jetzt ganz nochmal den ganzen Graf eben anschaut,
dann entspricht zu sagen, der erste Teil,
den Bit Null und der zweite Teil ab sieben mit dem Bit 1
und sieht insofern also symmetrisch aus.
Dann haben wir durch die Fairness-Regel diese Schleifen eliminiert in dem Sinne,
dass wir sie nach außen nicht mehr sichtbar haben.
Und dann hatten wir hier den Übergang RA von D. Hier,
das war die interne Aktion,
die wurde zu Tau
Das ist es, das Schreiben auf dem Kanal C. Das heißt,
hier haben wir schon zu sagen, das Lesen auf dem Kanal A
und hier das Schreiben auf dem Kanal C, sozusagen der erste Schritt.
Und das wiederholt sich dann immer wieder. Dann haben wir
als nächstes dann wieder das Tau und jetzt das mit dem alternierten Bit,
das nächste D, wenn ich das jetzt hier nicht dargestellt,
dass das ein anderes D ist,
sodass ich da früher manchmal den Strich geschrieben habe.
Dann wieder das Tau und so weiter, sodass wir auf
diese Art und Weise dann in der Tat diese Gleichungssystem.
Ich meine, wir hatten ja früher schon gesehen,
ob wir das zweimal oder einmal hinschreiben,
dass es im Verhalten dann egal
Ne, das ist also diese entsprechende Erfolge. Ne,
was wir früher schon gesehen hatten, war,
ob wir das in der Gleichung zweimal,
das AB oder einmal schreiben, ist für die unendliche Folge egal.
Und das kommt also dann hier auch zum Tragen.
Und das ist jetzt sozusagen eine etwas abstrakte Reform des ursprünglichen Grafen,
den wir des vollständigen Grafen, der dann also so aussehen würde.
Gut. Ja, damit wären wir jetzt durch.
Haben Sie jetzt erstmal mal eine Frage jetzt dazu
Vielleicht kommt die jetzt auch nochmal bei dieser Aufgabe,
die aus dem Buch ist. Da steht die Aufgabe,
also das hier ist nochmal die ursprüngliche Spezifikation.
Und die Aufgabe steht da drin,
ersetzen Sie im Beweis des Alternierpit-Protokolls die Spezifikation von dem UDEB.
Das ist das hier durch Stadt 4. Können
Sie erkennen, was da anders ist?
Ja, bitte
Das ist ja vorgerückt, genau, das ist ja vorgerutscht,
genau, ja, ja. Ne, das kann ja
auch ein Denkfehler sein und kann ein Schreibfehler sein.
Und wenn man so einen Beweis so glatt im Buch
liest in der Vorlesung hört, dann denkt man,
ja, das kann ja nur so sein.
Und deswegen ist es manchmal ganz gut, wenn man sich
mal eine kleine Abweichung anguckt, wie in dieser Aufgabe.
Und wenn jetzt der Beweis genauso gehen würde,
dann wäre irgendwas faul im Start der Dänemark.
Das sollte nicht sein. Okay, das haben Sie
also richtig erkannt an dieser Stelle. Und die Frage,
also Sie haben erkannt,
dass dieses jetzt an der Stelle ist und rein zu taktisch,
aber was bedeutet das denn jetzt?
Jetzt im Verhalten intuitiv
Ich dachte, da haben wir doch jetzt hier in dem D,
haben wir, können wir das,
die richtige Quittung lesen oder wir können die Fehlermeldung machen.
Und was heißt das, wie es weitergeht? Ja,
jetzt die zur Abwechslung. Wir haben jetzt diese Alternative mit dem,
mit dem, mit der fehlerhaften Quittung an einer anderen Stelle.
Das heißt, danach würden wir,
hätten wir jetzt dieses S als Alternative erstellt als Tee,
also nicht als Alter, als Fortsetzung.
Ja, genau. Und... Was heißt das für das Verhalten?
Das ist in dem Fall, wenn wir den Fehler lied,
wenn wir die vielleichte Quittung haben, würden wir weitermachen, dass wir wissen.
Ja, genau. Wir ignorieren den Fehler und machen weiter,
als wäre nichts passiert. So, und die Frage,
also hier steht hier auch noch mal da,
Fehler mal, Fehlermeldung vom Kanal D wird ignoriert.
Und nun hat in der Tat einer ihrer Kommilitonen in Frühjahr und Semestern das wirklich mal gemacht.
Ja. Und das hat dann zu folgenden Prozessgrafen geführt.
Ich habe das also nicht überprüft, aber es scheint plausibel.
Und da sehen Sie, was dann jetzt eben neu ist,
ist jetzt dieser Teil wir. Und wenn Sie da langlaufen,
dann sehen Sie, dann passiert immer das,
dass ich sozusagen gar nicht mehr,
also dass ich immer wieder ein neues Datum lese,
aber eben gar nicht mehr übermittle.
Richtig. Nicht. Also das heißt,
das ist der ganze Mechanismus, dass meiner Fehler mal so
das alte Datum erneut übersahnt wird, dass das entfällt dir.
Das heißt, also das war jetzt nochmal und so weiter.
Ja, im Vergleich zu dem, was wir früher hatten. Ja,
dann sind wir damit fertig und auf der letzten Folie habe ich nochmal anmerkungen,
ihr geschrieben, damit ich folgende Anmerkungen nicht vergesse.
Und zwar hat mich ein Übungsgruppenleiter angesprochen, auf folgende Diskrepanz.
Wenn ich zum Beispiel den Ausdruck habe, a plus a,
da steht eben manchmal in der Vorlesung steht da a,
Termination und in den Übungen steht da nur eine Kante.
Und wissen Sie, was jetzt,
was ist jetzt richtig und was ist falsch?
Wollen wir mal hinten hingehen?
Ja, genau, ja.
Ja, aber wenn man den Prozessgraf aufmalt,
könnte man doch sagen, man will nur eine Definition haben.
Aber okay, ja, aber insofern ist es egal,
ja, okay. Aber natürlich, das ist eben zweimal
die gleiche Kante zu dem gleichen. Ja,
so habe ich auch früher immer gedacht,
aber man möchte natürlich gerne als theoretischer Informatiker,
dass die Definition des Prozessgrafen auch formal richtig ist,
obwohl das sozusagen etwas spitz, finde ich, ist.
Ja, wie könnte man das noch sehen?
Genau. Genau, ja
Genau. Wir haben ja, also das habe ich
mir dann auch erst hinterher überlegt und war dann froh,
dass das also gut ausgegangen ist.
Wir hatten ja dieses Transition, den Transitionskalkül.
Und der hat ja irgendwie solche, solche Übergänge definiert.
Und da kannst du durchaus mal sein,
dass wir eben die zwei Übergänge da definiert haben.
Aber die Transitionsmenge in den Transitionssystemen wurde ja eben als Menge
von solchen Paaren definiert. Und in der Menge,
wie Sie richtig sagen,
fallen ja
gleiche Paare zusammen
Und wir haben das nur einmal. Und deswegen würde ich
das so auffassen, wie Sie vielleicht auch denken.
Man kann das so und so schreiben. Das würde eher bedeuten,
dass wir uns daran erinnern, dass das aus zwei Schritten im Transitionssystem kommt.
Und das wäre dann eine entsprechende Vereinfachung. Nicht,
dass wir sagen, in derselben Linie,
wie wir ja auch manchmal sowas schreiben,
das hatte ich ja schon mal erwähnt,
also das Terminationssymbol zweimal schreiben, während der Definitionsstand ja genau,
es gibt nur einen Endzustand und hier haben wir zwei.
Ja, bitte. Wenn man das mit der Kontaktzeit machen wollte,
zu sagen, wenn ich da so ein bisschen zwei kann.
Ja, also folglich diese sie muss man ganz multimega definieren müsste.
Würde das irgendetwas an den Folgerungen? Nee, nur an
den Begrifflichkeiten. Es gibt ja den Begriff des Multigrafen,
heißt das, glaube ich nicht,
wo man so mehrfach Kanten haben kann mit, also die gleich aussehen.
Und da das Wort nicht vorkommt, muss man das so dann lassen.
Das könnte man natürlich auch so definieren, dass man das immer fordert.
Aber Sini, aber wir Kommilitonen sagt ja, dass B-Seminar ist,
würde das aber nichts weiter ändern, ja, bitte.
Ich weiß noch, mal eine andere Sache umzuwenden.
Ja,
das machen wir beide
Weil, was ist denn das bei der exklusiven Stampezifikation?
Ja, das ist das andere. Da sprechen wir vor
einem großen Tier, haben wir so einen Index,
XB dabei. Ja. Hätte ich nach Definition gedacht,
dass das XB für... Ich habe das im Auge jetzt
nicht vor Augen, was für ein XE ist das?
Nee, definieren ja allgemein eben unsere...
Sprechen wir von der Lösung? Genau, bei den Transitionsregeln
. Bei den Traditionsregeln, ja. Franktionsregeln, Mode,
eine Franktionsregel als GOSC und als Index XB genannt,
weil die ist wie es zuvor Für die Variablen.
Ach so, sie meinen immer noch dieses Tee,
was sie schon mal gefragt hatten.
Ja, ja, ja, ja, ja.
Weil das Gefühl nach hinten beliebt ist. Ja,
ja, so, und jetzt hast du ihr ein Problem,
ja, was ist dann?
Zum Teil, dass XI ersetzt worden ist mit einem Groß
X oder ein Groß 1.07., also einer beliebt.
Ja. Und zum Teil wiederum es ersetzt wird mit diesem Ausdrucksspitze Klammern, X-Pile.
Mit den Lösungen. Mit den Lösungen. Und gleich
das Gefühl hatte, dass jetzt zumindest auf den letztlichen Belösungszettel
das gleichgesetzt wurde.
Das kann man
manchmal tun
An der Chance. Ja, ist mir auch schon mal aufgefallen,
dass manchmal statt der Lösung nur die Variable steht.
Ich glaube, das ist der Punkt.
Da ist es jetzt genau andersrum. Oder andersrum, ja
. Und da muss man in der Tat aufpassen und das
sollte man dann vielleicht irgendwann mal eliminieren.
Dass man immer überlegt, ob die ist jetzt gemeint,
nur die Variable oder auch die Lösung.
Da haben sie vielleicht rechnen. Okay. Gut,
und dann geht es jetzt weiter in dem nächsten Kapitel,
weil wir... Ich fange doch heute schon mit an,
weil das letzte Kapitel sonst
ein bisschen knapp wird
Und zwar geht es jetzt um das Thema parallele Maschinen,
nicht ein Thema ist ja ein wichtiges Thema hier, die Parallelarbeit.
Und es gibt eben auch verschiedene Maschinenmodelle, entsprechend den
verschiedenen Rechnern, einen Einsatz von Rechnern in diesem Kontext.
Nicht unter Kammer, oder es gibt eben auch die Zugehörigen parallelen Algorithmen.
Und unter Parallelen und verteilten Algorithmen wird die Erweiterung von klassischen
für einen Prozessor und Maschinen konzipierten Algorithmen,
auch viele Miteinander kooperierende Prozesse eben verstanden
Also das war gestern auch noch, witzigerweise, passend zur Vorlesung,
ein Artikel in der Süddeutschen Zeitung, im Feuilleton.
Nicht da stellt immer in Amerika jemand immer die Frage,
was sollte man in der Wissenschaft vergessen, welche Fragestellung.
Und der Feuilleton-Autor, der Süddeutschen Enthaltung, hat gesagt,
ja, das mursche Gesetz sollte man vergessen.
Was ja so ungefähr immer die Verdoppelung der Transistorenzahl auf den Rechnern bedeutet,
erstens, weil das auf die Dauer doch nicht durchzuhalten ist
und wahrscheinlich möglicherweise durchs Quantencomputing dann abgelöst wird.
Es gibt ja
eine physikalische obere Grenze
Und zum anderen war ich schon eben vor Jahren irgendwo
am MIT oder an Harvard gesagt wurde, ja,
das Mursche-Gesetz wird abgesetzt, abgelöst durch die Vernetzung.
Das heißt also, man sagt nicht mehr,
es kommt nicht mehr auf die Leistung eines Rechner an,
sondern auf die Menge der vernetzten Rechner.
Und das führt dann zur Parallelarbeit,
wie das dann auch in dem Bild hier dargestellt wird,
wo irgendwie eben steht, ja, wir sind ein Rechner sozusagen,
weil sie alle miteinander kooperieren.
So, und jetzt haben wir hier die beiden Begriffe,
Parallele und verteilte Algorithmen,
was jetzt sozusagen die Algorithmen auf diesen Rechnern sind.
Sagt Ihnen
der Unterschied was
Was der Unterschied ist, das ist nicht dasselbe oder sehen Sie da einen Unterschied?
Vielleicht nochmal jemand anderes? Siehe nochmal jemand anderes? Haben
wir nicht, sonst machen wir wieder weiter, ja.
Wenn ich an verteilte Algorithmen denke,
denke ich an Algorithmen, die dezentralisiert sind,
wo sie auf vielen einzelnen Wesentlichen voneinander unabhängig arbeitenden Frisuren oder Maschinen etwas berechnet wird.
Nur gelegentlich mal und auch nicht komplett Ergebnisse zusammengetreten.
Ja. Beim parallelen Algorithmus im Wesentlichen, einige wenigen,
oder wenn ich nicht unbedingt viele Aktionen nebeneinander getestet werde,
zur Beschleunigung,
die aber am Ende auch wieder zusammengeführt werden
Ja. Ja, da ist vieles richtig drin,
aber auch mit der Zusammenführung kann man natürlich bei dem anderen,
bei dem, was sie erst sah,
aber sie wollen das noch ergänzen.
Ich stelle bei der Verteidigung in British Tor,
wo das auf verschiedenen Positionen verschiedene Prozent Algorithmen laufen,
also verschiedene Teile oder beim parallel noch einen dasselbe.
Mhm, muss man auch machen, ja.
Okay. Ja, das sind also inzwischen zwei große Gebiete,
die doch relativ wenig miteinander zu tun haben.
Und der Unterschied, Sie haben beide in verschiedenen Aspekten ein Recht.
Das kommt jetzt aber gleich vielleicht nochmal, wird das nochmal deutlich.
Also unter einem Parallelen Algorithmus wird eben die Synchronisation zwischen diesen
beiden Rechnern, durch Speicher oder Ronde Buseynchronsation dargestellt.
Nicht bei Ronde Buseynchronisation heißt das zwei Aktionen,
die müssen sich gewissermaßen an demselben, selben Label,
Fehlzähler treffen und führen die Synchronisation, Datenaustauschen dergleichen.
Das entspricht Ihrem, dass Sie sagen,
parallele Algorithmen sozusagen mit Gleichtag
ungefähr assituieren
Nicht, das ist aber anders bei Speichern-Synchronisation,
da können die durchaus auseinanderlaufen,
weil es noch, erinnert sich noch jemand, was,
das hatten wir in der Vorlesung auch schon mal,
was ich hier speichersynchronisation nenne?
Ich habe mal auf sie gewartet, zur Abwechslung, ja.
Also das eine Prozessor, etwas mal ein Speicher liest und eben
potenziell der andere sich das holt oder eben auch nicht und sieben unabhängig da.
Genau. Ob es überhaupt ein Leber gibt oder war das?
Genau, man kann das also einkleiden sozusagen in Agentengeschichten,
nicht beim Randovou, da müssen die sich die beiden Agenten
an einem Ort und einer Zeit treffen,
um ihre Nachricht auszutauschen
Bereichersynchronisation ist sowas wie ein schwarzer Briefkasten, wo der eine Agent was reintut und später,
und der muss eben nicht zur gleichen Zeit kommen,
der erlöst das dann eben eine. So, das heißt,
im Gegensatz dazu, bei verteilten Algorithmen haben wir jetzt Nachrichtensynchronisation,
weder das eine noch das andere,
sondern das würde jetzt bei den Agenten dementsprechend,
dass der eine dem anderen eine Nachricht schickt, wobei eben wichtig ist,
dass im allgemeinen Fall nicht über die Laufzeit der der Nachrichten bekannt ist.
Nicht, wenn man es über die Laufzeit bekannt ist,
dann kann man es das zum Teil eben auch wieder simulieren,
indem man sagt, ja,
man führt in so einen Artentakt ein und man verdeckt sozusagen die Laufzeit.
Aber bei verteilten Algorithmen muss es also so sein,
dass die auch funktionieren, wenn eine Nachricht extrem lang lang braucht.
Was jetzt in dem Bild jetzt oben sozusagen mit dem weltweiten Netz sozusagen dargestellt ist.
Ja, und diese Synchronisationsarten hatte ich ja schon mal im Kontext der Transaktionssysteme erwähnt.
Nicht Ron de Woosynchronsation bedeutet, dass die beiden wirklich eine Aktion gemeinsam durchführen.
Während Speichersynchronisation bedeutet, dass die eine irgendwie ein Datum schreit,
was der andere später lesen kann. Und dadurch dann natürlich auch sein Verhalten ändert,
der Nachrichtensynchronsation eben eine Versenden von Nachrichten ist,
was man sozusagen als Hilfkonstruktion so darstellen kann,
nicht für den Speicherort, kann man hier noch ein anderes Transitionssystem einführen,
auf den, die dann eben entsprechend schreiben.
Können auch löschen, nicht was bei einer Nachrichtenübertragung nicht mehr möglich ist,
eine Nachricht, die einmal abgeschickt ist,
fängt man im allgemeinen Fall nicht mehr ein, die ist dann unterwegs.
So, nicht? Und bei den Parallelen Algorithmen gibt es
jetzt sozusagen verschiedene Konfigurationen von Rechnern. Nicht,
die könnten zum Beispiel so im Ring angeordnet sein,
wo wir jetzt je zwei rechnen, soll dieser Strich bedeuten,
dann ran de vous Synchronisation machen.
Nicht solche Ringe gibt es auch bei verteilten Algorithmen,
das sind zum Beispiel, kennen Sie, schon gehört,
ein sogenannter Token Ring, ein Algorithmus, wo dann irgendwie eine Nachricht,
ein Token herumgeschickt wird und immer wenn das Token da ist,
wird irgendwas was gemacht.
Da sehen Sie den Unterschied. Also hier ist gedacht,
kann man zwar nicht sehen, aber gedacht, on devous, Synchronisation.
Und bei dem verteilten Algorithmus wäre das eben eine Nachricht.
Die verteilte Algorithmen haben jetzt in der früheren Version dieser Vorlesung auch mal dazu gehört,
ist in der Folge der Ausmagerung der Inhalte verschwunden.
Da biete ich dann ab und zu mal eine extra Vorlesung
im Sommersemester, also aber nicht im nächsten Sommersemestern.
Das ist ein interessantes Thema, aber es gibt da eben
auch Skripten zu, wenn Sie das nochmal nachlesen wollen.
Naja, und zu diesen Konfigurationen gibt es dann natürlich auch Alternativen,
wie zum Beispiel den Baum oder ein Feld,
zwei oder mehr dimensionale und dergleichen.
Das ist aber jetzt eine Form von Parallelrechnung,
die wir hier nicht behandeln, sondern hier behandeln Speicher,
Synchronisation, und zwar in Form eines gemeinsamen Speichers.
Wir haben jetzt hier unsere Rechner und die greifen jetzt auf
einen gemeinsamen Speicher zu und wir überlegen, was doch jetzt dann eben passiert.
Und das passiert auf der Basis eines Gebildes,
was Peram heißt, was so viel heißt wie Perel Random
Access Machine
Und das baut also auf der sogenannten RAM, der Random Accessmaschinen auf.
Und ich habe mir gerade vorher auch schon nachgefragt und die Antwort bekommen,
dass das in FG1 auch nur höchstens ja am Rande die RAM
vorgekommen ist oder auch in Algorithmen und Datenstrukturen auch ein bisschen.
Und deswegen wiederholen wir das in den früheren Jahren,
habe ich das wiederholt, zur Aufrichtung.
Und jetzt ist das dann möglicherweise was Neues. Das heißt,
um eben die P-RAM zu erklären, müssen wir erstmal
die RAM erklären und wissen, was da ist.
Nicht so, dass wir als erstes jetzt nochmal
die RAM hier haben
Und sie wissen aber bestimmt, was Random Access bedeutet, ne?
Nein, ja. Es gibt mir die Positionen und kriegt sofort einen Ofen eins.
Ja, genau. Also man kann direkt zugriffen, heißt Random.
Okay. Und die Konterskonfigurationsbild sieht dann ungefähr so aus.
Wir haben die bei der Turing-Maschine,
ein Eingabeband und ein Ausgabeband und eben eine Steuereinheit.
Und auf dem Eingabeband können aber, anders als bei der Turing-Maschine,
in jedem Feld eine beliebige Zahl, manchmal eine beliebige reelle Zahl,
manchmal eine beliebige ganze Zahlen eben stehen.
Und genau aus der Ausgabe fällt. So, und dann,
das wäre also jetzt das Eingabeband, genauso gibt es ein Ausgabeband.
Und dann gibt es einen Datenspeicher. Und dieser Datenspeicher,
der besteht eben aus Register. Insofern ist jetzt also dieser RAM
ein adäquateres Modell zu wirklichen von Neumann-Rechnern, als die Thuring-Maschine.
Und es gab im Laufe der Jahre auch immer wieder Beschriebungen,
auch in der Grundvorlesung,
die Thuring-Maschine rauszuschmeißen und alles mit der RAM zu machen,
was natürlich genauso geht
Aber aus den verschiedensten Gründen ist es das, unterblieben.
Ich hätte mal, ein Grund ist der,
weil bei der Tourithmann und so schön ganze Codierungen aufs Band schreiben
kann und das irgendwie etwas anschauerlöcher ist als bei der RAM.
Obwohl das alles hier hier genauso eben ging. Also hier
hat man wie bei einem von Neumann-Rechner jetzt als Speicher eine Menge von Registern,
wobei man das Nolte-Register als Akkumulator eben auszeichnet und Apriore die Anzahl der Register,
also nicht beschränkt ist,
was jetzt natürlich nicht der Realität entsprechen
So, und dann haben wir außerdem noch ein Programmspeicher.
Das heißt also, anders als von Neumann-Rechnern ist das Programm
jetzt hier nicht im Datenspeichern gelagert, sondern extra.
Und wir haben einen Instruaction-Counter, der auf den entsprechenden Programmbefehl zeigt.
Wir haben eine Alu, eine Autnetic Logical Unit,
die also die Operationen ausführt. Und wir haben einen Address-Counter,
der dann die entsprechenden Registern-Adressen eben zählt.
Ja, die nächste Folie bezieht sich dann darauf,
dass sie sich erinnern sollen,
wie das Bild in
Außer aber, das gibt es ja jetzt noch nicht mehr,
nicht, aber es ist eh,
im Prinzip ist das ähnlich, nur ein bisschen anderes Bild.
So, wie funktioniert das jetzt im Einzelnen? Nicht,
da haben wir jetzt zum Beispiel die Operationen, Read,
Ride, Load, Stall, at Subjump, Jump,
Jump Zero und Jump Creator, then Zero.
Und das sind Operationen, ein Operanten, Operationen,
die folgende Operationen haben. Wir können da immer schreiben,
gleich, eh, dann bedeutet das die Zahl I selber,
also Read eh, oder sagen wir mal Ride I heißt,
White Ry,
oder Shree heißt,
schreibe die 3 auf das Band
Und entsprechend auch ein Load heißt das entsprechende Lese,
dass die Operation in den Akkumulator. Nicht,
und das kann also außer der Zahl selber auch der Inhalt des Registers e sein,
weil das sozusagen der Standardfall ist, ist das sozusagen ohne besondere Bezeichnung.
Und dann gibt es auch noch die indirekte Adressierung mit Sterni,
dass man also in dem Register eh die Adresse eines Registers
J nachsieht und dessen Wert dann eben nimmt.
Ja, und nicht, und bei den Befehls
Bei den Befehlsadressen, da hat man dann eben tatsächlich nur,
also bei den Befehlssprunggefehlen, nur die Befehlsadressen.
Ja, und die Wirkung ist jetzt folgende, nicht bei dem Load.
Dann habe ich jetzt irgendwie, das ist sozusagen der Position des Lese-Copes,
Kopf ist auf A, der lädt das dann in das Register null,
was der Akkumulator ist.
Und bei Story wird das entsprechende dann in den Register
eh geladen und hier haben wir die entsprechende indirekte Adressierung,
dass erst das eh als Adresse interpretiert wird und dann in der Adresse dann die neue Adresse gesucht wird.
Ja, und wie üblich bei allen Operationensbefehlen muss alles mit
über den Akkumulator passieren. Bin ich bei dem Arzt,
wird also der Wert genommen und auf den Wert des Akkumulators drauf,
Adias, subtrahiert mal genommen und definiert und dividiert.
Ja, nicht und das V von Armen,
er kann also ein entsprechender Wert sein, wo wir,
wie wir das eben vorher eben besprochen hatten, die Rette.
Die speichert für Programm und Daten, der jetzt so in
einem Access mit den Eingabe- und Ausgabebändern sind die auch anders?
Nee, die werden, die werden sukzessive weitergelesen,
so wie das bei der Touring-Maschine ist, nicht genau. So. Nicht,
wobei man oft, wie bei der Touring-Maschine,
kennen sie ja auch den Fall,
dass man auf Eingabe- und Ausgabebänder verzichtet und sagt,
die Eingabe steht schon drin,
dann macht man das bei der RAM auch so,
das steht schon die Eingabe in den Registern, das wäre da eine Vereinfachung.
So, ja, und jetzt sehen Sie hier nochmal eine genauere Beschreibung,
der Befehle-Ready heißt das derzeitige Eintag, Gabelsymbol,
wird in das entsprechende Register gespeichert, nicht wobei derzeitiges heißt,
der Kopf wird immer eins weiter,
weiter belegt
Ja, das andere ist übrig,
das gucken wir uns vielleicht dann mal an einem Beispiel an.
Hier sowas. Da haben wir am Anfang ein Red 1,
das heißt, es wird aus dem aus dem Lesekopf gelesen und
das Ganze in das Register 1 gelesen und das möge jetzt mal die 2 sein.
So, und dann haben wir ein Load 1,
das heißt also, es wird derselbe Wert,
der gerade gelesen wird, in den Akkumulator geladen und dann wird gesprungen,
wenn der positiv Ist und nach Post springen wir dann.
Das ist also der Fall. Und dann kommen wir da entsprechend hin.
Nicht und recht daneben sehen Sie jetzt schon Abkürzungen.
Nicht also das Ried 1 können wir hier auch als Read
R1 abkürzen. Und das hier ist ja nichts anderes,
als wenn der Wert des Registers 1,
kleiner gleich null ist, dann schreibe ich null.
Und sonst springe ich weiter, weil ja dann die Sprungabpresse gleich dahinter ist.
Und was rechts steht, ist das jetzt,
was jetzt jetzt schon man eben eine Assembler-artige Sprache ist,
die auch mit mehr Adressbefehlen arbeitet und mit der man dann meistens die Algorithmen formuliert.
Wobei das sozusagen streng genommen immer nur eine Abkürzung von dem ist,
was da da links steht. Und das wird auch dadurch gerechtfertigt,
dass wir später diese Komplexität durch diese Unnotation abkürzen.
Und sie wissen ja, die ist ja ziemlich ungenau.
Und die Wohnnotation ist unabhängig von einem konstanten Faktor.
Das drückt sich dadurch aus, wenn sie die Übersetzung machen,
dann haben sie bei dem ersten Befehl einen durch einen ersetzt,
bei dem zweiten drei durch einen.
Und das bleibt dann also immer ein solcher linearer Faktor
Sobald wir eben eine Konstante durch die Eins eben ersetzen,
darf man natürlich nicht mit der ganzen Schleife machen.
Ja, und hier ging es dann jetzt weiter.
Da haben wir jetzt sozusagen hier an dieser Stelle
der Wert von Register 1 wird nach Register 2 geschaufelt.
Das heißt, der Wert von 1 wird in den Akku geladen, nach zwei gespeichert.
Und jetzt wird dann sozusagen der Akku dann wieder hergestellt. Ja,
durch das wird er dann so aussehen und das machen wir
jetzt dann am besten mal gleich mit dem mit dem abgekürzten Befehl.
Und Sie sehen, was da rauskommen soll oder was
in dem Beispiel dargestellt ist, die Funktion N hoch N.
Das heißt also, entweder zwei Einkommen sollte dahinterher zwei hoch zwei rauskommen.
Und das würde manche jetzt in dem Pseudo-Code,
nennt man das dann auch, sozusagen ein abkürzender Code von dem einerseits,
andererseits auch Pseudo, weil das so ähnlich aussieht wie allgäuartige Sprachen,
aber nicht daran gedacht ist, dass das irgendwo implementiert ist,
sondern das wird in der theoretischen Informatik eben nur benutzt,
damit man das als Algorithmus eben lesen kann
Nicht und dann würde das also genauso lesen,
sehen wir, lesen die Eingabe in das Register 1.
Wir laden den Akku und so weiter.
Und das kann man jetzt also weiter durchspielen.
Und wenn Sie dann mal machen, wenn Sie Lust haben.
Und am Schluss sollte dann da in dem R2,
nicht das R2 ist das Ergebnis, da steht hier Wright 2,
sollte dann das Ergebnis 4 da entstehen.
Ja, und das machen wir so pingelig genau,
weil wir jetzt ja eben nicht korrekt hat,
des Algorithmus untersuchen, sondern dessen Komplexität.
Und da kommt es ja darauf an, was die einzelnen Befehle kosten.
Und da haben wir jetzt, also folgendes,
es gibt ein sogenanntes Uniformes, Zeitmaß und ein Uniformes Platzmaß.
Das bedeutet, beim Uniformen Zeitmaß ein Schritt eine Zeiteinheit,
wobei wir nur die Einheiten zählen und nicht konkrete Millisekunden oder dergleichen.
Und beim Platz auch nur die Einheiten,
zum Beispiel
ein Register
Das ist aber jetzt anders als bei der Thuring-Maschine.
Insofern unrealistisch, weil wir ja gesehen hatten,
sowohl das Eingabeband als auch die Register können beliebig große Zahlen enthalten.
Und das wäre ja unfair, eine Riesenzahl genauso zu behandeln wie eine kleine.
Und deswegen ergibt es da noch das sogenannte Logarithmischel-Maß,
wo man dann den Logarithmus des Wertes nimmt.
Also zweier Logarithmus ist da gemeint. Kann sich jemand,
weiß jemand,
warum man den Logarithmus und nicht zum Beispiel Quadrat oder Wurzel oder was anderes,
Dem liegt wahrscheinlich die Intuition zugrunde,
dass wir da Zahlen drin haben und die uns dann wahrscheinlich
natürliche Zahlen oder etwas verwandt ist und die irgendwie in einem Stellenwertsystem ausdrücken und dann nur eine Rippenspiele stellen.
Genau, nicht nur bei BNR-Zahlen haben ist,
dass der Zweier-Logarithmus ist, die Länge der Zahlen-Darstellung haben wir vollkommen recht.
Und das würde dann ja dann in den Kosten sich auch niederschlagen. Ja,
und genauso müssen wir dann natürlich auch den Operantenkosten zuordnen,
die heißen dann Tee von A. Nicht wobei bei dem Gleich,
das war ja die Zahl selber, dann nehmen wir den Logarhythmus.
Wenn wir das nur aber nur das I haben,
haben wir einfach nicht nur den Logarhythmus, sondern noch sowas.
Ich wollte das als Frage stellen, aber die Antwort steht ja schon dahinter,
nicht weil wir ja neben dem Wert auch noch die Adresse bewerten müssen.
Nicht nur wird bei kleinen Rechnern sagen, wird man sagen,
ja, die Adresse, was kann das schon viel sein?
Aber in der theoretischen Informatik, wenn man das nicht machen würde,
könnte man die tollsten Sachen machen, indem man wilde Dinge,
Riesen, Bremszahlen und so weiter in der Adresse kodiert.
Nicht um das auszuschließen, wird auch die Adresse kodiert,
nicht um bei großen Rechnern kann das ja vielleicht auch eine praktische Bedeutung haben.
Nicht um entsprechend muss man bei der indirekten Adressierung zwei Adressen berücksichtigen.
Und deswegen hat man da eine dreifache Ersum.
So, und jetzt kommen wir dann zur Zeit der Komplexität
Haben Sie mich vielleicht auch schon die Definition gesehen,
TV Time, A, ist der Algorithmus.
Und dann gibt es noch eine natürliche Zahl N. Der kann halt sagen,
was das bedeutet, wenn ich sage,
ein Algorithmus hat einen Algorithmus A, hat die Komplexität TA von N,
vielleicht nochmal jemand anderes, in den hinteren Reihen.
Sonst sie, ja? Ist die Eingabe länger üblicherweise?
Ja. Die haben mehr davon gemessen. Und das Ganze ist eine Funktion,
die in Abhängigkeit von dieser Eingabelänge angeht,
wie viele Zeiteinheiten da irgendwo durch zur Ausführung benötigt,
dass man dann eben meistens in große Ohnnotationen Ja,
also zunächst mal lassen wir mal die Urnotation weg.
Das ist also die Anzahl der Schritte,
die man bei der Eingabe der Eingabe der Länge N haben.
Warum schreibt man da als Argument da nicht die Eingabe rein?
Denn für verschiedene Eingaben könnte es doch verschiedene Längen geben.
Ja, das muss sich entweder ein Desktoplace-World-Case oder wunderbar anschauen.
Ja. Also eine allgemeine Soeingabe. Genau. Also in
dem Sinne müssen Sie Ihre Aussage korrigieren. Das ist nicht
... Einer, einer, oder? Ich würde sagen,
er hat wieder gesagt, es kommt drauf an,
was man Okay, aber hier haben wir den Worst Case.
Also nimmt man die maximale, nicht? Das heißt also
, wir könnten, wir haben jetzt folgende Situation.
Wir haben jetzt irgendwie eine Eingabe W als Wort W
und die Länge des Wortes W sei eben N.
Und da könnten wir zum Beispiel ja ein Wort W1 und
ein Wort W2 und ein Wort W3 haben, die alle,
die Länge N haben.
Nicht nur könnte das eine kurz sein,
das zweite lang und das dritte Mittel lang,
dann nimmt man das Maximum sozusagen den Worst Case.
So. Aber wenn wir jetzt eine nicht-deterministische Maschine haben,
dann können wir doch bei dem einen Wort ja hier auch noch verschiedene Rechnungen haben.
Sogar unnendliche. Was nennt man denn da?
Auch den Worst Case
Ja. Heverage Case. Ja, ich kenne andere Regeln,
aber das ist ja nun die Erfahrungssache, ja.
Ja, wieder? Die Rechnung, die du belehren würdest,
ist ein bisschen koblematisch, aber würde mich trotzdem unendlich rauskriegen.
In dem Fall, ja, genau. Weil nicht die terministischen Maschinen,
sagt man ja normalerweise, eine Rechnung davon führt zu einem Ergebnis,
die sie betrachtet, weil ich weiß ja jetzt nicht,
dass man manchmal mehrere Rechnungen hat, die zu einem Ergebnis führen.
Ja, wissen Sie das? Ne, jetzt mal halt geraten,
weil könnte man nicht entsprechend das Ergebnis der Rechnung entsprechend gewichten
der Wahrscheinlichkeit, Kann man alles machen, ja,
aber das führt eben sozusagen mit Wahrscheinlichkeiten und provabellistischen Algorithmen,
ist ein Feld für sich. Wenn man nicht mit Wahrscheinlichkeiten rechnet,
dann nimmt man in der Tat den Wert der kürzesten Rechnung.
Man könnte mit ihrer Argumentation sagen, was bleibt einem denn anders übrig.
Aber das hat auch einen tieferen Grund, weil nicht die Terministiothuring-Maschinen,
die gibt es ja eigentlich gar nicht, sondern das ist ein theoretisches Modell,
wo man im Grunde nur ein Schema definiert mit verschiedenen Möglichkeiten.
Und ein korrektes Modell, ein realistisches Modell, wird ja immer
eine deterministische Turing-Maschine sein, die dieses schematische Modell simuliert.
Und die geht zum Beispiel so vor, diese simulierende Turing-Maschine,
dass sie in der Breitensuche hier durchläuft und die trifft dann hoffentlich auf das Kürzeste.
Und da man da, die diese Komplexität meint, nimmt man da.
Aber das ist jetzt nur ein Exkurs. Wir haben hier keine nicht deterministischen Maschinen,
ja, nicht direkt, sondern das Erste genügt,
sodass wir dann also mit der folgenden Definition auskommen.
Die Uniforme Zeitkomplexität eines Rahmenprogramms A ist jetzt die maximale Anzahl TA von N,
der Summen der Uniformen Kosten aller Schritte des Programms, Bis zur Termination,
wobei das Maximum über alle Eingaben der Uniformen größer eng gebildet wird.
Also wenn man sagt, maximal muss man auch immer sagen,
worüber das Maximum gebildet wird.
Und das ist also die Antwort. Nicht und die Lücken,
die das sind, die beziehen sich jetzt auf das logarithmische Maß.
Das würde dann eben genauso aussehen. Man kann statt dem Uniformmaßen
auch das logarithmische nehmen, was dann eben realistischer wäre.
So, und dasselbe gibt es dann auch mit der Platzkomplexität. Nicht,
wo man jetzt, naja, ich lese mal vor,
also das Uniformen beziehungsweise logarithmische, Plaxkomplexität eines Randprogrammes,
A ist die maximale Summe aller Uniformen, logorithmischen Kosten aller Register,
die dieses Programm bis zur Termination adressiert,
wobei das Maximum über alle Eingaben der Uniformengröße eng gebildet wird.
Das heißt, wir haben hier sozusagen keine Apreori-Opergrenze der Anzahl der Riskgeister,
sondern wir können so vorstellen,
wenn der Algorithmus also mehr braucht als vorhanden sind,
dann kauft er sich welche dazu und man guckt hinterher,
wie viel er gebraucht hat und das zählt man dann als Platzkomplexität.
Ja, dann gucken wir uns das mal für unser Programm eben an.
Warum ist denn jetzt die, also das wäre jetzt der Algorithmus,
den wir hatten und hier hätten wir sozusagen den Pseudo-Algorithmus,
warum ist denn jetzt hier Die haben wir jetzt diese Kosten,
da haben wir jetzt eine Tabelle mit Uniformen und Logarithmischen Kosten.
Erstmal, warum haben wir die Plattkomplexe, dieses einfachste Ohr von 1?
Ja. 1,82, über 3,00 rum. Ja,
also eine konstante Anzahl von Registern und da das bis auf einen linearen Fakt,
also eine konstante ist, ist das also um O von 1.
Und wenn wir irgendwie immer neue Register anschmeißen würden,
wäre das anders.
Ja, und Zeitkomplexität, der hat siebenmals um 1,00 m.
Weißt du, das ist das einzige, was,
also ab der Weirdstadt, die wird halt Exponenten,
wenn sich N erhöht, dann wird die eine mehr.
Okay, die wird also N mal durchlaufen. Und warum
ändert sich das jetzt in der logarithmischen Komplexität zu Endquadrat-Login?
Ja, das sind die einzelnen Komplexitäten der Operationen.
Ja. Zum Beispiel der Vergie, ey, ja,
Vergleichsoperation, also die Jump-Creator dann, Zero und so weiter,
mit berücksichtigen müssen.
Und die Ankomplexität eben von der Eingabe länger abhängt,
weil er mit dieser Eingabe arbeitet.
Ja, gucken wir mal, was man an der Erklärung
hier dazu sah. Da haben wir also diese Schleife,
was sie ja schon gesagt haben
Und da haben wir zum Beispiel die Mult-Operation.
Und durch die Mult-Operation wird ja zwischendurch immer Werte dieser Größe N-Hoch-E.
Und dann wird das nächste End drauf multipliziert. Und wenn
wir uns das mal anschauen, davon den Logarithmus nehmen,
aus dem Mal wird ein Plus. Und aus dem Hoch,
ja, und das kann man abschätzen, also L-Hoch-Logarithmus,
N-Hoch-E plus L., das kann man abschätzen mit N-Plus 1, mal Logarithmus RN.
Und das wird ja maximal über das EN, Das ist
ja schon ein Enma-Loggerhythmus-N haben. Und dann werden wir noch,
was wir vorher schon hatten, einmal die Schleife durchlaufen,
sodass auch noch ein NR drauf, ein Elkorn.
Nicht oder genauer gesagt, ist es so,
wir haben jetzt erst einschlafen, Durchlauf, zwei Schleifen,
Durchläufe, drei und so weiter.
Und sie wissen ja, die Summe der ersten Zahlen ist
von der Ordnung ein Quadrat. Genauer gesagt,
die Summe der ersten ungeraden Zahlen ist genau ein Quadrat,
aber wenn wir alle nehmen, auch ungefähr, ja,
steht das ungefähr ein Reitdörfer,
der nur noch prozentual ist
Nee, weiß ich jetzt auch nicht, wo das herkommt,
aber es ist irgendwie nicht genau gleich, ne?
Ja, wir gesetzen ja eigentlich schon, ne?
Finden sie? Sehr exponent, bekannt nach vorne gezogen werden,
wie Marlogorit, muss man Endfluss übersetzen.
Vielleicht auch, ja. Irgendwie kann ich das jetzt auch nicht
so beantworten, muss ich noch mal nachtragen, ne?
Okay. Bitte? Das Angebnis, um vorher gleichzeitig mal
zu spalten. Ja, genau. Genau,
so lange können wir das eben machen, ne, genau.
Vielleicht hängen hängt das dazu damit zusammen,
dass da die Basis weggelassen ist
So, nächstes Thema ist jetzt der Bezug zur Turing-Maschine.
Also wir wollen jetzt Turing-Maschine mit der RAM vergleichen.
Und das heißt also folgendes, folgendes.
Wir haben jetzt auf der einen Seite die RAM,
wie eben beschrieben, auf der anderen Seite die Turing-Maschine.
Sie erinnern sich ja, die hatten Arbeitsband und hier eine Steuereinheit.
Und in der ausführlichen Form habt ihr auch noch ein Einbarg-Abeband und ein Ausgabeband,
was man dann oft weglässt, wie auch weiter RAM,
indem man sagt, ja,
das Arbeitsband oder die Register werden als Eingabeband eben genommen.
So, und Wenn wir jetzt eine Turing-Maschine haben und dasselbe erreichen wollen durch eine RAM,
meint sie, dass das dann schneller geht oder?
Nicht eine RAM ist doch eigentlich durch den direkten Zugriff schneller
als eine andere. Nee, nämlich sie, ja.
Emotion hier, nein. Von See? Es kommt wahrscheinlich
darauf an, welchen Algorithmus man ausführt. Also den häufigsten,
wahlfreien Zugang benötigt wird werden oder ob der RAM schneller laufen.
Aber es gibt wahrscheinlich andere Algorithmen, Ja. Nicht,
also da haben sie völlig recht. Das kann schneller gehen,
aber dann würde man die spezielle Struktur der Algorithmen ausnutzen,
wo man dann eben die, wo die Thüringen-Maschine sehr langsam ist,
weil die möglicherweise endlos von der linken Seite des Bandes zur rechten Seite erlaufen muss.
Aber in der Simulation können wir in der allgemeinen Simulation,
kann man das natürlich nicht ausnutzen, weil Simulation,
wenn man das sozusagen problemunabhängig macht, heißt das ja,
dass man jeden Befehl der Zurückmaschine durch einen entsprechenden auf der RAM simuliert.
Und dann braucht man eben mehr,
weil man ja noch was für die Organisation der Simulation
eben braucht
Aber dass die Rahmens schneller ist als die Touring-Maschine, kann man daran sehen,
dass der Zeitverlust bei dem umgekehrten Fall nachher größer ist.
Dadurch drückt sich das dann eben doch aus.
Aber bleiben wir erst mal bei dem Fall,
dass wir jetzt also die Touring-Maschine durch eine Rahmen simulieren wollen.
Und die Simulation, also wenn die Touring-Maschine Endschritte braucht,
dann braucht die Rahmen die simulierende Rahmen, TVN-Log-End-Log-End-Log-End-Kram.
Und in der umgekehrten Richtung wird das also schlimmer sein.
Da wird man dann das Log-TVN auch noch durch einen TVN
ersetzen,
sodass man T-Quadrat von
Dann bekommt. Also das drückt also aus,
dass die RAM in diesem Sinne nicht schneller ist,
aber die einzelne Simulation natürlich nicht.
Und wir gucken jetzt an, wie das im Einzelnen funktionieren kann.
Also haben wir den folgenden Satz. Eine Tee von N,
zeitbeschränkte Mehrbahn-Thüring-Maschine, kann durch eine RAM plus simuliert werden.
Nicht nur Ramp plus ist eine, die nicht die Multiplikation
und die Division nimmt. Das nimmt man meistens,
weil Multiplikation und Division natürlich sehr mächtige Operationen sind, die im Uniformen Mars,
Ofon-TVN-Zeit beschränkt ist und die im Logarhythmischen im HSO von TVN-Login-Zeit beschränkt ist.
Also das als Satz ausgedrückt, was wir eben schon mal kurz hatten.
Und das geht jetzt folgendermaßen. Nicht der erste Schritt ist der,
wir streichen, wir streichen ganz analog wie bei der Thuring-Maschine,
dass Eingabe- und Ausgabeband und arbeiten nur auf den Registern.
Das heißt, die Eingabe stellen wir uns hier in den Registern
vor und nicht hier steht Arbeitsband drin und Sie sehen hier,
der in den Anfang sehen wir hier auch.
Und die ersten beiden Register, die halten wir vorsichtshalber mal frei.
So, jetzt müssen wir uns überlegen,
wie sieht eine allgemeine Konfiguration der Thuring-Maschinen aus
Die besteht ja darin, dass wir einerseits wissen müssen,
wie der Zustand der Steuereinheit ist. Wir müssen wissen,
wie das Arbeitsband beschriftet ist und wir müssen wissen,
wo der Leihschreiblesekopf eben steht. Das heißt,
wir haben da vielleicht einen Zustand P. Wir haben die Position des Kopfes,
das ist vielleicht J gleich 6. Ja,
und das ist das, wäre es dann schon im Wesentlichen.
Und wir haben jetzt zum Beispiel vielleicht in dem Zustand P
folgende Operation oder wer kann sagen,
wie lest sich das in der Turing-Maschine
Jetzt mal hinten zur Abwechslung. Da habe ich mich gemeldet,
dann sehe ich, wir fitness. Wir lesen im eigenen
Moment das Zeichen, I, wir schreiben das Zeichen,
Oberwegen, die kommt noch nicht, die gehen hin.
Genau, und das müssen wir jetzt da drüben jetzt auch machen.
Und ich weiß nicht, ob Sie das sozusagen vorstellen können,
ob wie das geht. Wir müssen das Ganze jetzt,
also wir müssen irgendwo den Zustand Peter drüben speichern.
Wir müssen die Leseoperation durchführen. Dazu müssen wir wissen,
wie wir die Position des Kopfes simulieren und dann
die Operation eben ausführen
Ja, für den Akkumulator nehmen wir dazu, also den jeweiligen Zustand zu speichern.
Das Register R1, was wir freigehalten haben,
nehmen wir für die Position des Kopfes und das Arbeitsband haben wir ja schon.
Und nun geht es also los mit der Simulation. Das heißt,
wir können ja jetzt, was Sie gesagt haben, wenn das,
dann mache das als eine bedingte Anweisung auf Schreiben jetzt im Pseudo-Code auf den Rahmen.
Und wir fragen ab, ob jetzt der Zustand gleich P ist,
das kann auch eine Zahl oder ist an der Zahl,
Und das ist ja, der Akkumulator, also das Register 0, Ernuel.
Also wenn das der Fall ist, dann programmieren wir da
drüben das, was wir hier auch machen wollen.
Wir fragen ab, ob wir gerade das Zeichen eh lesen.
Nicht das auch als Zahl kodiert. Und das müssen wir ja
genau an der Stelle lesen, wo der Schreiblesekopf liest.
Und den haben wir ja im Regist,
also die Position haben wir im Register R1,
also müssen wir das als Adresse auffassen und in die Position 6 gucken.
Und da lesen wir, dass sie,
nicht nach sehen wir, gerade für solche Sachen brauchen wir
die indirekte Also diese Art der Adressierung dann auf jeden Fall
und wird da insofern dann eben auch ausgenutzt.
Ja, bitte? Dann bin ich direkt auf Adressierung, mal den Sterb.
Ja, ja, nee, das ist eine direkte Adressierung.
Ich habe ja auch ein bisschen gezirkert. Okay, aber
wir brauchen diese Adressierung. So, was machen wir dann?
Dann schreiben wir da rein das U. Das ist immer noch
dieselbe Adresse. Und was müssen wir dann noch machen?
Wir müssen den Kopf nach links bewegen. Das heißt ja
, wir müssen die sechs in eine fünf umwandeln.
Ist jetzt auch schon passiert. Das ist eine einfache Substraktion
Und dann sind wir fast fertig. Wir müssen noch den
Zustand ändern. Wir schreiben oben in den Register null.
Ich schreiben wir statt in Petersku. Okay. Ja,
das war jetzt also dann die Richtung.
Jetzt kommen wir zur anderen Richtung. Da sagt der Satz,
eine im logarithmischen Mars Tee pro Tee von N zeitbeschränkte RAM Plus,
das heißt Rahmen ohne Multiplikation und Digension,
kann durch eine Ohr von Teequadratend zeitbeschränkte Fünfband deterministische Uturingmaschine
simuliert werden
Nicht, das hängt damit zusammen,
dass wir uns jetzt bei der Semoulation, von rechts nach links,
jetzt einen großen Luxus leisten und statt einem Arbeitsband 5 dann eben annehmen.
Ja, jetzt mal die Frage an Sie. Macht das
denn was aus, wenn ich jetzt nun das entsprechende jetzt
mit einer Einbahn-Touring-Maschine machen würde, würde das das Ergebnis ändern?
Jetzt haben Sie noch mal hinten die Chance. Wie hat es gehört,
dass die alle in die Palenz und egal die Studenten werden.
Ja, und woran liegt das? Weil wir alles wieder
auf Einbahn mehr oder weniger brauchen. Ja,
aber wenn ich das so mache, also ich habe hier diese beiden Bänder,
Und ich schreibe das eine jetzt dahinter,
dann muss ich doch hier unheimlich viel rennen,
um dahin zu kommen.
Jetzt haben wir nochmal die Chance, das zu multifizieren.
Oder wir sind ja nicht, ja, ja.
Das würde ja nicht ändern, dass es trotzdem kurz mehr möglich ist.
Doch, doch, dann würde ich ja immer die Komplexität
der Länge des Bandes brauchen. Da braucht man einen Trick
, ja. Sie waren der Erste, glaube ich.
Der Trick ist, dass man das interliebig sozusagen.
Ja, genau, nicht. Nicht das geht,
gibt es verschiedene Möglichkeiten. Die eine Möglichkeit besteht darin,
dass man, wenn das sozusagen die Zellen ein,
zwei sind und das sind die Zellen B,
dann nennt man neues Band, wo man eins a,
zwei B und sozusagen das abwechselnd macht.
Dann braucht man nicht so viel Rennen. Eine andere Möglichkeit ist,
dass man das eine Band, dass man sozusagen diese Paare kodiert
und das als Einband auffasst und ein neues Symbol 1a hat.
Dann muss man das entsprechend dann wieder kodieren, welche Projektion gemeint ist.
So gibt es also verschiedene Tricks, aber das Ergebnis haben sie
ja schon vorher gesagt, das macht also nichts aus.
Gut, also wir haben leisten uns den Luxus mit
fünf Bändern und das hat den Grund darin in folgenden.
Wir haben also Und jetzt im ersten Band oben erkennen sie vielleicht,
haben wir jetzt unseren Akkumulator dargestellt. Und zwar mit C1,
C2 und so weiter. Und davor haben wir jetzt die Adressen und durch dieses Charpe des Sonderzeichen,
haben wir das voneinander getrennt,
sodass wenn wir hier im Register 2 das C2 lesen wollen,
gehen wir hier oben zur Adresse i2 und lesen da das entsprechende C2. So,
das Eingabeband haben wir jetzt aus Luxus,
haben wir jetzt also auch nochmal dargestellt,
also jetzt diesmal mit Eingabeband,
das ist das erste,
zweite,
dritte in der Band
In dem zweiten Band, das benutzen wir sehr ineffizient.
Da haben wir nur den Akkumulator drin, weil wir den
ja häufiger brauchen. Und jetzt wollen wir mal die Simulation
von der indirekten Adressierung von Art, Stern, 25 darstellen.
Das könnte also folgendermaßen gehen. Ja, in der Tat
werden wir nicht das T-Quadrat von N berechnen als Komplexität,
sondern T von N mal S von N.
Und das geht ja dann jetzt folgendermaßen. Wir müssten ja,
das heißt ja, wir addieren den Inhalt des Registers,
was wir in dem Register adressierten Register finden auf den Akkumulator.
Das heißt, wir müssen erst an die Stelle des Registers gehen,
doch die Adresse als neue Adresse interpretieren,
dann da hingehen und doch dann die 25 dann eben an addieren.
So, ja, das kann man sich ja vorstellen,
wie das funktioniert, eben mit dem entsprechenden Rennerei auf dem Band.
Aber jetzt die Frage, wie kommt denn jetzt
das T von N-N-N-S von N
Zustande in Hinblick jetzt auf diese Simulation, die wir jetzt da vorgestellt haben.
Nicht also das, ja, bitte? S von der NSI-Platzkomplexe,
space, as we space, ja, Entschuldigung,
ja, ein Tavy-Time. Also die Frage ist,
wie, also das T von Anders könnte ja daher kommen,
dass wir, wenn die RAM-TVN-Schritte machen, simulieren wir das ganze TVN-N.
Das heißt, das ganze läuft da heraus hinauf,
dass wir vielleicht S von Endschritte brauchen für einen einzigen Befehl.
Jetzt sehe ich mal zur Abwechslung
Als wir SVN kommen daher, dass wir euch daran rennen müssen.
Also wenn wir jetzt drei Register brauchen,
müssen wir dann sozusagen dreimal auf dem Datenspeicherwand das raussuchen lassen.
Ja, also richtig. Wir müssen ja,
wir müssen ja im schlimmsten Falle so viele Schritte machen,
wie unser Band lang ist.
Und das wird ja durch das Ende ausgedrückt.
Aber wieso können wir dann das S von N durch ein
Tee von N ersetzen? Kann man denn sagen,
dass immer gilt, Tee von N ist größer gleich S
von N
Kann man das sagen? Seht zur Abwechslung? Ich weiß nicht,
ob es darauf hinaus will, aber es ist ein Satz
über die Zusammenhänge zwischen der Komplexität zu klassen.
Nee, das ist zu hoch gegriffen, das ist zu hoch gegriffen,
ja? Wir brauchen ja unengen Speicherressen dazu zu treiben,
haben wir ja schon mindestens die Zeit.
Das ist der Punkt. Die Detoring-Maschine,
die fängt ja vielleicht mit wenig Platz an und die großen beiden Bandbandbedarfe,
die kommen ja dadurch zustande, dass der Speicherplatz requiriert wird.
Und das braucht immer einen Schritt. Und deswegen kann man
nicht weniger Schritte machen, als man einen Speicherplatz besucht.
Wird ja nur der Bes benutzt durch Platz. Und aus
diesem Grunde können wir dann also das T von N Mal S
von Anne, abschätzen zu TVNN, mal Tee von Anne.
Insofern wäre das sozusagen mit der SVN in der genau,
das ist genau das, was wir bewiesen haben.
Und das andere ist das nur, um das so
ein bisschen ähnlich darzustellen, wie wir das vorher hatten.
Sie haben noch eine Frage? Also ich kann mir überhaupt
nicht angefangen brauchen, sowas nicht abzuschätzen. Weil wir,
wenn wir S von Anne, also eine Million Speicherplätze brauchen,
dann müssen wir mindestens so viele Schritte machen, um die überhaupt anzusteuern.
Und wir zählen ja nur die Speicherplätze, die wir benutzen.
Klar jetzt, okay
So, das ist also der Punkt. Wir haben uns ausgedrückt haben.
Ja, nicht. Und dann kommen wir jetzt zu dem Ergebnis,
dass es jetzt hier in schönem, weiß schönen, weiß ich nicht,
aber in Englisch, weil das so eine berühmte Geschichte ist.
Also da steht jetzt, es ist existiert eine Standardklasse von Maschinenmodellen,
die unter anderem verschiedene Varianten von Thuring-Maschinen,
da kommt das mit den verschiedenen Bändern drin vor,
verschiedene Varianten von Rams,
die wir jetzt gar nicht behandelt haben,
mit logarithmischem Zeitmaß und Rams
mit Uniformen Zeitmaß und logarithmischen Platzmaß
Wenn wir also nur Standardoperationen wie Addition und dergleichen benutzen.
Und diese Klasse, die ist sozusagen wechselseitig simulierbar, in einem Polynomium-Zeitaufwand.
Das ist sozusagen die polynombielle Klasse. Und dem werden wir
dann in der nächsten Stunde die parallele Klasse gegenübersetzen,
die dann, von der spricht man dann von der exponentiellen Klasse,
was dann eine Wiederholung das Thema ist,
was sie bei den Petrinetzen auch schon gesehen hatten,
dass eben die Parallelarbeit oder das parallele Verhalten,
wie das auch bei den Petrinetzen ist,
zu einer exponentiellen Explosion des Zustandsraumes führen kann.
Und das findet man hier in der Komplexität dann eben auch wieder.
So, dann erstmal für heute und dann
bis zum nächsten Mal.