Also nochmal bei dem Thema Tourmächtigkeiten, die Vitonette ganz kurz.
Da habe ich noch zwei Frühlings zu.
Wo wir halt anhand dieses Automaten kurz durchgegangen sind,
was so ein Zielautomat macht und wie er arbeitet. Haben wir geschaut,
was man da so machen kann und haben jetzt geschaut,
ob das mit den Letzten auch so geht und haben dafür
uns halt überlegt, wie das so dargestellt werden kann.
Und haben gesagt, ja, irgendwie müssten wir hier
auf Null testen können. Das muss irgendwie gehen,
haben dann festgehalten, dass Peter jetzt im Allgemeinen tourmächtig sind.
Was bedeutet sie denn unendliche Strukturen, also unendlich viele Möglichkeiten darstellen müssten,
dann kann man das wieder so hinbekommen,
dass die PT-Netze die ihren endlichen Stellen und Transitionsmengen halt nicht.
Turing mächtig sind und dass das sozusagen all der Lösungen ist,
wie man diese Tests einbauen kann und diese Testmöglichkeit ist ja
genau komplementäre zum entsprechenden Schalten, wenn genügend Marken da sind.
Hier ist eben, es darf keine Macke da sein.
Es gibt auch Nividokanten mit,
es dürfen höchstens so und so viele Marken da drin sein.
Ich bin jetzt mal gar nicht so weit dazu gesagt,
weil solche Konzepte können sich Probleme natürlich vorstellen.
Man kann auch Sachen kombinieren mit Lesekanten und anderen Sachen dabei.
Es wird dann ganz spannend,
was man da für Konstrukte dann auch konstruieren kann,
dass das dann anschaulich bedeuten soll
Das geht aber, damit sind wir betrügmächtig,
das heißt bestimmte Sachen kann man gar nicht mehr entscheiden,
während wir jetzt durch so eine entscheidbare Fragen haben,
wir vorher diskutiert hatten,
ist das da jetzt entsprechend nicht mehr der Fall.
Also diese Inhibitor-Kante ist halt das, was uns dort am
stärksten jetzt hier interessiert hat, was eine der Lösungsmöglichkeiten war,
was aber nicht wirklich sozusagen die netztheoretischen Sachen wirklich gut abdeckt.
Wenn also mehrere solche Nichtmieterkannten hat,
kann man mehr machen und deswegen sind die mit Inhibitorkannten,
auch entsprechend tue ich mich, tue ich mächtig.
Wenn nur eine drin ist,
gibt es noch spezielle Effekte, die ich aber nicht mal
diskutieren will hier
Gut, das waren dann die Ideen,
dass wir Stellen Transitionsnetze haben, nö, in die Bitonitze,
ja, und haben wir gefärbte Netze mit endlichen Farbmengen,
also eine endliche Anzahl von Sachverhalten, die wir aus einfachen Netzen zusammenfalten,
oder von PT sitzen wir zusammenfalten.
Kommen wir auch nicht höher. Bleiben wir also weiterhin in den Bereichen,
dass wir nicht Touring mächtig sind,
aber jetzt in den beliebigen Farbmengen, also sprich unendlichen Farbmengen,
in dem Augenblick haben wir wieder die Touringmächtigkeit,
weil wir genau das darstellen können, was gerade ungünstig ist,
oder gerade günstig ist für die entsprechenden Darstellungsmöglichkeiten.
Dann mal, wenn höhere Netzen angelangt, da hatten wir die gefärbten Netze,
wobei wir da die Grundidee dieser Faltung, hier mit Informationsverlust,
hier entsprechend mit der Idee auf diese Kantenkünstlernetze,
die ich heute nicht wiederhole.
Und entsprechend dann auf die gefärbten Netze hin angetroffen haben. So,
das heißt, hier wird jetzt etwas zusammen gefaltet,
was wird nicht irgendwie projiziert, sodass man Informationen verliert,
sondern man behält alle wesentlichen Informationen in den Modellen.
Was verloren geht, ist vielleicht irgendeine räumliche Anordnung,
aber die steckt ohnehin nicht in den Modellen.
Das ist nur sozusagen zum grafischen Rauslesen,
aber keine Semantik
Ich die eine Stelle A und die andere Stelle B so anordne oder so oder so
, das ist letztendlich egal, das hat keine Bedeutung.
Man liest zwar und guckt sozusagen,
wie es von links nach rechts und von oben nach unten,
als Westeuropäer sozusagen mal draufschaut hier,
wie wir es möglicherweise hier benutzen, das ist etwas,
was sozusagen keinerlei Bedeutung hat für den jetzt.
Man kann es alles auf einen Haufen zeichnen, das Netzmodell,
was dahinter steht und was dann ausgeführt wird durch irgendeine Ausführungsengine,
die schaut nur,
ist da irgendwo eine Verbindung zwischen diesen Kanten und Stellen und Transition
und benutzt das als Hintergrund für die Ausführung
So, und dass wir das da rein reportieren,
dass es auch ganz sinnvoll ist, da was zu machen.
Es mag sein, aber es hat keine Auswirkungen,
wenn wir das Netz halt komisch darstellen. Was man berücksichtigen muss,
wenn man Modelle entwirft und die vermeintlichen Informationen,
die man mühsam da anordnet, weil das ist ja im Kreis,
da ist jetzt eine bestimmte Darstellung, dass bestimmte Teile im Kreis laufen.
Das ist dann etwas,
was man zur Visualisierung macht und was man dann erklärt und
was man durch weitere Konventionen und sowas in ein Projekt vielleicht mit benutzen kann,
was aber nicht direkt im Modell drinsteckt.
Was da drin haben will, muss man extra Formalismen einführen.
Haben wir nicht. Wir haben einfach jetzt nur die malen gefärbten Netze,
wobei wir eben von den Kantenkonstantennetzen zu den Gefärbtennetzen mit entsprechenden Transitionsmodi gekommen sind.
Das heißt, wir haben bestimmte Modi, in denen wir diese Transition schalten können.
Haben wir dann hier nochmal genauer angeguckt und haben dann festgestellt,
okay, wir müssen irgendwie Guards einführen und diese Guards sorgen dafür,
dass die Kanten richtig zugeordnet werden.
Wobei wir auch hier jetzt wieder die Möglichkeit hatten, mit Informationsverlusten,
welche der Nacken nur auf welcher Sache im Vorbereich liegt,
aber das wird durch diese entsprechenden Zuordnungen und dass man das insgesamt konsistent hält,
welche Stellen auf welche Stellen hier abgebildet werden und wie die Kantenbeschriftungen benutzt werden,
um die Informationen über die Stellen abzubilden.
Das steckt halt hier oben entsprechend drin
Gut, so, dann haben wir die normales Netz.
Dann haben wir erst mal Variablenbindung. Das heißt,
wir gehen hin und gucken mal, was machen wir denn da?
Was können wir denn mit diesen Varianten eigentlich anstellen?
Wir können den möglichen, überlegen uns anschauen. Und wenn
ich ein Programm habe, was erst mal Brutforce guckt,
dann kann es auch sehr ungünstige, vielfältige Belegungsmöglichkeiten natürlich geben.
Das heißt, da kann man durchaus eine Menge Intelligenz reinstecken.
Findet ihr auch im Remio Source Code, den ihr euch angucken könnt,
wie sowas funktioniert und wie so was läuft.
Also was man interessiert und so was meinem Programmcode angucken möchte,
dann findet man dort sozusagen das praktische Informatiker sehr schöne Dinge,
wie man geschickt Algorithmen anordnet, was ja durchaus auch Unser Thema in unserem Allbereich ist.
So, dann faltet man das Ganze quasi zu Krankenkonstanten Netzen hier an dieser Stelle und hat noch Schaltendes,
Krankenkonstanten Netzes, beziehungsweise schalten das Gefärbten Netzes, was wir hier eigentlich darstellen,
weil wir dann sozusagen tiefes Gebunden ist und es zugewiesen ist,
wir dann den entsprechenden Modus haben, mit dem wir dann das Ganze schalten wollen.
Das ist dann das, was dabei letztendlich rauskommt.
Dann hatten wir das Gefärbte Netz als entsprechendes Neuen Tupel mit den einfachen Netzen. Wir hatten die Farbmengen,
wir hatten die Farbzuweisungsabbildung, die eben den entsprechenden Kanten und Stellen,
die entsprechenden Farbmengen zuweist,
die variable Menge, die mit einem Wertebereich auszustatten,
der sich an die entsprechenden Stellen, letztendlich und Transitionen,
natürlich anpassen muss, dann die entsprechenden Guards,
die jeder Transition eben Praktikat zuordnen und damit erhalten wir im Grunde auch Farben,
die nicht in den Farbmengen vorkommen, die an den Stellen liegen.
Das heißt, dadurch,
dass an einer Transition jetzt Dinge verwendet werden,
die irgendetwas anderes darstellen, wird liebige Ausdrücke sozusagen unterbringen können,
also entsprechend Praktikate, kann es hier zu einer Fahrtmenge kommen,
die wir an den Transitionsmoody wiederfinden,
die sich nicht direkt in einer der einzelnen Farbstellen wiederfindet
Das muss ich mal genauer angucken, was es eigentlich bedeutet.
Liegt daran, dass man ja verschiedene Bereiche zusammenführt und an
den Transitionen entsprechend beliebige Berechnungen durchführen kann.
Und an dieser Stelle sind die Prädikate jetzt sozusagen einfach
nur über die Variablen und so weiter.
Aber wenn ich hingehe und ich kann Operationen mit reinschreiben,
würde ich gerne entsprechend mathematische Funktionen mit ranschreiben oder zum Beispiel auch irgendeine funktionale Sprache.
ML zum Beispiel oder Java-Referenznetze nehmen und dann Java-Anschriften habe,
kann ich das Java-Ausdruck heranschreiben. Dann ist die Farbmenge dessen,
was dort in diesem Ausdruck berechnet werden kann,
vielleicht eine ganz andere als das,
was ich auf den Stellen liegen hätte,
weil ich bestimmte Kombinationen,
bestimmte Funktionen eingeführt habe
Ja, das ist also nochmal eine Sache, die da
ein bisschen hintersteht. Und die Kunst besteht darin für Simulatoren,
hier geschickt zu agieren und sich anzugucken beim Verhalten,
wie wird denn jetzt geschaltet, was ist denn da möglich?
Ist, wenn man so draufguckt, ganz einfach,
da sind zwei Marken da und dort, dann weiß ich doch,
was da hinkommt. Wenn man aber, sagen wir mal,
zehntausend solche Transitionen in einem großen Netz erstmal so allgemein vor sich liegen hätte,
dann muss man erstmal schon mal gucken, wer ist denn alles aktiviert überhaupt?
Also, wo liegen mit Marken, obwohl ich glaube,
das ist vom letzten Mal im Vorbereich vielleicht geändert,
nur um das schon mal darauf einzuschränken,
dass man sich nur die neuen Dinge anguckt.
Und dann muss man gucken,
wenn da jetzt auf solcher Stelle eben nicht zwei Marken,
sondern in 2000 Marken liegen, passiert denn dann in Bezug auf die Möglichkeiten,
denn hier drüben auch nochmal 2000 verschiedene Marken drauf liegen.
Und dann die möglichen Schaltmodi alle rauszusuchen und die wirklich alle auszurechnen und dann
auch sozusagen halbwegs fair zu schalten, dann wird es spannend.
Ja, und auch das findet ihr in einem Rindi-Werkzeug,
dass ihr euch nicht nur das Schalten sozusagen da angucken könnt,
auch die Bindungssuche, sondern ihr könnt euch da angucken,
wie sowas realisiert wird, dass man das entsprechend fair schaltet.
Das heißt, diese ganzen Belegungen, die da drin stecken nachher,
dass man dann auch irgendwann mal zum Zuge kommt. Dass es aber nicht dazu führt,
dass man first in first out sozusagen noch schaltet und also genau festlegen kann,
wenn der zuerst drin war, dann wird er auch zuerst geschaltet,
weil in dem Moment hätte man so eine Art FIFO-Netze und in dem Augenblick dann wieder Touri mächtig,
was wir nicht unbedingt direkt erreichen, weil wir uns nicht darauf verlassen,
dass das System diese Eigenschaft hat, sondern wir wollen an dieser Stelle einfach das generelle Schalten haben.
Ist das soweit verständlich, was ich dazu erzählt habe?
Ja, gut, okay. Wenn Fragen sind,
einfach nochmal nachhaken und ich erzähle gerne, was du,
werde nochmal beim nächsten Mal ein bisschen was zu Renio erzählen und
da können wir gerne nochmal ein bisschen mehr diskutieren über die Sachen.
Gut, dann ist eben das Wichtige,
diese Belegung der Variablen als Idee aus diesen Kantengewichtungen,
das Richtige halt rauszuholen,
indem wir uns die entsprechenden Abbildungen über diese Farbmengen und Multimengen
da rausholen
Und wir müssen Anfangsmarkierung haben. Und da haben wir
es eigentlich alles gesagt. Was habe ich jetzt damit?
Ich habe eine Systembeschreibung mit einem bestimmten Zustand und kann jetzt
von da aus durch das Schalten der einzelnen Transitionen,
wie in den PT-Netzen schon, ich meine,
ich schalte irgendeine Transition jetzt, in einen neuen Zustand überführen.
Und dann kann ich noch mal schalten und noch mal schalten,
noch mal schalten. Ich kann mir so Schaltfolgen angucken und
ich kann damit auch einen Reichbarkeitsgrafen aufbauen, nämlich von welcher Markierung,
die wir jetzt hier haben, kommen wir in die nächste.
Und die sieht dann eben entsprechend aufs Außenversen zu Header
angeguckt haben hier.
Das kommt jetzt gleich
Das war nicht scheitbar, wenn wir halt
irgendwelche Varianten in Willingen reinlegen, die nicht sinnvoll sind.
Das wollen wir gerade nicht haben. Jetzt haben wir also
die Markierung da drin. Das sind entsprechende Abbildungen,
die wir entsprechend als Vektoren und so weiter darstellen können.
Und wir sagen, dass eine Transition eben Better aktiviert ist
oder Transition schaltet. Also so ist also aktiviert,
indem der M Pfeil Tee Better hinschreiben und sagen jetzt,
diese Transition ist für diese Belegung aktiviert.
Wir können das auch mehrere Belegungen natürlich angeben,
wofür sie aktiviert ist, wenn sie schaltet,
muss sie sich genau eine ausschauen und muss entsprechend so berechnet werden,
dass wir sagen,
was ziehen wir denn ab und was packen wir drauf auf
die Stellen
Und das für die jeweiligen genauen Belegungen. Das wird aber
an der Transition einer Atoma festgelegt und wird nicht hinterher nochmal
irgendwie geändert oder kann sich durch Nebeneffekte wieder verändern.
Die Definition hier sagt aus, eine atomare Handlung und eine einmalige,
durchgängige Willigung der entsprechenden Variablen, ohne dass wir sie durch Nebeneffekt noch verändern können.
Ist natürlich in Programmiersprachen wieder ein Problem,
wenn ich dort einen Simulator habe und ich habe da Funktionen dran und
diese Funktionen haben Seiteneffekte und die Seiteneffekte berühren sozusagen die Werte,
die ich gerade als Voraussetzung für die Brechung meiner Funktion benutzt habe,
dann komme ich in Probleme.
Und vor allem, wenn die Variablen mit einmal,
wenn ich vorne oben eine 3 rausnehme,
das X und hinterher SSX oder 8 und ich packe eine 8 raus,
aber es sollte eigentlich Eine Drei sein bei der Bindung,
dann funktioniert das nicht mehr vom Draufgucken her.
Das ist nicht so definiert. Könnte man sich auch
so vorstellen, dass man es so macht.
Das will man aber bei der Definition hier nicht.
Gibt auch keine Petentimulatoren, die das bewusst so einbauen.
Dass man da Fehler einbauen kann und Sachen kaputt machen kann und
nicht richtig bedienen kann. Da findet ihr Werkzeuge zu,
aber bei Rino kann das eigentlich nicht passieren. Falls ihr das finden solltet,
gibt es immer noch die Ausschreibung von Olaf Gummer,
der darüber promoviert hat, der sagt für jeden Fehler im Kern von Rinho,
Gibt da einen kleinen aus, gibt es ein kleines Eis.
Die letzten zwölf Jahre, da kann Eis ausgeben müssen.
Also wenn ihr es schafft, da bei den Bindungssachen irgendwas
zu finden, dann könnt ihr es probieren.
Uns ist also kein Fehler im Kern von den Berechnungen der grundsätzlichen Algorithmen bekannt.
Das ist ähnlich wie diese Sachen von Knuss und so,
wo man sich halt nicht das Geld auszahlen lässt,
wenn man einen Fehler in seinen Sachen gefunden hat,
sondern dass man sich an die Wand hängt und sagt,
ich habe was gefunden,
du knusst einen Fehler hatte.
So ähnlich war Olaf, der hat gesagt,
seit zwölf Jahren kein Eis mehr ausgeben müssen
und ich hätte es eigentlich ganz gern Eis.
Von daher
Gut, okay, das so als Anekdote am Rande,
da waren wir letztes Mal, dass ich gesagt habe,
Darlehen überlegt das nochmal,
da kommen wir gleich nochmal drauf zu sprechen,
dass man da hinkommen muss mit den Counting Down und ja,
haben wir jetzt hier so eine Transition,
die Feuer zieht jetzt irgendwie Marken ab und hier so ein Color-Set und da machen wir auch so was.
So, was passiert da jetzt? Das war die Hausaufgabe
. Die Namensiede. Da müssen wir,
bräuchten wir sozusagen noch eine Kante,
die von der Transition wieder zurück zur Stelle geht und die Y drauf,
wir müssen einen entsprechenden Guard einführen
Das zum Beispiel die Sieben abzieht und die sechs draufpackt oder
die sechs abzieht und draufpacken, je nachdem.
Denn das sind ja unterschiedliche, ja,
oder so direkt, ich weiß nicht.
Genau. Das geht auch nicht. Ich möge mich,
das möglichst richtig zu machen, ja.
Ja, was meinen die anderen dazu? Wovon hängt das
ab? Ja, wie könnte ich das noch reinschreiben?
Man schreibt immer halbwegs größer als nur das.
Ja,
oder wohl euch noch
Kriegst du in der Nette natürlichen Zahlen, wobei das ja schon mal festgelegt ist, oben als Abhängiger. Genau. Ja,
aber das ist eine Sache, worauf man,
ich verfolge eher die Strategie des Kollegen da hinten,
dass man das was explizit reinschreiben sollte und nicht einfach immer beliebig durchzählen und so weiter,
womöglich ich da mal irgendwie eine andere Zahl drauf oder sowas oder andere Typen,
weil hier an diesem, an dieser Stelle steht kein,
steht nichts dran und dass die sieben dann auch garantiert daraus sein soll,
das ist also jetzt auf dieser Folge so,
aber wenn ich auf ein Netz gucke,
auf ein Programm gucke, will ich eigentlich eher streng typisieren,
ich will eher so ein Fan von strenger typisierten Sprachen,
weil die mir schon beim Aufschreiben oder beim programmieren schon sagen,
was los ist und nicht jetzt zur Laufzeit die Fehler schmeißen.
Behindert einen natürlich auch, das ist nicht so flexibel,
von daher, ja. Gut, damit haben wir also
zwei gleichgewichtige Dinge hier stehen. Nehmen wir mal an,
dass wir hier nur die sieben Mal runterzählen dürfen.
Wer ist der Meinung, dass die beiden Modelle nun gleich sind, semantisch?
Wer ist der Meinung, dass die nicht gleich sind?
Oh, einer, wer will sich nicht melden?
Okay, Kai. Auch noch einer, der sagt,
er hat die richtige Antwort.
Na gut, okay, das ist auch noch spannend.
Gut, also, Wie schaut es aus? Was spricht
dafür und was spricht dagegen, dass das Gleiche ist?
Erstmal spricht er dafür, fürs erste Draufgucken. Ja,
warum? Ich kann nicht leiden, wenn die Traditionen sich mal ausführen.
Genau. So, wie sieht er mit dem Reichbarkeitsgrafen aus?
Ist der gleich? Nicht gleich, aber Isomon. Ja,
okay, sehr schön. Sehr gut. Was da dran steht,
das eine, das eine mal back token,
das andere Mal ist das nicht mehr eine Zahl oder ein Element aus einer Farbmenge.
Gut, ist nicht gleich. Das ist jeder denkbare Erreichbarkeitsgraf gleich.
Oder Isomorph. Das könnte ich nämlich jetzt noch denken und weswegen würde ich argumentieren,
dass die nicht gleich sind, die beiden Modelle.
Womit wir uns auch schon ausführlich beschäftigt haben und wo ich gesagt habe,
was so die besondere Bedeutung ist von den,
warum ich Netze nehme und keine endlichen Automaten
Oder gekoppelte endlich Automatenleute. Ich habe jetzt eine Semantik gefragt.
Ich schalte Folgensemantik ist gleich. Einmal, zweimal, dreimal
, viermal. Kann man abbilden, hast du recht.
Das funktioniert. Aber was kann ich dann schon bei einer
etwas mächtigeren Semantik, die echt mächtiger ist, sehen,
bei der Schrittsemantik zum Beispiel?
Erstmal machen wir Schrittsemantik. Prozesshematik ist noch
ein Meer
Worauf will ich raus? Wem ist das jetzt klar?
Wir hätten Vermutung. Irgendeine? Ja. Okay. Ich habe gesagt,
ich will gerne so einen Schritt in einen Tick geben.
Wann unterscheidet sich die Folgensemantik von der Schrittsemantik?
Was brauche ich dafür in meinem System
Ja, richtig. Also, geht um.
Was ist die richtige Idee? Ja, ich weiß,
aber wegen selbst auch noch nicht so richtig.
Deswegen, man kann das mehrere hintereinander schalten. Nee,
das mehrere hintereinander schalten eben gerade nicht, sondern...
Oder gleichzeitig. Oder gleichzeitig, was jetzt? Ach so
. Ja, die anderen vielleicht auch noch mal so,
dass sie selbst noch mal drauf kommen.
Also eine der wichtigsten Dinge, warum wir mit Netzen hantieren
Nebenläufigkeit, ne? Genau. Das ist einer der Dinge
, ja? Die läuft gleich nicht so besprochen,
dass sie quasi nicht gleich genannt sind vorgerechnet haben dürfen.
Was für ein Netz haben wir hier? Ja, was
muss das? Ist das ein einfaches Netz? Kann nicht
sein. Gut, was haben wir? Welche Art von
Möglichkeit der Interpretation oder Semantik für solche PT-Netze haben wir gehabt?
Wir haben ja diese Stellen sozusagen zusammengefaltet. Das heißt,
welche Erklärungsmodelle hatten wir noch gehabt für die, lass mal,
ich habe das gesehen, kannst halt wieder runternehmen, dauert noch einen Moment.
Ich glaube, das ist mir zu wichtig,
als dass ich da jetzt so drüber weghirsche.
Ich habe zwar eigentlich ein ganz anderes Ziel heute anschaut,
aber dass so viele jetzt nicht wissen, ist mir das, das ist mir zu wichtig.
Ich versuche das jetzt mal, also die PT-Netze,
dafür hatten wir uns doch noch mit entsprechenden Prozessmodellen beschäftigt. Bevor zu den Prozessmodellen gekommen ist,
hat man beim Rennwagenbeispiel doch gesehen,
dass es entweder ich kann das Auto A haben oder das Auto B,
was sozusagen das Raddiesignal geben kann,
oder erst das Auto B und das Auto A. Und dann gab es den grauen Pfeil,
der nicht rot und laufer, Entschuldigung,
sondern ein grauer, der sozusagen auch das dargestellt hat,
dass sie beide gleichzeitig was sagen konnten und sagen könnten,
jo, beide sind fertig.
Das heißt, wir hatten die Nebenläufigkeit da schon gegeben,
dass wir nämlich sagen, in einem Schritt sagen die beide gleichzeitig ja.
Das war die Schritt-Semantik, die wir da gesehen hatten.
Erinnert ihr euch noch daran? Ja, gut,
okay. Das waren diese, genau diese Rauten,
die wir in diesem Erreitbarkeitsgrafen haben, wenn sagen wir,
können wir in der A und B gehen oder RSB
und dann
Oder wir können einmal gerade durchlaufen und sagen, das ist
ein Schritt, in dem wir das beides gleichzeitig gehen.
Die nächste Version von Semantik, die wir uns angeguckt haben,
war die Prozessemantik, wo wir gesagt haben,
wir können die Transition A und danach die Transition B machen.
Und parallel dazu machen wir C,
was ich da nicht mehr ganz so einfach durch eine einfache Raute darstellen lassen kann,
weil ich ja A und C entweder zusammennehmen kann oder B und C,
aber nicht A, C und das B,
was ich dann da unten als einzelne Transition hatte,
das können jetzt Schrittsemantik immer nur zwei Arten von Parallelschaltungen sozusagen haben.
Aber Philipp Two come Currency Semantik hat mir als Prozess eben gerade,
ja okay, wir können AC machen und unten
das B parallel dazu
So, das ist diese Vorstimmung dahinter haben. Jetzt ist meine Frage,
wenn ich mir das Prozessmodell von diesen beiden Sachen angucke oder auch nur schon die entsprechende Schrittsemantik.
Welche Schritte kann ich jetzt in meinem System denn jetzt finden?
Bei diesem Modell hier. Das ist glaube ich nicht ganz wie immer,
das ist formuliert, aber ich mache es mir auch so,
dass es dort dann nicht zeitlich im extremen Spiel ist,
dass man gleichzeitig machen könnte,
wie viele Marken quasi mit einem Sprutsch anfährt.
Und da reicht in der Seite allerdings,
wie die Arkt quasi runterzählen.
Genau,
das ist die zentrale Aussage hier
Ja in dieser kleinen Fuhe doch noch relativ lange uns dran aufhalten.
Hier kann ich immer nur eine Zahl runterzählen,
also rausnehmen und die kleinere zurücklegen und das muss ich sequentiell machen.
Ich kann hier nicht in mehreren Schritten runtergehen.
Auf der Seite hier kann ich eben entweder ein,
zwei, drei, vier bis zu sieben nebenläufig schalten.
Ich kann also mehrmals in dem Erreichbarkeitsgrafen diese entsprechenden Schritte haben.
Also zu jedem Zeitpunkt, wenn dann noch mal welche sind,
kann ich an irgendeiner Stelle wieder diese Verzweigungsgeschichte sozusagen abkürzen durch einen Schritt.
Ich kann auch mit allen sieben
auf einmal durchlaufen
Im Extremfall. Prozessmodelltechnisch, wie würde ich den Prozess dafür hinmalen,
eine einfache Sache aus der Klausur,
also das ist so eine einfache Frage,
werdet ihr nicht eine Klausur kriegen, die wird schwieriger,
das ist klar, ja, aber das ist eine einfache Frage,
wie sieht das Prozessmodell für dieses und für dieses Jahr aus?
Ja, bei Effinkten haben wir sieben Bedingungen und
dann gehen wir aber zu einer Tradition.
Die gehen alle zu
Einer Transition zu verschiedenen, ne? Genau. Wir haben
also die entsprechenden, diese Struktur, siebenmal nebeneinander,
jeweils mit einer Marke und wann sie schalten, sozusagen ist genau das,
wo wir die Nebenläufigkeit explizit im Prozessmodell drin haben.
Und haben wir also sieben solche Stellentransitionsgebilde nebeneinander stehen.
Und auf der rechten Seite... Gute Recht, die Seite,
haben wir eine Bedingung, in die geht es halt ran,
so, dann haben wir noch eine Bedingung, das ist alles weg.
Genau, das kann man nicht mehr sehen, wieso.
Genau, da sieht man sozusagen die Sequenz ganz klar vorgegeben,
man kann gar nicht anders schalten.
Genau. Und das wäre zum Beispiel, Das ist eine zu einfache Aufgabe für Klausur.
Das heißt also, die, ja, doch ist,
also wie die Klausur wird garantiert kompliziertere Modelle haben,
aber das werdet ihr auch noch in den Übungsgruppen nochmal angucken.
Und wenn nicht, sollt ihr das selber dann nochmal thematisieren,
dass ihr das nochmal sagt, das wollen wir nochmal erklärt haben oder irgendwie sowas.
Wenn euch das, wenn ihr euch das nicht klar machen
könnt, wie das funktioniert. Was ihr machen könntet,
ihr könnt auch hingehen und Rinho mal laden,
euch entsprechend viele Marken auf die Stellen packen,
um mal gucken,
was dann passiert und euch anschauen,
wie ist das mögliche Verhalten dabei und guckt euch
das mal an
Ihr könnt auch den Simulation Trace euch angucken und dabei sehen,
welche Transitionen wir jetzt geschalten haben und in welchen Modi.
Und da könnt ihr ein bisschen mit rumspielen,
um ein Gefühl dafür zu bekommen. Dafür haben wir extra
das Werkzeug und das ist genau eine der Sachen,
die ich jetzt relativ wenig benutzt habe in dieser Vorlesung,
dass ihr dieses Ringi-Werkzeug dafür benutzt,
um euch die Sachen auch klarzumachen, was da eigentlich passiert.
Ihr könnt sowohl für Themenletz-Modus einschalten, als auch den normalen gefärbten Peternetz-Modus.
Dann müsst ihr diese schwarzen Token, aber wie gesagt,
durch Klammer auf, ihr Klammer zu alt, entsprechend beschreiben.
Gut, okay, damit haben wir also jetzt diese Idee dieser Faltung
Wo wir hier die Informationsverlust hatten, haben wir halt ersetzt
durch den, wo wir halt keine Informationen verlieren.
Aber dafür wird natürlich hier die Beschriftung viel komplizierter, die wir da vornehmen müssen.
Es wird halt immer mehr zur Programmiersprache. Es wird halt
immer weiter. Und wenn ich es komprimieren will,
habe ich ja letztes Mal schon beschrieben, so ein bisschen,
dass wir letztendlich nur noch eine Stelle eine Transition haben,
vielleicht auch sogar nur eine Marke.
Und dann haben wir ein ganz normales Programm.
Wir haben eine schwarze Marke als Nebenvideo, dann führen wir
das Programm aus. Und wenn es fertig ist,
kommt die Marke wieder zurück und wir sind fertig.
So, und da habe ich letztendlich alles so gefaltet,
dass ich das ganze Programm,
die ganze Logik in die Transition,
in die Guards,
in die Predikate reingestopft habe
Freddy Karte kann ich auf die Idee kommen, saßen Prodoc zu machen.
Auch das ist eine sehr schöne Lösung dafür. Es ist für Unifikationen,
die bei den Bindungssuchen hier eine wichtige Rolle spielt,
durchaus eine spannende Angelegenheit. Also wer noch nicht bei SE3 war,
sollte sich das mal angeschaut haben,
sowohl die funktionale als auch die logische Programmierung sind zwei Dinge,
die sehr hilfreich sind, um etliche Konzepte nochmal umgesetzt in Programmiersprachen zu sehen.
Das, was wir hier zum Teil auch benutzen und wofür
wir dann die Konzepte liefern oder von denen übernommen haben,
was dort erfunden wurde, um das dann hinterher theoretisch darzustellen,
aufzubereiten.
Aber ihr müsst damit sozusagen spielen. Und es empfiehlt sich
da, diese Sprachkonzepte sozusagen mit aufzunehmen
Gut. Gibt es noch Fragen jetzt zu dem Formalismus der
gefärbten Netze bis hierhin an dieser Stelle?
Gut, eine abschließende Anmerkung. Die ganzen Ergebnisse,
die wir in den PT-Netzen haben,
die können wir quasi immer auf die entsprechenden Gefärbtennetze auch hochziehen,
in gewisser Weise,
indem wir nicht die gefärbten Netze auf die PT-Netze abbilden und wieder sozusagen auffalten,
dass unsere schwarze Token da liegen haben.
Dann haben wir wieder
ein PT-Netz
Aber, was natürlich klar sein muss, dadurch,
dass ich diese großen Farbmengen eventuell habe,
muss ich eventuell auf sehr viele Stellen und sehr viele Fälle in der Struktur her aufhalten,
weil ich ja nicht genau weiß,
wie die entsprechenden Marken her wirklich durch das System durchtransportiert werden.
Ich muss das dann alle Fälle aufzeichnen, wenn ich das dann mache,
wird alleine das Aufhalten vom Gefärbtennetz zu dem PT-Netz oder womöglich noch zu dem einfachen Netz sehr,
sehr groß und ist von daher dann so schwierig.
Da hat man zwar nur noch ein einfaches Netz dabei und kann das auch analysieren,
aber die sind so groß, dass es dann zeitlich schwierig wird.
So, auch da gibt es dann wieder Verfahren,
wie man sich das überlegt, aber da seid ihr herzlich aufgefordert,
euch, was weiß ich, mit eurer Bachelor-Masterarbeit noch zu beschäftigen,
was man für Analyseverfahren von den Netzen auf die gefärbten Netze hin übertragen kann oder was man da machen kann.
Insbesondere im Kontext von dem Werkzeug,
was wir jetzt als nächstes angucken, nämlich das Renio-Werkzeug,
könnt ihr euch ganz konkret softwaretechnisch sozusagen angucken,
wie Lösungen dort einzubauen gehen.
Das ist, wie gesagt, frei runterladbar,
die Software und ihr könnt damit rummatschen,
wie ihr wollt zu Hause.
Könnt auch einsetzen, wie ihr wollt,
den entsprechenden Lizenzbedingungen natürlich
Aber was dann hier spannend ist, dass ihr euch sozusagen auch die spannenden Fragen dessen,
was man von dieser Veranstaltung von hier mitnehmen kann und wie man das noch in praktische Werkzeuge umsetzt,
da habt ihr sozusagen die Möglichkeit, diese Dinge, wir haben ja konkret umzusetzen.
Und zwar zu zeigen, dass ihr da, was weiß ich, jetzt Programmierumgebung bestimmte Sachen mit drin haben wollt. Was dazu kommt,
ist, dass ihr davon ausgehen könnt,
dass ihr in euren entsprechenden Entwicklungen,
die ihr in den nächsten Jahren vornehmen werdet,
ihr habt ja noch irgendwie locker 40 Jahre Entwicklungszeit vor euch oder Tätigkeit in Informatik,
dass in der Zeit die Anforderungen an korrekte Software immer größer wird,
wenn man sich Rückrufaktionen bei den Autoherstellern und sowas mal anguckt,
aufgrund von Softwarefehlern mussten wir leider wieder die Autos wieder alle mal zurückholen,
weil der Boardcomputer gerade nicht so richtig wollte,
wie wir es haben wollten, nur diverse andere Produkte.
Das ist das eine, dann die Unglücke,
die passiert sind aufgrund von Fehlern in irgendwelchen Programmen,
auch zur Genüge bekannt.
Das ist etwa, wofür ihr sozusagen von Kadi gezogen werdet letztendlich nachher.
Und genau wie jetzt die Technik ja auch vor Gericht standen und klären mussten,
ob sie nach dem neuesten Stand der Technik gehandelt haben.
Bei ihr in dieser Vorlesung sitzt,
ist der neueste Stand der Technik das,
was ich
euch beigebracht habe
Das heißt, wenn ihr irgendwo ein Programm schreibt,
wisst ihr, das ist so eine Art,
oder was der Falk auch erzählt hat, über Modelchecking.
Ihr wisst also, dass ihr Werkzeuge benutzen könnt,
um bestimmte Eigenschaften im System auch automatisiert überprüfen zu können.
Nur in bestimmten Bereichen natürlich, nicht für jedes beliebige Programm,
was da irgendeiner mal verzapft hat.
Aber ihr könnt eure Software so gestalten, dass sie sie
überprüfen könnt und dass ihr zielgerichtet die Eigenschaften nachprüfen könnt.
Und das ist eine der Aufgaben,
in den in den nächsten 40 Jahren nicht vorbeikommt.
Und solange ihr euch nicht nur mit Zeitungsverkauf beschäftigt und
am Kiosk steht nachher, müsst ihr euch damit auseinandersetzen,
dass ihr eventuell systemkritische Software baut.
Und dafür müsst ihr gerade stehen im Endeffekt,
und zwar vor Gericht
Und wenn ihr da euch nicht sozusagen nach dem Stelle Technik verhalten habt,
sitzt ihr im Knast. Das ist, klingt irgendwie komisch
. Ist für euch wahrscheinlich ein ungläubiges Gucken zum Teil.
Guckt euch die Berichte über die Bahnunglücke an, wo das Rad zerbrochen ist.
Da wurden die Techniker sowohl die konkreten ausführenden Leute als auch die entsprechenden Leute dafür verantwortlich waren,
ob die Geräte rechtzeitig und richtig gewartet wurden,
ob die richtigen Röntgengeräte verwendet wurden,
ob ein Radbruch passieren kann bei einer Bahn.
Und das Ding entgleist und fährt hinter gegen Brückenpfeiler. So,
und das Gleiche passiert, wenn irgendwo Autounfälle sind,
weil wir einen Programmierfehler hattet in der Bremsanlage und die Autos
bremsen halt ab und zu mal unter bestimmten Konstellationen.
Kommt nur ganz selten vor. Einer von zehn Milliarden Fällen
. Aber ab und zu, ich meine,
es kommt ja vielleicht zehn Milliarden mal vor im Jahr,
dass man als irgendeiner auf die Bremse tritt in einem Auto.
In irgendwelchen Autos, irgendwo. Und irgendeiner wird das schon
mal versagen. Es gab eine ganze Weile solche Untersuchungen,
ob bestimmte Autotypen versagt haben mit ihren Computeranlagen.
So, und die Schwierigkeit ist, ihr steht für
die Dinge nachher gerade
Habe ich jetzt lange genug ausdrücklich gesagt. Ein gutes Beispiel,
wo ihr ein bisschen rumspielen könnt,
wie ihr euch das klarmachen könnt und wie ihr eine Technik in die Hand bekommt,
wo ihr einige Teile auslagern könnt,
wo ihr euch nicht mehr Gedanken machen müsst,
über eine bestimmte Ablaufstruktur zum Beispiel, ist eben,
indem wir halt das Werkzeug benutzen.
Das hatte ich ja schon vorgeführt,
dass man als Logo und dann hier oben die Toolbar,
wo ihr hingehen könnt und die Netze darstellen könnt.
Was ihr da drin habt,
ihr habt die Nebenläufigkeit und ihr habt die Konfliktlösung und vor
allem ihr habt ja auch eine Möglichkeit,
diese Konfliktlösung sauber sozusagen abarbeiten zu lassen
So, das heißt, diese bestimmte Aspekte,
die er beim Programmieren nur aufwendig selber herstellen könnt,
das wird euch zum Teil durch diese entsprechenden Simulatoren abgenommen.
Aus dem gleichen Grunde benutzt man andere Generatoren für andere Modellbasierte Systeme,
genauso für UML und Co., EPKs und so weiter,
dass man Generatoren benutzt, die einem Software generieren,
die dann ausgeführt wird und wo dann bestimmte Dinge einfach einmal für eine Engine generell überlegt worden sind,
sodass man sich darum nicht mehr kümmern muss.
Und man kann dadurch viel abstrakter arbeiten, kann sagen,
okay, ich weiß, dass dieser Ablauf hier immer korrekt ist.
Wir hatten ja, wir werden gleich noch die Work-Roll-Netze sehen,
dass da bestimmte Teile garantiert funktionieren werden
So, und das, diese Dinge, müsst ihr euch überlegen,
welche Werkzeuge benutzt ihr, um das abstrakt genug darzustellen.
So, jetzt werde ich da relativ fix durchgehen.
Wir haben hier irgendwie zwei Einheiten, die in irgendeiner Weise
ein Business-Talk haben und daraus gewinnt ziehen. Ansonsten haben sie ihr Geld,
was sie hier so im Umlauf haben und was jetzt hier sozusagen verbraucht wird eventuell,
aber wenn es hier liegt, das Geld,
dann kann man sozusagen hier agieren und etwas tun.
Und es kann ja so sein,
dass man da so eine Marke liegen hat und entsprechend mit,
kann man hier nicht schalten, kann auch da wieder zurückgehen,
kann man nochmal wieder rumlaufen.
Wir können nochmal schalten an der Stelle. Wir können jetzt aber
auch den anderen schalten. Hier drüben. Jetzt ist hier die Möglichkeit,
sich hier wieder, es ist diese Tradition aktiviert, aufgrund der Nebenbedingungen.
Die können jetzt beliebig oft erstmal schalten, so lange wie
man Lust hat und dann entsprechend Marken generieren an den Stellen.
So zum Beispiel jetzt in dieser Form oder man kann auch
noch weiterschalten, was wir dann aber jetzt nicht weitermachen
Oder wenn es rausgeht, müsste er erst oben wieder was generiert werden.
So, das heißt, ich kann das jetzt irgendwie darstellen.
Ich kann hier jetzt so ein Netz darstellen, was ist das jetzt?
Jetzt habe ich das geändert. Ich habe ein gefärbtes Netz
draus gemacht. Ich erzähle das diesmal ein bisschen mittlerweile.
Ich habe relativ lange bei dem anderen Teil, bei der Wiederholung jetzt zugebracht.
Wir hatten ja eigentlich nur die letzte Folie noch als Thema,
aber sodass wir jetzt hier wieder diesen Zyklus haben,
wo man jetzt hier so rumläuft, man zieht hier irgendeinen Teil ab.
Das, was man abzieht, ist ein A.
Damit kann ich jetzt also quasi Färbung für den linken und
den rechten Partner in diesem Geschäft sozusagen abbilden.
Und das Talk besagt jetzt eben, dass ich hier X
und Y irgendwie habe und dass die hier irgendwie vorkommen müssen.
So, und das Ganze ist jetzt, dass wir ein Bankkonto haben,
wir können über was rauflegen und wir können was drunter ziehen von dem Geld,
was wir da haben. Und die Aktionen, wir sind,
ist, wir ziehen hier so einen Tuppel ab,
N und A für den Name und irgendwie einen Betrag.
Und packen dann hier, wenn wir das wieder zurücklegen,
bei dem Fozzle packen wir halt 100 Euro,
mal wegen drauf und hier drüben so, wir ziehen das ab und packen,
ziehen halt 10 Euro ab, wenn wir Geld abheben.
Das ist also ein sehr bankfreundliches Konto.
Wir zahlen immer hunderte ein und ziehen unter zehn heraus.
Das ist also in der Hoffnung, dass man nicht zu
oft jetzt die hier feuert an der Stelle.
Gut, auch hier haben wir keine Begrenzung oder sowas ähnliches.
Sehen wir an, wir führen das Thema,
man kann es auch gut, das Konto überziehen.
Beliebig weit. Also eine ganz angenehme Bank,
wenn man das mal leer machen möchte, das mal probieren. So,
was wir jetzt noch machen können, ist,
dass wir also hier diese Aufteilung haben mit dem Talk und hier ist das Deposit,
was letztendlich dieses Arbeiten auf dem Geld hatten,
zum anderen aber hier drüben die Idee hat,
dass man sich da irgendwie unterhält und dann soll es
irgendwie gekoppelt werden,
dass da was entsprechend passiert
So, und was wir dann machen können, ist,
dass wir das quasi so verbinden und dann kommt genau das raus,
was wir vorher hatten mit diesem XY,
was ich gerade schon gezeigt hatte.
Das ist also die Idee, wie man sowas auseinanderziehen kann,
wenn ich auf einem Konto arbeite und mir die Person angucke,
die auf dem Konto dann sozusagen arbeitet.
War vorher nicht so ersichtlich,
weil ich das Netz alles zusammengezeichnet habe und da sah es irgendwie aus,
als wäre es eine Handlung und das wäre ja immer so gemeinsames Kuschel sozusagen da drauf.
Das heißt also bestimmte Aktivitäten kann man durch separieren,
von Netzteilen
irgendwie anschaulich klar machen
So manches ist jetzt kein Unterschied,
ob ich nun das jetzt allen Transitionszeichen oder die hier über
synchrone Kanäle kopple oder irgendwie zusammenbinde und das aber so hinzeichne,
dass es erstmal kein so großer Unterschied.
Und das nächste ist, dass ich die beiden hier auch noch koppel,
ist halt eben genau das Abziehen, was eben genau dazu führt,
dass ich da jetzt eine bestimmte Art des Abziehens halt da drauf packe.
Ohne es jetzt hier die Details,
wie viel Geld ich abhebe und drauf packe, beschrieben habe.
So, das Ganze kann man jetzt ein bisschen weiter ausführen,
wenn wir hingehen und das jetzt nochmal ein bisschen getrennter aufzeichnen.
Jetzt kommen wir Richtung Greenho und jetzt, ihr habt ja
bisher sozusagen nur die einfache Netzeug angeguckt und die PT-Netze.
Jetzt kommen wir zu einem sehr ausdrucksstarken Mittel, nämlich,
dass wir die Transitionen Mit einer weiteren,
mit einem weiteren Feature ausstatten, nämlich mit entsprechenden synchronen Kanälen.
Das Biss ist dann hier entsprechend genau dieses typische aus der Objektorientierung,
dass man das eigene Objekt sozusagen damit ansprechen kann.
Man nimmt also an, die sind hier irgendwie in einem Objekt drin,
Methodenaufruf hier und es wird das Deposit aufgerufen,
genau mit dem X&Y, dass wir da jetzt meinetwegen haben.
Und wir können da jetzt irgendwas draufpacken hier an der Stelle.
Und Tears With Tor ist dann eben entsprechend genau das This,
Bisblow von X und hier wird es auch mit aufgerufen.
Was es bedeutet, ist genau, dass diese Transition,
die wir sie eben haben,
um eigentlich nur zusammengefasst werden
Das heißt, die Transition, die hier getrennt,
aufgezeichnet sind, die können nur zusammenschalten.
Welches Problem tritt jetzt auf? Naja, da steht irgendwas
dran und hier steht irgendwas dran. Das muss natürlich irgendwie einstimmen,
wenn da irgendwelche Zahlenwerte dran stehen und dann sagt,
ich ziehe ein X ab und der andere, der X-Parameter rüberkommt,
hat aber einen anderen Zahlenwert, dann funktioniert das nicht.
Sondern ich möchte natürlich, wenn ich jetzt hier Deposit angebe,
will ich natürlich das hier drüben,
auch genau der Betrag auch wirklich draufgetan wird und nicht ein geringerer oder vielleicht möchte ich auch,
dass ein Hörer raufgetan wird, aber das ist bei Banken unwahrscheinlich,
dass sie einem mehr drauf tun, als man eingezahlt hat.
Also ich möchte irgendwie das sicherstellen, dass es
genau gleich ist
Das werden wir uns eben anschauen.
Und was gerade ist. Meine Rephase ziemlich deutlich sieht,
dass wenn man die Optik Possets quasi in Tradition haltigieren möchte,
dafür kann, dass man es probieren muss,
geht das aus dem unteren Output herum vor,
weil da ist ja Informationssicherung einzeitig.
Richtig. Aber da weiß man, dass es
ein Kanal ist. Und die Semantik ist dann dahinter,
das ist dann die Operations-Semantik, die wir in dem Ringe-Werkzeug finden.
Das kann man auch mal an dem Buch Referenznetze,
eines der wenigen Bücher mit nur einem Wort als Titel,
von Olaf Kummer nachlesen,
wie das sozusagen sich auch nur formaler darstellen lässt als mit
einer operationalen Semantik
Idee hier ist, dass, wenn ich so eine Positiven stehen habe,
dann weiß ich, ich kann hier nur schalten,
wenn ich von oben irgendein Netz habe,
was dieses Netz hier kennt, was zufällig also das Gleiche ist,
sodass es aufrufen kann an der Stelle.
Und genau diesen Kanal und nicht irgendwie den Bethdor-Kanal,
dass der dafür passt, sondern das wird dadurch sichergestellt.
So, genau die Frage, diese beiden müssen zusammenpassen.
Also das war genau die Frage,
die da jetzt eigentlich nochmal dran kommt
So, das Gleiche ist dann mit dem Biss,
der eben dafür sorgt,
dass man dieses Netz halt genau greift und weiß,
welcher Netztyp gerade dran ist.
Was man hier noch machen kann, ist,
dass man so ein Deposit durchaus mehrfach aufrufen kann.
Jetzt nehmen wir die Nebenläufigkeit wieder dran. Ich kann also
dieses Netz mehrfach binden und hier zwar nur ein Deposit für X
und für Y aufrufen und packe das dann entsprechend darauf.
So, dieses X, was da rauskommt,
wirkt jetzt woran gebunden
Da hatte ich einen Y-Ton rangeschrieben, was mache ich jetzt?
Schaltet das dann auch noch für das Y?
So ist es. Da habe ich einen Moment aussieht,
wenn das Öpsteller dann im Gesetz gebunden ist.
Also je nach dem Büro, man das jetzt sagen will, beim Winden.
Ja, genau. Also es wird unifiziert und man sorgt dafür,
dass die beiden beim Aufruf den entsprechendenselben Wert haben.
Wobei ich hier die Möglichkeit habe, hier fünf und da
sechs zu nehmen, wenn ich das möchte.
Ja, die positiven haben
Genau. Ich habe also ja dieses Teil hier,
ist eine Transition, die keinen Vorbereich hat,
ist also beliebig oft nebenläufig zu sich selbst aktiviert.
Das heißt, die sind unendlich viele, beliebig viele,
solche Transitionen. Und das ist ein gefärbtes Netz und gebunden
wird es von dir drüben und jetzt kommen hier zwei,
die kommen und der eine macht die fünf und der andere die sechs und dadurch passt es.
Ich finde, die beiden, die das ohne jetzt unterscheiden.
Erstmal nicht. Also, sei mal keine Identifikation reinpackt,
erst mal nicht. Wenn ich das einem bestimmten Konto zuweisen möchte,
würde man das natürlich wieder entsprechend mit aufgreifen. Hier wäre es so,
dass wenn da ein A und ein B drin liegt,
wird natürlich das A und B hier übertragen und da kommt
genau das AB rein und da weiß ich genau,
dass wir denen genau eine Geldeinheit da ist.
Also A und B sind die beiden Geldeinheiten, die da drin sind.
So, das war die Erklärung zu dem Teil und
hier oben mit dem Diss und bezeichnet des Netzes,
das hatte ich ja jetzt alles gerade erzählt.
So, wenn wir das Ganze jetzt noch mit ein bisschen Rechnung drin haben will,
die Frage, wie wissen wir jetzt, wer das ist?
Auch wieder genau die richtige Frage,
wenn ich jetzt hier anfange mit irgendwelchen Geldbeträgen zu hantieren und diesen Account zu benutzen,
der da drauf ist, dann sehe ich,
packe da einen da drauf und habe hier am Anfang halt drei draufliegen und dann würde ich das abbilden,
was wir am Anfang eigentlich gesehen haben.
So, ja, da haben wir jetzt hier die Möglichkeit,
dass noch ein bisschen mehr anzureichern und quasi die Operation auf
diesem Account auch zu kapseln, durch die entsprechenden Methodenaufrufe,
so wie es von Objekten her auch kennen.
Ich freue dadurch,
dass wir hart erzählen
Mitte auf null hatten in deinem BMW. Ja, das
ist richtig. Also wir haben natürlich die Werte jetzt geändert und
damit ist die Saty geändert und so weiter und so fort.
Klar. Also dadurch, dass sich bestimmte Sachen jetzt hier anders mache,
indem ich auch hier einen Betrag drauf addiere,
der zufälligerweise eben M ist, wenn ich jetzt hier eine 5 stehen hätte,
würde ich auch was ändern.
Also das ist eine, ja, andere Beschreibung, nämlich eine Buchführung mit Algebra,
die also nicht direkt mit dem Netz direkt was zu tun hat.
Ich bezogen jetzt auch das erste Beispiel,
wo wir gesagt haben, wir ziehen einen ab,
wenn wir das Schalten der ersten von dem ersten motivierenden Beispiel
sozusagen mit den gegabbelten Transitionen drin haben
Worauf ich jetzt hinaus wollte, ist, dass wir davon ausgehen können,
dass jedes Netz quasi ein Objekt ist in einem System.
Wenn ich jetzt so einen Kanal aufrufen möchte, was brauche
ich denn dann? Da muss ich genau das machen,
was wir jetzt hier haben, nämlich diesen Bezeichner,
müssen wir irgendwie ins andere Netz reinbekommen,
wenn ich den Bezeichner kenne, dann kann ich aus anderem Objekt aufrufen.
Wenn ich keine Möglichkeiten, das Objekt nicht kenne,
kann ich auch keine Methode daran aufrufen. Das heißt,
in irgendeiner Weise muss dieses Objekt oder in diesem Fall das
Netz bekannt sein, so dass ich es machen kann.
Das gucken wir uns jetzt nochmal an. Hier haben wir jetzt
zwei Netze und wir machen jetzt einen New Othernet und neuen New Othernet,
was jetzt hier drüben irgendwie liegen soll, wie das aussieht, kommt gleich.
Das wird mit X und Y erstmal gebunden,
das heißt, es ist ja aktiviert,
hier sind die man aufruft mit dem Keyboard New,
wird ein neues Netz instanziert, genau wie man es beim Objekt auch macht.
Ich instanziere dieses entsprechende Objekt jetzt. Das wird dann
irgendwie italisiert und irgendwie ist es dann Herr da, werden wir gleich sehen.
Und ich packe das X bis Y hier rüber und hier unten
schalte ich und überprüfe, ob das denn auch verschiedene Sachen sind.
Und da wir ja nun gerade hier sehen, wir machen ein New Othernet,
haben da zwei verschiedene Objekte, die wir erzeugen.
Und wir prüfen auf Ungleichheit ab, kann es also schalten.
So, das ist erstmal so die Grundidee auf dieser Ebene.
Ich kann also hier oben argumentieren,
wie der Fluss durch dieses System ist,
ohne dass ich mir den Rest dahinter jetzt erstmal angucke
Jetzt kommt es immer an, was da passiert.
Wir haben also quasi dieses eine Netz hier und haben entsprechend
eine aktivierte Transition, die kann einmal schalten.
Jetzt die Frage, wie läuft das, wie läuft das Ganze ab?
Gucken wir uns hier an. Wir haben also das hier als zwei Netztemplates.
Das hier ist das Netz Asanett und das ist das Systemnetz.
Beispiele werde ich beim nächsten Mal nochmal als Wiederholung dann sozusagen mit
den Werkzeugen zeigen. Ihr könnt gerne das selber mal ausprobieren,
ob ihr das zum Simulieren bekommt mit Reniu,
dass ihr es nachbaut und anguckt.
In Reniu gibt es ein Verzeichnis, eine Zahmpels,
wenn ihr es runterladet und die solltet ihr euch mal angucken
Das ist sehr hilfreich für die Klausur, wenn ihr Beispiele rechnen sollt. Also,
dass du als Motivation sich die Beispiele mal angeguckt zu haben,
wer die kennt, wird dann eigentlich bei der Klausur nicht mehr überrascht über irgendwelche Fragen,
wie ein Netz entsprechend schalten kann oder nicht schalten kann oder wie man so eine bestimmte Sache, die wir abverlangen, dann auch modelliert.
Dass nicht das da anschauen kann. So, wie läuft das jetzt hier? Wir haben jetzt hier also unser Systemnetz und Creatornetz,
wie es jetzt hier heißt, das kriegt die Einheit 1,
wir haben hier unsere Marke drauf liegen und wir starten das mal,
verhalten wir und haben hier jetzt quasi eine Marke draufliegen,
die dann jeweils auf das Athernet 1 und also eine 2,
wenn das hier 0-1 war,
darf das nicht eins heißen, weil Rinho eigentlich,
das ist also jetzt, da sieht man,
das ist nur gezeichnet,
da müsste jetzt 2 Jahren 3 stehen oder irgendeine andere Zahl.
Dann sehen wir, dass wir hier unten,
nachdem das sozusagen erzeugt wurde, auch irgendwie schalten können.
Und jetzt kommen wir wieder zur Unabhängigkeit der Lokalität,
solange ich keine Beschränkung durch irgendwelche Prädikate hab, die dafür sorgen,
dass es nicht aktiviert ist, oder eben durch nicht Annotationen,
dass ich keine Kanäle belegt habe und damit in dem Schalten behindert werde,
Kann ich an jeder Transition lokal entscheiden,
ob die schalten kann oder nicht?
Aber bei denen hier drüben, und bei dem hier ist es relativ einfach,
der hat schon geschaltet und geschaltet, hat ihm noch nicht geschaltet,
muss er auch erstmal gar nicht, können wir uns das angucken,
was damit passiert und gesehen, das ist völlig unabhängig davon.
Und ob das jetzt hier schaltet,
ist von diesen Zuständen hier vorne völlig unabhängig. Das heißt,
das Schalten dieser und dieser Transition ist ohnehin schon mal unabhängig,
aber das Schalten von der, hier ist es auch.
Das andere, was wir sehen, ist,
dass wir hier oben ein New Asanett hatten, X und Y zugewiesen,
dass diese beiden Netze tatsächlich unterschiedliche Zustände intern erreichen können,
genau wie es bei Objekten ist.
Ich habe eine Klasse, instanziere die und dann habe ich verschiedene Objekte,
die können natürlich alle verschiedene Methoden Aufrufe so haben,
dass sie auch unterschiedliche Zustände da drin haben.
So, das heißt also,
das Gleiche ist bei den Netzen und wenn ihr euch hinter jedem Netz erstmal ein Objekt vorstellt,
wenn wir im Gegensatz zu eurem etwas eingeschränkten Java-Objekten,
die sozusagen eigentlich einen sequenziellen Fluss nur im Wesentlichen kennen,
habt jetzt hier mit jedem Objekt einen beliebig nebenläufig agierendes Objekt da drin.
Wenn da also 100 Transitionen sind, die aktiviert sind,
können in einem Objekt zum selben Zeitpunkt unabhängig mit unterschiedlicher Ausführungsgeschwindigkeit 100 Aktionen in einem Objekt stattfinden.
Das ist etwas, was hier im Java nicht so leicht hinprogrammiert bekommt.
Und die Swep-Programmierung dazu, die müssen wir immer zeigen,
der die entsprechende Methoden alle aufrufen wollt.
Also das ist dann nicht mehr so einfach. Und das Interessante ist,
dass euch das diese Engine sozusagen abnimmt, durch das grundsätzliche Modell,
was ihr von den Netzen her kennengelernt habt. Dadurch,
dass es eben einem implementiert wurde und gezeigt wurde,
ist es auch rechtsinnig ist und praktisch auch evaluiert mit Milliarden von Feuerung und Testen,
von diesen Simulationsschritten,
die wir da gemacht haben inzwischen und andere Leute gemacht haben,
Kann man davon ausgehen, dass das wohl auch richtig ist.
Und damit könnt ihr jetzt in dem System sozusagen,
ja, war anreichern, indem ihr diese Möglichkeit habt,
Objekte sozusagen so nebenläufig zu beschreiben und auszuführen.
Der Laufzeitverlust ist relativ gering,
wenn ihr also nicht wirklich zeitkritische Sachen habt,
wo ihr ohnehin eher in das Hemd laut NC direkt programmieren müsstet.
Ist das sozusagen eine Methode,
um Java-Programme in einer bestimmten Art und Weise so anzureichern,
dass sie Nebenläufigkeit geschickt mit reinkommt,
inklusive der wechseitigen Ausschlüsse
Gut. Was wir jetzt hier haben, ist ein anderes
Beispiel. Warum gehen jetzt die Kanten zu einem Athernet?
Nee, wir haben im Fende so ein You-Up.
Das ist nix. Das sind das Thema Weite. Genau.
Jetzt gibt es dabei zwei Semantiken, die da drin sind.
Wir haben also jetzt hier nur einen X erzeugt,
packen zweimal, packen das X jeweils auch zwei verschiedene Stellen.
Jetzt habe ich hier so einen Pfeil drauf. Es gibt im Wesentlichen erstmal zwei Semantiken,
nämlich die Wert und die Referenzsemantik und da gibt es noch
verschiedene Spielarten mit Token Distribution und so weiter und so fort,
lassen wir alles mal weg.
Die Referenzsemantik sagt, dass wir einen Verweis darauf haben.
Wenn wir jetzt das Wort Referenznetze als Titel sozusagen von der
Situation von Olaf Kummer sich anhört, dann weiß man,
dass es sich bei uns um Referenzen handelt,
die wir da verwenden.
Und das heißt, ich referenziere nur noch dieses Objekt.
Genau das, was man noch kennt,
wenn ich einen Bezeichner habe und ich habe verdoppelt den
oder benutze den verschiedenen Stellen,
dann habe ich sozusagen immer noch dieselbe Referenz auf selbe Objekt
Man kann es auch als Wertsemantik sehen,
aber das funktioniert nicht,
weil dann müsste ich das so wie vorher machen,
sich zwei verschiedene Netze hinzeichnen müsste,
weil die dann ja wieder unterschiedliche Werte haben müssten und das würde hier nicht geben an dieser Stelle.
Weil das funktioniert an der Stelle nicht so einfach. So,
was wir dann haben, sind die Synchronkanäle mit der Parameterübergabe.
Wir haben also diesen Kanal und das Left Channel
haben wir hier auch schon gesehen.
Was ist nach dem Schalten hier hinten drin? Naja,
ich packe einen A und B da rein.
Steht da jetzt ein X oder steht da
ein A oder steht da
ein B
Oben, wie unten sollte ein A stehen. Okay. Habe ich
mir auch so gedacht, dass das sozusagen so dabei rauskommt.
Wen passiert das? Das X hier oben wird entsprechend
als A gefunden und wird hier über den Kanal gebunden,
sonst könnte es gar nicht schalten. Dieses U hier vorne,
das verpufft einfach, da muss nur irgendein U liegen,
das kann auch hier jetzt ein B sein an dieser Stelle.
Und hier auf diesem Kanal empfange ich ein Yy und daran
binde ich das und das wird gebunden über diese Transition hier oben,
über diese Kante und dann an diesen Wert,
sodass ich dort das A habe und das A auch hier entsprechend rauspacke,
wenn ich das schalte
Gut, dann kommt das nächste Beispiel. Ich habe hier
ein Systemnetz und ich erzeuge hier ein neues Objektnetz an dieser Stelle.
Und da haben wir wieder so ein einfaches Objektnetz,
haben einen entsprechenden Kanal da dran und den können wir hier auch wieder,
sehen wir auch da schon, wenn wir gleich sehen,
was da passiert.
Das Objektnetz kommt jetzt da rein, es wird erzeugt und
dann sehen wir halt so ein entsprechendes Netz hier unten.
Wir haben das B da drin, was passiert jetzt? Na,
jetzt schaltet diese Transition hier, Joden passiert erstmal so lange nichts,
weil hier eben über den Kanal dafür gesorgt wird,
dass das auch nur schalten kann,
wenn es aufgerufen wird
Und das Z wird gebunden an das A. Es wird hier entsprechend weitergereicht.
Hier kommt das Y und da sehen wir dann halt,
dass wir, wenn wir da jetzt schalten,
wir entsprechend das A hier unten in der Stelle haben.
Also genau das, was wir eben gerade auch hatten.
Gut, da sieht man so ein bisschen, wie man den Kanälen hantieren kann.
Was dahinter letztendlich steht, um es mal kurz zu beschreiben,
wohin die Reise da geht. Es geht nicht nur darum,
dass ich einen Wert von dem einen ins andere übertrage,
sondern letztendlich kann ich durch die Kanäle,
die dann zur Laufzeit unifiziert werden,
sodass die richtigen Marken mit den anderen richtigen Marken so zusammenkommen,
dass die Kanäle auch wirklich passen,
wird quasi ein Pro-Lauf-Programm ausgeführt
Und ich kann also quasi mithilfe der synchronen Kanäle auch Polaf-Programme ausführen. Das heißt,
die Mächtigkeit, die da jedes Mal sozusagen stattfindet,
pro Bindungssuche und dann pro Schaltvorgang ist die Ausführung eines Prolaf-Programms,
was letztendlich dazu führt,
dass sich da die entsprechende Ausdrucksmächtigkeit auch habe.
Man würde sozusagen sagen, dass in Brinio ein Prolaub-Interpreter programmiert wird,
der nur eben nicht über Prolaub als Sprach und angesteuert wird,
sondern über Netze.
Genau, aber eben nicht über die Sprache. Genau,
das ist der Punkt. Und von daher passt das natürlich
nur sehr übertragen. Es wird unifiziert. Und der Identifikationsalgorithmus ist halt
sehr ähnlich zu den Ideen, die bei ProLog verwendet werden.
Dafür müsst ihr halt zu Permenze drüber geben und euch die Sachen da anschauen,
da kriegt ihr zur entsprechenden Pull-Up-Pormierung eine Menge Sachen erzählt.
Und die Konzepte dahinter sind schon sehr, sehr ausdrucksstark und liefern auch eine Menge Möglichkeiten.
Auf die Vor- und Nachteile hatte ich ja schon in der anderen Veranstaltung hingewiesen, was das eigentlich bedeutet. Okay,
in der Richtung beschäftigen wir uns recht intensiv bei unserer Arbeitsgruppe,
machen unsere Projekten und benutzen da eigentlich dann quasi,
dass man mit Agenten hantiert, also und Webservices,
dass man ein Netz, ein Objekt,
ein Agent,
ein Webservice sozusagen gleichsetzt und das dann in den Projekten tatsächlich verwendet,
um damit Systeme zu bauen
Jetzt muss man als Entwickler nur wissen,
wann arbeite ich mit einem Objekt, wann arbeite ich mit einem Agenten,
also wann kommuniziert das Ganze über einen Methodenaufruf und wann kommuniziere ich
über einen Sprechakt oder wann kommuniziere ich über irgendein entsprechendes Protokoll,
was im Websites-Bereich spannend wird.
Diese Konzepte kann man geschickt mischen,
das macht ihr, wenn ihr programmiert, ohnehin auch.
Und jetzt ist mir die Frage, wann macht ihr was?
Und dafür haben wir halt in unserer entsprechenden Entwicklungsumgebung bestimmte Vorschläge,
was man da tut. So, die Möglichkeit,
schräge Programme zu schreiben mit dieser Umgebung, sind natürlich beliebig groß.
Also jedes Java-Programm könnt ihr an die Kanten ranschreiben,
an die Transitionen jetzt zum Beispiel ranschreiben, und so weiter.
Jetzt habt ihr das Ganze auch zweidimensionell angeordnet,
dann ordnet ihr das auf mehreren Blättern an,
weil ihr ganz viele Java-Programme nebeneinander schreiben könnt und die werden irgendwie verknüpft.
Es gibt also ein einziges Chaos sozusagen, wenn man da versucht,
also wenn ich das will, kann ich eine schöne Spaghetti-Programmierung mitmachen.
Wie mit jedem normalen Java-Programm auch, es gibt ja die Contests,
wie kann ich das schönste C-Programm mit wenig Zeichen schreiben,
sodass es keiner mehr versteht.
Funktionieren in Java ja ähnlich, kann man auch solche Sachen machen.
Unsinnige Programme kann man gut schreiben. Die Kunst besteht ja
daran, dass ihr gute Programme schreibt
So, eine der wichtigen Anwendungsbereiche der Informatik ist halt
die Betriebswirtschaft. Das heißt, im wirtschaftlichen Bereich,
wo man in irgendeiner Weise, ja, ich weiß,
technische Systeme und Militärsysteme sind auch sehr wichtig,
aber die interessieren mich nicht persönlich.
Da bin ich nicht so scharf drauf. Mir geht es
eher darum, wie man sozusagen in Organisationen Abläufe sehr gut
auf die Reihe bekommen kann und die unterstützen kann.
Und dafür haben wir eine Menge Sachen uns überlegt,
wie man das gezielt unterstützen kann.
Und zwar nicht nur wir,
sondern auch tausende anderer Kollegen, die sich halt mit
diesen Thematiken auseinandergesetzt haben
Ihr seid dem Thema auch schon begegnet.
Und zwar unter dem Stichwort Workflow wahrscheinlich. Das heißt,
in irgendeiner Weise Geschäftsprozesse, die an irgendeiner Stelle ablaufen.
Und diese Workflows sind ja quasi die technische Unterstützung der Geschäftsprozesse,
die dann eben auch die Aktivitäten von Menschen,
Maschinen und so weiter mit einbeziehen. Und die unterstützende Software,
die ihr baut, die Systeme, die ihr baut,
die sollen ja die Leute gezielt in ihren Aktivitäten
sozusagen unterstützen und das Leben leichter machen und ihnen helfen,
dass eine bestimmte Systemleistung
sozusagen dann erreicht wird
Dass dann entsprechende Automatisierung und so weiter stattfindet, ja,
alles richtig, aber vom Prinzip braucht man sozusagen eine Unterstützung der Abläufe durch Maschinen.
Und ihr selbst benutzt es an 1.000 und drei Stellen,
wenn ihr euch ins Diene einloggt, nachguckt,
wenn ihr kurz auf dem Handy nachschaut,
was bestimmte Mails und so weiter sind,
habt ihr vielleicht noch mit irgendeiner Firma bestimmte Dinge da drin,
die Abläufe, wo ihr kurz informiert werdet, über ein System,
wo ihr einen Zugang zu habt und woraufhin ihr einen nächsten Schritt macht.
Weil ihr eure Eintragung und Stile seht,
wisst ihr, dass ihr zur Klausur erscheinen dürft?
Ich habe euch freigeschaltet über die Übungsgruppenbetrieb und ihr habt den Schein bestanden,
dann wisst ihr, dass der nächste Ablauf unsatorisch ist,
dass wir uns in der Simos-Allee treffen und ihr zur Klausur
erscheinen dürft
Das sind organisatorische Abläufe, die quasi uns unterstützen.
Das kann man jetzt so wie bei Stine irgendwie Würder reinprogrammieren
und dann irgendwelche tollen Abskuren, Abläufe da drin haben.
Oder man kann sowas systematisch durchdenken und systematisch steuern durch entsprechende Workflow-Systeme.
So, und dazu erzähle ich jetzt ein bisschen was.
Und was da aber passiert, ist,
dass wir gezielt hingehen und die Mächtigkeit unserer Netze wieder einschränken.
Genauso wie ihr euch in Ja war, gezielt einschränkt,
indem ihr Patterns verwendet und nur bestimmt mit bestimmten Patterns
Systemrechtekturen aufbaut
Mich, ja, Java-Programme würde ich das Koblin machen.
Wir wollen, das ist alles ganz einfach. Kann jeder
ja lesen. Jeder kann so ein if and ell-Statement lesen
oder kann begliebig viele und dann eine Schleife drum und so weiter und so fort.
Kann jeder ja machen. So. Irgendwelche Leute sind aus
guten Gründen auf die Dege Competerns einzuführen,
um bestimmte Beschränkungen auf diesen Java-Strukturen einzuführen,
sodass nur bestimmte Systemverhalten an bestimmten Stellen eigentlich nur auftreten können.
Welche das denn sind, habt ihr bei SE1 und 2
zum Teil gehört und in den weiteren Veranstaltungen auch noch.
Das heißt, dass ihr vom Prinzip schon wisst,
warum ihr solche Sachen einschränkt in der Mächtigkeit
Ja, aber es ist ja nicht per se auf Patterns eingeschränkt,
man darf nur so programmieren, aber man kann so oder so entwickeln.
Gute Entwickler haben halt dann entsprechende größere Strukturen im Kopf.
Wir werden jetzt bei den Netzen uns sehr stark einschränken,
mit dem Vorteil,
dass wir dann diverse Sachen im polemieller Zeit entscheiden können,
die wir vorher als völlig obskur sozusagen angesehen haben,
was man gar nicht sozusagen mit Phymetriefrekrusiven,
also mit nicht primitiv-rekrusiven Funktionen dann berechnen kann.
So, diese Workflows sehen also folgendermaßen aus. Wir haben also
eigentlich früher mal so ein System gehabt in den frühen Jahren,
wo wir das Operating System hatten und dann irgendeine Applikation
da drauf
Und ja, das war so in den 60ern die Idee.
Dann gab es eine Idee, naja,
irgendwie müssen wir das System ein bisschen weiter strukturieren.
Da kommen wir nochmal auf die Idee und packen so eine
Datenbank dazu. Das waren so 70er-Jahre, das Thema,
wo verschiedene Arten von Datenbanken eingeführt wurden.
Jetzt hochaktuell die US-QL-Datenbanken und so weiter und so fort.
Ganz andere Ideen dahinter als das, was ich mal Anfang
der 80er gehört habe, wie ich angefangen habe.
Also ja, das sind ganz andere Dinge dabei gewesen.
Aber die Grundidee war überhaupt mit Datenbanksystem überhaupt darauf aufzusetzen oder
auch ein Dateisystem und so weiter und so fort und
das weiterzuentwickeln.
Und das aus dem Betriebssystem herauszulösen
Der nächste Schritt war,
naja, irgendwie macht er das Schwierigkeiten mit den Benutzungsüberflächen,
also versuchen wir da mal was raufzupacken.
Und da Sachen reinzubringen, das waren die 80er.
Und in den 90ern kam dann die Idee der Workflow-Management-Systeme,
wo dann insbesondere auch die Workflow-Ideen sehr stark um sich griffen und das da eingeführt wurden.
So, weiterentwickeln wir uns jetzt nicht weiter angucken.
Wir wollen ja bei den Workflow-Systemen erstmal bleiben und uns das jetzt angucken.
Also ihr lernt Dinge, die Anfang der 90er Jahre hochgekommen sind und,
ja, immer noch relevant sind, interessanterweise.
Wenn man sich anguckt, was in der Betriebswirtschaft jetzt sozusagen wirklich sind,
Geschäftsprozesse, Geschäftsprozessoptimierung, Geschäftsprozessmanagement,
sind immer noch Themen,
die in der Wirtschaftsinformatik
zuhauf hört
Und die immer noch eine Challenge darstellen für,
insbesondere kleine und mittelständische Unternehmen, das sinnvoll auf die Reihe zu bekommen.
Wichtig sind Ausdrucksmittel, mit denen das adäquat darstellen kann und
genau da wollen wir uns drum kümmern.
So ein schöner Ablauf hier ist etwas,
was man als ein triviales Beispiel in irgendeiner Versicherung finden kann,
wo halt irgendein eingehender Auftrag registriert wird,
wo dann irgendwelche Dinge verschickt werden und die dann ausgeführt werden
an den Stellen
Und was man dann macht, dass man keinen Fragebogen ausfüllen oder eine Bewertung machen.
Das ist nebenläufig, wie wir hier sehen. Das sind zwei Dinge,
die so unter dem gleichzeitig passieren können. Das zeigt schon mal,
warum man Nebenläufigkeit im Unternehmen auch wirklich braucht,
weil natürlich arbeiten die Leute für einen Auftrag parallel,
wenn da irgendwie einer die Sachen aufgeteilt hat und sagt,
ah ja,
wir haben jetzt ein Formular und das eine macht das und
dann macht das oder es wird das bestellt und das produziert,
das verarbeitet, das überprüft und so weiter.
Das sind genau nebenläufige Aktivitäten, die im Unternehmen stattfinden.
So, dann können wir jetzt mal oben den Fragebogen sozusagen losschicken.
Wir können dann evaluieren parallel, naja,
dann können wir die Fangebogen-Auswertung machen oder die Nichtberücksichtigung des Fragebogens angucken,
4 und 5. Können uns überlegen, was wollen wir denn da noch machen?
Im Grunde genommen ist es egal, wir haben den
mal bearbeitet und es gab kein Timeout da drin.
Gut, dann kann ich immer noch unten bei 6 und 7 loslegen.
Ich verarbeite einfach gar nichts. Das hängt also jetzt von der Umgebung ab,
die sagt, da gibt es nichts zu bearbeiten.
Also abhängig von der Evolution gehe ich jetzt da oder
da längs
Oder beginne der eigentlichen Prüfung,
naja, das machen wir mal hier unten rum,
damit es ein bisschen spannender wird an der Stelle.
Was passiert jetzt? Wir machen jetzt hier diesen entsprechenden,
entsprechende Abend der Beschwerde. Jetzt mal gucken, was war denn
da los? Dafür mussten wir diesen entsprechenden Fragebogen natürlich haben,
wenn da keiner gewesen wäre wegen Timeout, hätten wir gesagt,
okay, gab es keine, machen wir es mal so dem,
was wir hier in der Firma wissen dazu.
Dann läuft es weiter, es wird überprüft. Wir haben also die Bewertung davon,
kommen hier hin und jetzt können wir als nächstes sagen,
es ist okay oder wir müssen, da war irgendwas nicht okay,
jetzt müssen wir nochmal prüfen, da war das nicht in Ordnung.
Und in diesem Fall sagen wir, okay,
ist in Ordnung
Und alles okay. Und wir archivieren das entsprechend abschließend,
dass wir sagen können, wir sind fertig.
So, was hängt jetzt dahinter? Das ist die
prinzipielle Beschreibung des Ablaufs. Was jetzt damit getriggert wird,
ist, dass irgendwie natürlich Leute hier was tun müssen,
außerhalb des Systems und quasi mit dem System interagieren müssen.
Das heißt, ich muss eigentlich nur die Schnittstelle für die Transition zum Schalten bringen.
Und ich muss hier Entscheidungen treffen für No-Processing oder Processing Required.
Das heißt, ich muss irgendwo das Informationssystem geben,
das kann aber einer im Knopf drücken.
Der sagt immer, ja, nein,
kann das die gesamte Unterscheidung quasi nach außen verlegen
Die prinzipielle Möglichkeit muss ich natürlich abfragen,
aber das kann auf dem Bildschirm erscheinen,
dann drückt eine A oder B und dann ist das geklärt.
Sollte eine ganz einfache Geschichte, die aber gar nicht
so einfach ist, wir gleich noch sehen werden.
Was haben wir jetzt? Wir haben jetzt ein PT-Netz und
das Ding heißt Workflow-Netz, falls wir folgende Bedingungen haben.
Erstens, wir haben zwei besondere Plätze, A und E,
aus der Menge der Stellen, hier, da und dort.
Und da hat man nichts im Vorbereich und hier
hat man nichts im Nachbereich. Also das heißt,
diese Stellen sind uneingehende Transition, die sind ohne ausgehende Transition,
schimpfen sich dann Quelle und Senke an der Stelle.
Die haben wir beide im Workflow-Netz. Das sind
die beiden, die wir da drin vorfinden
Nächste ist, alle Plätze und Transitionen müssen auch Farben zwischen A und E
liegen. Das finden wir hier jedes von diesen Teilen.
Liegt irgendwie auf irgendeinem Pfad irgendwo dazwischen. Ja,
können wir die Finger nachziehen, kann man entsprechend gucken,
ist relativ leicht festzustellen. Jo, geht. Das Nächste ist,
wir haben noch eine Anfangsmarkierung und wir haben eine Entmarkierung.
Das ist irgendwie etwas, man möchte irgendwie starten,
also ohne, wenn ich da keine Marke drauf habe,
ist schlecht und vom Prinzip kann ich noch sagen,
ja,
ich kann auch noch
Entmarkierungen haben
Das gehört aber dann nicht unbedingt mit da rein.
So, jetzt kann ich wieder hingehen und sagen,
ich habe eigentlich nur eine Beschwerde in meinem Unternehmen.
Ich habe viele. Dann würde ich also hingehen und
ein gefärbtes Netz machen und da ranschreiben,
Fall 6. Fall 4 ist so verteilt, Fall 3 ist so verteilt,
Fall 1 ist so und so weiter und so fort.
Kann ja auch hingehen und sagen, okay, gut,
ich mache das mal rot und die mache ich grün und blau und so weiter.
Kann ich also so einfärben. Die Idee dabei ist,
dass ich jetzt diese Pattern sage,
habe ich eben schon, kommen wir als kurzer Einschub.
Es gibt in diesen Workflow-Ideen, in diesen Abläufen,
jetzt auch wieder Patterns. Also es gibt nicht nur,
dass ich jetzt solche Abläufe habe, sondern ich sage,
es gibt da drin auch wieder bestimmte Strukturen,
die wir
da aufzeigen können
Und da gibt es entsprechende Beschreibungsmuster dazu. Zum Beispiel Paris Split,
das wäre also hier eine Transition haben, die das auf
zwei Stellen aufteilt und das dahinter dann entsprechende andere Aktivitäten parallel laufen.
Das ist also ein typisches Muster, was da ausführt.
Wobei das nicht den wirklichen Patterns aus der Softwareentwicklung direkt entspricht.
Das sind eher so kleinschrittigere Muster,
die wir jetzt hier vorfinden und nicht so schöne,
wie sie bei der Programmierung bezüglich der Schnittstellen oder Fassaden oder sonstigen Sachen sind.
Ist ein bisschen eingeschränkt. Die Föpflohl-Leute um Will van der
Alsheim ist halt Pattern geschimpft. Wir hatten da andere Begriffe
vorgeschlagen für, aber die wollten sich gern auf diese Schiene
Pattern setzen
Aber auch dahinter, dass man so eine ganze Liste aufgestellt hat mit entsprechenden Sprachen, die all solche Sachen jetzt unterstützen. Das heißt,
die gibt es dann Produkte oder eben Sprachen,
mit denen man entsprechende Workflow-Systeme beschreiben kann,
mit verschiedenen Versionen, kann er die irgendwie bewerten lassen,
was sie alles abdecken, inwieweit sie die Patterns drin haben,
was alles geht oder was nicht geht und entsprechende Motivation,
was unterstützt wird, ob nun eher Konstrukte unterstützt werden und Aktivitäten,
ob Ereignisse unterstützt werden, ob bestimmte Endsplit, Allsplit,
Implicit-Ausbild und so weiter.
Ob das unterstützt wird und was nicht geht,
und so bewerten, kann die ganze Reihe durchgehen,
findet man auf den Webseiten von diesem Workflow per Tanz jede Menge Informationen zu.
Wer sich im Bereich Wirtschaftsinformatik aufhält, muss das kennen.
Also wenn von einer Wirtschaftsinformatik macht, der muss da auch rein.
Informatiker müssen deswegen da rein, weil sie genau für diese
Bereiche ohnehin, der spätestens zu 50 Prozent arbeiten werden.
Also ihr werdet zwar nicht Wirtschaftsinformatik sozusagen studiert haben,
aber trotzdem in der Wirtschaft arbeiten von da trotzdem Geschäftsprozesse in irgendeiner Weise wieder antreffen.
Das heißt, ihr müsst das ohnehin wissen.
Aber für Wirtschaftsinformatik halte ich das als eine der zentralen Grundlagen,
die von hier mitgenommen werden müssen, nämlich diese Prozessbeschreibung und die Möglichkeiten,
wie man solche Sachen beschreibt und welche Pitfolds es gibt.
Also welche Probleme auftreten können, wenn ich so modelliere?
Das muss man letztendlich, wenn man das verantworten will, wissen.
So, dann gibt es halt so eine Sequenz,
das ist eine triviale Geschichte, die wir da garantiert antreffen.
Das ist logisch, dass wir sowas drin haben.
Dann haben wir hier so einen Endsplit drin, der sagt,
okay, also der Fellow Split hatte ich jetzt eben gerade genannt in den Pattern,
um hier nebenläufig was zu bearbeiten und hier ist der entsprechende Join,
wo wir also die entsprechende Fall wieder zusammenführen.
Haben hier ein schönes Workflow-Netz
Anfangsmarkierung, Anfangsstelle, Endstelle, alles Licht auf dem Pfad dazwischen,
wunderbares, wunderbares Wafflonetz an der Stelle.
Genauso hier oben haben wir auch eins. Das sind also
schöne, schöne Modelle, die wir da vorliegen haben.
Was wir noch haben, ist, dass wir hingehen können und einen Allsplit haben.
Das heißt, wir packen hier eine Stelle hin und haben
zwei Transitionen im Nachtbereich und eine von den beiden schaltet.
Und ja, der bessere gewinnt sozusagen.
Und hier ist wieder entsprechender Join, in den eben zwei
Transitionen da was raufpacken
Was es dann gibt, ist eine Transition, wobei,
ob das eine Transition ist, gab es längere Diskussionen,
weswegen das im Bereich der Petri-Netze nicht als Transition akzeptiert wird,
sondern nur als abkürzende Schreibweise quasi,
aber da gab es so lange Debattenzufall, nämlich jetzt hier,
mit einmal ein Explicit-Or-Flit sozusagen drinsteckt, der nämlich sagt,
ich tue entweder da oder dort eine Marke rein und genauso hier,
da ist sozusagen der Or-Join dann wieder entsprechend auch noch drin,
haben wir jetzt hier nicht eingezeichnet.
Aber hier kommt nur eine der beiden Marken raus,
was wir hier dadurch verdeutlicht haben müssen,
der ist nicht hier nochmal angezeichnet,
man kann das Gegenkonstrukt mit dem Implicit-Teil auch noch zeichnen,
aber dann ist das überhaupt nicht mehr
der Scheidbar von den lebenlosigen Dingen
So, das, warum will ich ein Implicit oder ein Explicit Orsplit haben?
Das ist dann klassischerweise die Programmiersprache, die iss wären,
also die bedingten Falle. Da brauche ich nur eins,
wenn es die klassischen IFs sind, würde ich nur die,
dann brauche ich nur ein Einkonstrukt. Und Join am Ende,
wenn man irgendwo gemeinsam... Genau, das ist ja klar,
über den brauche ich nur eins von dir da oben.
Ich sage ja, ich brauche ein Implic,
also ein Implicit oder ein Explicit Or-Split.
Das habe ich falsch verstanden. Genau, das macht ja
nichts. Ich stelle ja auf komischen Fragen hier.
Das ist ja der Sinn der Sache,
dass ihr nachdenkt
Was meinte ich damit? Warum hat sich Willfallen da als
die Mühe gemacht, noch so eine komische Box da einzuzeichnen
und sich dafür eine Menge Ärger in der Peternet-Community einzuhandeln?
Ja, also von der Idee, da ist ja vorhanden,
das ist sofort hier auf eine Aktion, die ausgeführt wird,
die dabei schon entscheidet, welches Folgenetz quasi aktiviert wird.
Also ob jetzt der B-Start. Richtig. Und hier oben?
Das ist es quasi ein Platz, von dem das ausgeht.
Und dann wird ein... Dann entscheidet ja wieder der Platz
. Das ist ja auch wieder eine Aktivität.
Platz ist ja keine Transition, die bescheiden ist.
Genau. Also die
Alles ist ein Objekt. Alles kann das tun sozusagen.
Oder der Metapher kann man durchaus auch sagen, okay,
der Platz schaltet ja auch, also der macht auch was.
Das ist für euch nicht die richtige Denkart.
Jetzt sozusagen an dieser Stelle. Aber vom Prinzip hast du
genau recht. Aber nicht der Platz entscheidet,
also das ist jetzt eine ganz wichtige Sache.
Wenn der Platz entscheidet, ist es eine aktive Einheit im System.
Deswegen sage ich, ja, ich teile deine Meinung,
dass Plätze auch aktive Einheiten sein können.
Ich weiß, was schön ist. Kann also quasi
die Entscheidung machen. Dirk Hauschelt hat in seinem Simulator,
die Sachen findet ihr hier in der Bibliothek
Anfang der 90er Jahre in Simulator geschrieben, wo die Plätze entscheiden,
wie die Marken verteilt werden in so einem Fall, in verteilten Systemen.
Und Dirk Tobner hat parallel dazu einen Simulator geschrieben,
der gesagt hat, der ist explizit durch Transitionen entschieden wird,
wie die Marken verteilt werden.
Heino Carstens hat ebenfalls so einen Simulator geschrieben.
Man kann also entweder bestellen durch Transitionen diese Konflikte lösen lassen,
wie man das irgendwie auflöst. Und das Interessante ist,
wenn ich jetzt im verteilten System bin und A und B und C,
der sitzt in Hamburg und der sitzt in New York und die müssen sich darum schlagen,
wer nun diese Marke da kriegt,
dann ist das
ein verteilter Konflikt
Hier vorne ist das so, da wird der Konflikt lokal in dieser Handlung gelöst.
Es gibt an einer Stelle eine Entscheidung und die geht da oder dahin.
Und dann haben diese beiden B&C sozusagen gar keine andere Wahl.
Entweder er kriegt das in New York oder er kriegt es in Hamburg,
aber man muss nicht über diese großen Grenzen hinweg diese Entscheidungen treffen.
Das ist die Idee dahinter. Das ist der zweite Ohmlokal. Boah,
das ist genau eine der Sachen, dass man natürlich weiterhin sagen kann,
dieses C2 ist ja auch an einem Ort und wem er die Marke gibt,
das entscheidet er und so weiter und so fort.
Aber vom Denktechnischen her, von der Struktur her hier,
Es ist so, dass diese beiden aktiviert sind.
Also sowohl der in New York als auch der in Hamburg bekommen die Nachricht auf seinen,
auf ihren Laptop, auf ihre Maschinen, auf ihr Handy,
auf ihr Handy, was auch immer.
Du, du kannst jetzt den Job B oder C hier loslegen.
Und dann sagt der eine, jo, mache ich.
Und der andere, am anderen Ort sagt, auch ja, mache ich.
Und was passiert denn dann? Weil diese Steuerung,
ich will da Systeme steuern dadurch oder sie unterstützen.
Und wenn beide das hatten und die haben beide gesagt,
ja, mache ich das doch mal, dann was passiert?
Na gut, die wundern sich, einer kann gewinnen.
Wo hat keiner ihr eben bei jeder Denkwürde,
die ist jetzt schon richtig.
Genau, das ist das. Nicht handeln ist dann
genauso schlimm
Ich bin mir sicher, einer von denen deckt das schon.
Exakt, genau. Die Verantwortlichkeit ist dann klar, ja.
Aber kannst du bei dem runter nicht auch passieren,
also da müsste doch A quasi dann vorher schon eine Vermutung
darüber äußern, wer von B uns hilft.
Genau, und das ist der Nachteil.
Exakt, genau. Genau, das ist der Nachteil,
der dann nämlich entsteht. A, trifft eine Entscheidung,
ob B oder C was zu tun hat.
Wenn A, aber in Amsterdam sitzt und sorgt dafür,
dass jetzt der in Hamburg nochmal einen Auftrag zugeschoben bekommt.
Aber der in Hamburg hat so und so lange unter,
oder bei dem ist schon Feierabend. Und der in New York
könnte jetzt noch was tun oder bekommt das aber nicht.
Weil ja die Entscheidung gefallen ist,
es muss B sein, dann kann ich das nicht
wieder zurücknehmen
Solange es da oben liegt, sind beide aktiviert und B geht nach Hause,
schläft schon und C, New York, der sagt,
ja, jetzt lege ich los, weil jetzt,
ich sehe das ja in der Box und der in Hamburg ist noch nicht mehr da,
weil wenn er es überhaupt sieht, dass Hamburg das als Alternative hat,
das ist noch die nächste Frage,
ob das auch immer transparent für die Leute ist,
dass sie wissen, dass da jemand ein Konflikt zu ihnen steht,
also das mit den Sachen,
ob die Bucks dann sozusagen von anderen bearbeitet werden,
wo man immer weiß,
das wird schon immer anders tun.
In dem unteren Modell wäre es so,
wenn ich etwas in meiner Mailbox finde oder in meinem In-Corb sozusagen,
meiner Inbox, wenn ich was habe,
dann weiß ich nur ich, werde das bearbeiten,
das liegt so lange, bis ich es abgearbeitet habe,
mit den entsprechenden Engpässen, es liegt in Hamburg,
die Daten und der in New York,
der kann diesen Fall, der ganz dringend ist,
nicht bearbeiten, weil die Daten liegen in Hamburg und da schlafen alle.
Also genau das ist sozusagen eine der Überlegungen,
die dahinterstehen und die zeigt,
wie lächerlich so ein kleines Konstrukt hier ist,
aber an dieser Stelle, da wurden jede Menge Papiere zugeschrieben.
Also wie man das handelt, warum man das macht,
warum man das nicht macht und so weiter.
Ihr kriegt hier nur die Kurzfassung jetzt gerade zu diesen ganzen Sachen.
Noch besser wird es gleich mit der Interpretation,
wenn das Ganze mit einem Ohr noch läuft,
aber das machen wir gleich
Das andere ist hier unten,
dass wir hier eine Schleife haben, wo wir dann sagen,
okay, hier benutzen wir unseren Explicit Orsplit dazu,
dass wir entweder da oder dort eine entsprechende Schleife drin haben.
Natürlich kann man die Schleife auch durch so ein Konstrukt machen,
da muss man entscheiden,
wer schaltet denn da und was aufgrund welcher Grundlage passiert das jetzt,
dass ich den Vorgang wieder nochmal durchlaufe und das B hier immer wieder mache.
Und irgendwann bin ich fertig. Ja,
Fragen zu diesen letzten? Nö, ne? Gut,
damit habt ihr so die wichtigen Dinge davon sozusagen verstanden.
Da gibt es jetzt noch das Ganze als Endsplit und Enjoying,
was natürlich eine Selbstverständlichkeit ist, weil das ist ohnehin so ein Takt,
also das ist nur Das Ganze nochmal andersrum gezeichnet jetzt hier.
Hier ist der Implicit-Orsplit und der Explicit und die jeweiligen entsprechenden Gegensymbole dazu.
Und hier sehen wir auch nochmal das Explicit or Join als Idee dahinter.
Bei dem Endzweck, der Großangelege, das ist eine normale Tradition.
Keine, das sage ich hier gerade, das ist nur so ein Taktik-Sugar.
Genau, das ist die richtige Frage. Das war das,
was ich meinte mit, das ist nur so ein Taktik-Sugar,
das hätte man gar nicht aufzeichnen müssen, weil es ohnehin ist,
aber das soll das Kompliment dazu sein,
wenn ich schon so komische Transitionen mit einmal habe,
dann darf ich auch solche komischen Teile haben.
Wobei, naja, also ich habe es weggelassen.
Gut, dann müsst ihr doch irgendwie sagen,
Wir wollen euch annotieren, wodurch das geschaltet wird.
Das heißt, das passiert automatisch, das sind die Teile,
die ich im System im Computerprogramm belasse und der Mensch ist irrelevant an der Stelle,
sondern es läuft einfach durch.
Es ist eine interne Verarbeitung und ich weiß, es läuft einfach durch.
Oder aber hier drückt ein User so einen Knopf,
der drückt seine Taste und sagt, jo,
ich mache das und löst das aus.
Oder es kommt eine Nachricht rein, wo immer auch her,
welche Art auch immer diese Nachricht ist, wie das technisch realisiert wird,
ob nun bei Menschen in einem tatsächlichen Papierfolder auf irgendeinem Schreibtisch,
in meiner Inbox,
in meinem Mail-System,
wie auch immer
Und das andere ist, dass ein Timeout hier läuft und sagt,
okay, ich habe jetzt hier die entsprechende Zeitbedingung für die Bearbeitung und die ist um.
Und deswegen geht das los. Was ist das Problem?
Das Problem ist, dass diese Workflow-Prozesse oft nicht richtig verstanden werden.
Also mir ist selbst in Papieren passiert,
dass ich Netze, die ich richtig hatte,
dann irgendwie nochmal kurz überarbeitet habe, kurz vor Abgabe.
Und ich tatsächlich sozusagen unsinnige Modelle abgeschickt habe,
weil ich selbst ein Netz mit fünf Transitionen und fünf Stellen nicht mehr so überblickt habe,
dass es ein sinnvolles Workflow-Netz war,
also ein korrektes Werk nach nur irgendwelches,
was ich damit meine.
Oder beim nächsten Mal werden wir
das noch sehen
Dieses nicht richtig verstandene, das heißt, es gibt Mehrdeutigkeiten,
Widersprüche und Verklemmung. Allein schon, wenn man das versucht,
so aufzumalen, werden schon Fehler aufgedeckt.
Also das ist schon mal das Erste. Das heißt,
für sonstige Beschreibungen ist es sehr hilfreich,
wenn man überhaupt mal ein Netzmodell aufzeichnet.
Es helfen aber auch andere Modellierungstechniken, das ist gar keine Frage,
um sich überhaupt Prozesse bewusst zu werden.
Das ist der erste Schritt. Der zweite Schritt ist aber,
dass man anhand von strukturellen Untersuchungen jetzt aufdecken kann,
ob da Fehler drin sind und dann kann es jetzt automatisieren
Ich weiß, dass bestimmte Dinge nicht sozusagen wir ein konsistentes,
sinnvolles Ergebnis liefern, was ich erwarten darf,
wenn ich so ein Workflow habe, wo ich sage,
ich schmeiße einen vorne in Münster rein und hinten komme,
genau, da kommt genau eine Münze wieder raus und dazwischen ist dann alles abgearbeitet worden mit allen Nebenläufigkeiten,
egal welche Fälle, egal wie es abgelaufen ist,
es gilt immer.
So, ein Beispiel, wir haben hier das Redgester und
das schaltet entsprechend hier rein, was können wir dann machen?
Wir können hier unten das Processing schalten und wir schalten da
oben das Timeout und ja, was machen wir dann?
Dann schalten wir dieses hier und haben unsere Endmarkierung, was
Aber ich habe hier vorne auch noch eine Marke liegen und
die bleibt da irgendwie hängen. Also ich habe hier eine Beschreibung,
womit einmal irgendwie Teile der Bearbeitung irgendwo im System liegen bleiben.
Ist nicht schön, wollen wir eigentlich nicht haben.
Das ist also irgendwie eine falsche Marke,
die da drin nichts zu suchen hat. Andere Möglichkeit ist,
ich packe das da rein, ich schalte hier unten längs,
jetzt schalte ich aber da drüben hin.
Da habe ich das gleiche Problem nochmal. Das habe ich
auf der anderen Seite halt die falsche Marke liegen und die stört mich auch.
Nächste Möglichkeit, ich laufe wieder durch und schalte jetzt da
oben hin und schalte ich nur ein doppeltes, zweites Mal da oben längs.
Auch nicht besser, wieder eine falsche Marke drin,
weil wir jetzt zweimal schalten können, geht zwei Marken da hinten raustun können.
Eigentlich ist die andere Marke die falsche,
aber lassen wir das machen
Jetzt haben wir, dass die andere falsch ist.
Gut. Die Idee ist jetzt, das zu formalisieren.
Was stört mich jetzt also da dran? Was hatte ich
für Fälle? Naja, ich hatte irgendwie die Möglichkeit,
Marken drin liegen zu lassen oder irgendwie da zu viele Marken
hinten rauszukriegen oder gar keine oder wie auch immer.
So ein Workphone Netz, was wir ja vorher definiert hatten,
mit anfangs einer Endstelle und alle liegen auf dem Pfad.
Die heißen entsprechend korrekt, wenn aus jeder erreichbaren Markierung eine
ordnungsgemäße Termination möglich ist, was wir entsprechend so auftreiben.
Für alle Markierungen sind Bereichbarkeitsgrafen existiert, eine Schaltfolge,
die beliebig lang sein kann,
sodass wir von dem M bis ME irgendwie schalten können.
Also was immer wir erreichen,
wir kommen immer zur ME
Eine Sache. Genau eine Marke in dem Endplatz E
ist die einzige Möglichkeit zu terminieren. Das heißt,
es darf keine drin liegen bleiben. Das sagen wir,
dass für alle Markierungen es so sein muss,
dass die Menge der Marken in dem Endplatz,
Größe gleich eins ist und alles andere ist gleich null.
Das ist sozusagen dadurch ausgedrückt, wenn du das als Markierung haben.
Die andere Sache ist, jede Transition kann in der
möglichen Schaltfolge schalten, denn sonst wäre sie nutzlos.
Wir müssen also auf jeden Fall auch Details,
die wir im System haben, auch aktivieren können.
Das ist das, was wir da haben.
Für alle Transitionen existiert irgendeine Markierung im Bereichbarkeitsgrafen,
für die wir diese Transition aktivieren können.
Und damit haben wir ein korrektes Workflow-Netz
Definiert. Und jetzt können wir noch gucken, ist es
das eigentlich, ja? Am Ende eine Marke dritt,
wenn du mir rufst, dass wir, ja,
weil genau die Endmarkierung genau da drin sein soll.
Also dieses ME bedeutet das nur auf der Stelle eh,
sozusagen die Marke liegt, das muss jetzt das Vektor hinschreiben,
hätte man ein bisschen ausführlicher hinschreiben können.
Das ist jetzt die abkürzende Schreibweise,
dass dieses M gleich ME ist,
weil alle anderen leer sind und nur auf der Stelle eh eine Marke liegt.
Das sollte sich das ME
ausgedrückt werden.
Das hier ist ein größer Gleichweil Limarkierung, kann ja durchaus auch größer gleich sein.
Daraus folgt, dass das so ist. Das sagt erstmal
nur, dass er mindestens eine Macke drauf ist.
Und hinterher sage ich, okay,
es darf auch nur genau diese eine Marke markieren.
Genau. Und das drücken wir hier oben mit aus.
Erzähl beim nächsten Mal nochmal. Das schaust du nochmal an
. So, dass das Workflow jetzt korrekt ist,
hat jetzt entsprechend dazu zur Folge, dass wir einen Abschluss bilden können.
Wir können nämlich jetzt einen Bogen rumlegen und das Ende an
den Anfang koppeln. Und dann haben wir das Ganze,
dass das Netz lebendig ist und beschränkt
Und warum das so ist und warum es jetzt ein Satz und keine Definition ist,
könnt ihr euch mal überlegen, was also der Unterschied zwischen den Satz und den Definitionen,
die wir da antreffen, guckt euch an und wir haben einen Schnelldurchgang dann nächstes Mal durchgehen,
um dann die restlichen Themen, die jetzt noch anstehen,
bis zum Ende des Kapitels durchzugehen.
Wir haben ja noch dieses Semest, also dieses Jahr noch zwei Veranstaltungen,
dann wird wieder gewechselt, dann übernimmt wieder Herr Falk,
der ist ab Januar dann dran erstmal und ich übernehme die letzten beiden Veranstaltungen,
wo wir dann allerdings noch ein Thema haben und dann nochmal einen Rückblick haben über die Inhalte wo dann einmal das sozusagen angucken,
was bei der Klausur nochmal spannend sein könnte,
was es immer noch zu Fragen gab und so ähnlich.
Gut, für heute sind wir endlich durch und bis
nächsten Dienstag
wieder hier