Übung 1, Aufgabe 2 (Petrinetze)

Benutzeravatar
leviathan
Computerversteher
Computerversteher
Beiträge: 307
Registriert: 30. Jul 2008 14:26
Wohnort: Darmstadt
Kontaktdaten:

Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von leviathan »

In der Aufgabe 1.2 heißt es im Erklärungstext:
Hierzu wird der Motor M1 angesteuert bis die horizontale Position y_soll erreicht wird, sowie gleichzeitig auch der Motor M2 bis die vertikale Position x_soll erreicht wird.
Allerdings verstehe ich die Petrinetze so, dass nur eine Transition gleichzeitig gefeuert wird, und die Transitionen t1 und t2 somit mit einem Zwischenplatz hintereinander geschaltet werden müssen (sonst kann ja nur eine davon gefeuert werden, danach ist die Markierung in P2 weg). Dann werden die Motoren aber nicht gleichzeitig, sondern eben nacheinander angesteuert. Ist mein Verständnis hier falsch (und es können doch zwei Transitionen von einem Platz gleichzeitig feuern), oder gibt es einen anderen Weg, die Aufgabe zu lösen und diese Bedingung beizubehalten?
Ein Programmierer hat immer eine Lösung. Die passt nur nicht immer zum Problem.

Hiwi für Weiterentwicklung des Lernportals (Moodle).

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von Osterlaus »

leviathan hat geschrieben:Ist mein Verständnis hier falsch (und es können doch zwei Transitionen von einem Platz gleichzeitig feuern), oder gibt es einen anderen Weg, die Aufgabe zu lösen und diese Bedingung beizubehalten?
Schau dir mal die textuelle Definition auf Folie 02.26 ganz unten (Schaltbereite Transitionen können schalten („feuern“), wobei eine Marke aus jedem Eingangsplatz weggenommen und in jeden Ausgangsplatz eine Marke hinzugefügt wird.) und das Beispiel zwei Folien weiter an. Mehrfache Ausgänge aus einer Transition sind nicht ausgeschlossen.

Benutzeravatar
leviathan
Computerversteher
Computerversteher
Beiträge: 307
Registriert: 30. Jul 2008 14:26
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von leviathan »

Osterlaus hat geschrieben:Schau dir mal die textuelle Definition auf Folie 02.26 ganz unten (Schaltbereite Transitionen können schalten („feuern“), wobei eine Marke aus jedem Eingangsplatz weggenommen und in jeden Ausgangsplatz eine Marke hinzugefügt wird.) und das Beispiel zwei Folien weiter an. Mehrfache Ausgänge aus einer Transition sind nicht ausgeschlossen.
Mir geht's weder um mehrfache Ausgänge noch um mehrfache Eingänge, das ist klar, dass es die geben kann. Mich interessiert die Situation, wo ich in dem Platz P1 zwei ausgehende Transitionen habe (t1 und t2), und diese laut Erklärungstext gleichzeitig gefeuert werden müssen. Allerdinds ist in P1 ja nur eine Marke vorhanden, was eigentlich nur eine Transition feuern lassen sollte, wonach das Ganze in einem Deadlock endet.
Ein Programmierer hat immer eine Lösung. Die passt nur nicht immer zum Problem.

Hiwi für Weiterentwicklung des Lernportals (Moodle).

Christian_
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 178
Registriert: 10. Apr 2009 16:30

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von Christian_ »

ich habe das selbe Problem.
mir ist nicht klar, wie P1, P2, t1 zusammenhängen
Omnium rerum principia parva sunt. -Cicero

Stumpf.Alex
Nerd
Nerd
Beiträge: 647
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von Stumpf.Alex »

Es können mehrere Transitionen gleichzeitig feuern, sofern alle Plätze, welche auf die Transition verweisen mind. eine Makrierung tragen. Auch eine einzelne Makierung kann mehrere Transitionen feuern, wodurch auch mehrere neue Makierungen entstehen können. (leider falsch, sry!) Analog kann auch eine Transition mehrere Makierungen "schlucken" und nur noch eine einzige als Ergebnis ausgeben. Wenn man genau hinschaut, kann man dies auch aus der Folie 2-41 entnehmen.

EDIT: Interessant hierbei ist, dass alles zeitdiskret passiert. Also für den Übergang in den neuen Zustand des Petrinetzes wird nur der alte Zustand betrachtet. Der Zwischenzustand ist irrelevant. Deswegen steht dort auch extra "...nach Schalten aller aktivierter...".

Christian_
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 178
Registriert: 10. Apr 2009 16:30

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von Christian_ »

dass eine Markierung auch für mehrere Tansitionen gleichzeitig verwendet weren darf kam in der Vorlesung überhaupt nicht so rüber. eher das Gegenteil.
Omnium rerum principia parva sunt. -Cicero

Gallontzke
Erstie
Erstie
Beiträge: 22
Registriert: 22. Mär 2010 21:22

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von Gallontzke »

Stumpf.Alex hat anscheinend Recht.
Schade, dass dieser nicht unwichtige Sachverhalt in der Vorlesung nicht deutlich wurde.

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von dschneid »

Was Stumpf.Alex sagte gilt doch meines Wissens nur, wenn es keine Konflikte gibt. Das steht auch explizit so auf der Folie 2-41, auf die er verwiesen hat. Ich verstehe das so: Man kann, sofern es eben keine Überschneidungen/Konflikte gibt, die neue Markierung nach dem Feuern aller aktiven Transitionen durch diese eine Berechnung erhalten. Nichtsdestotrotz feuern die Transitionen aber nicht gleichzeitig, sondern nacheinander, wobei die Reihenfolge egal ist (solange es eben keine Konflikte gibt), weswegen man das dann alles in einem Schritt machen kann. Man kann das am Netz aus b) nachvollziehen, für das man ja in c) einen Erreichbarkeitsgraph erstellen soll. Da gibt es diverse Stellen, wo man mit einer unterschiedlichen Reihenfolge auf denselben Zustand kommt.

Dass keine zwei Transitionen wirklich gleichzeitig feuern können, sehe ich so, weil auf Folie 2-30 gesagt wird, dass eine Transition ausgewählt wird, und weil in keinem der Erreichbarkeitsgraphen, die ich auf den Folien und in alten Musterlösungen gesehen habe, der Fall vorkommt, dass eine Übergangskante zwischen zwei Zuständen des Netzes mit zwei Transitionen beschriftet ist (also zwei Transitionen gleichzeitig feuern), selbst wenn das möglich wäre, sondern immer nur mit einer.

So: Was aber leviathan beschreibt (und auch mein Ansatz wäre) ist, dass zwei Transitionen am selben Platz hängen und beide aktiv sind. Nach allem, was ich im Internet gelesen habe, ist das dann ein Konflikt. (Darauf wird leider auf den Folien nicht weiter eingegangen.) Dann kann man aber die Berechnung von Folie 2-41 nicht benutzen, weil ja (unter der Annahme, dass tatsächlich immer nur eine Transition feuert) nicht klar ist, welche dies zuerst tut, damit die einzige verfügbare Marke wegnimmt und die jeweils andere Transition wieder "abschaltet". Die Reihenfolge ist in diesem Falle daher nicht egal.

Vielleicht noch ein anderer Blickwinkel: Auf der Folie 41 steht, dass diese gleichzeitige Neuberechnung möglich ist, wenn mehrere Transitionen aktiviert und nicht nebenläufig sind. Das versuchen wir hier aber ausdrücklich zu machen (die Motoren sollen sich gleichzeitig bewegen). Also geht das so nicht.

Das hilft wahrscheinlich alles nicht unmittelbar zur Lösung der Aufgabe. Ich würde aber gerne wissen, ob Transitionen echt parallel feuern können. Das sehe ich, aufgrund der genannten Anhaltspunkte und dem, was ich sonst gelesen habe, eben nicht so. Und das scheint ja auch mit dem Eindruck anderer übereinzustimmen.

AlexanderF
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 140
Registriert: 2. Mai 2010 17:55

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von AlexanderF »

hallo,

ich hab auch noch eine Frage zu dem Verhältnis des hintereinander bzw. gleichzeitigem Schaltens.

Auf Folie 41 wird ja die Aktivierungsfunktion u_j eingeführt, die anscheinend anzeigen soll, ob eine Transition j momentan feuern kann, oder nicht (1 oder 0)
(wobei die Definition von u_j meiner Meinung nach etwas seltsam aussieht).
Danach folg ja eine Formel die die neue Anzahl der Markierungen an einem Platz berechnet .
Und zwar als alte Anzahl Markierungen auf diesem Platz , dann -1 für jede feuerbereite Transition, die diesen Platz als einen der Vorplatze haben,
und +1 für jede feuerbereite Transition, die den Platz als einen der Nachplätz hat.

Wobei gesagt wird, dass diese Formel nur gilt, wenn keine "Konflikte" auftreten, wobei Konflikt beschrieben ist als "wenn
mehrere Transitionen aktiviert und nicht nebenläufig sind", wobei mir hier auch nicht klar wird, was es bedeutet, dass zwei Transitionen nebenläufig bzw. nicht nebenläufig sind.

Auf Wikipedia steht dazu: "Konflikt: Es besteht ein Konflikt bei einer nicht nebenläufigen Aktivierung von zwei Transitionen. Im Vorbereich bedeutet das, dass zwei Transitionen die gleiche Marke benötigen, um zu schalten. Im Nachbereich sind es zwei Transitionen, die Marken erzeugen können, aber die Kapazität nicht für beide ausreicht."
Dass hieße also, dass es z.B. ein Konflikt ist, wenn ein Platz mit einer Markierung Vorplatz zweier unterschiedlicher feuerbereiter(schaltbereiter) Transitionen ist.
Das macht auch Sinn, da, wenn man die Formel aus Folie 41 hier anwenden würde, käme, nach der Berechnung dieser Formel heraus, dass die neue Anzahl der Markierungen an diesem Platz -1 wäre (bzw. analog über der Kapazitätsgrenze liegen würde), wobei ich auf Grund des Terminus "Markierungen" mal davon ausgehe, dass an dieser Stelle eigentlich ein Wert aus dem Zahlenbereich N und nicht aus Z gemeint sein sollte, auch wenn dies auf Folie 26 nicht erwähnt wird.

dschneid erklärt das Verhältnis zwischen Hintereinander- und Gleichzeitigem Schalte so, dass diese Berechnung auf Folie 41 quasi den Zustand des Petrinetzes (also die Anzahl der Markierungen auf den Plätzen) berechnet, wie nach dem Schalten aller momentan feuerbereiten Transitionen, welcher unabhängig ist, von der Reihenfolge, in der die Transitionen schalten.
Das macht soweit Sinn,
allerdings kann es ja auch vorkommen, dass noch bevor alle feuerbereiten Transitionen geschaltet sind, durch das Löschen und Setzen von Markierungen, weitere Transitionen feuerbereit(also schaltbereit) sind und dann gefeuert werden könnten, bevor alle vorherigen schaltbereiten Transitionen geschaltet haben.

Auf den Folien 26ff sieht es auch eher so aus, als ob die Transitionen irgendwie schalten, also dass sie unter Berücksichtigung der Formel auf Folie 41 schalten würden.

Stumpf.Alex
Nerd
Nerd
Beiträge: 647
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von Stumpf.Alex »

dschneid hat geschrieben:Vielleicht noch ein anderer Blickwinkel: Auf der Folie 41 steht, dass diese gleichzeitige Neuberechnung möglich ist, wenn mehrere Transitionen aktiviert und nicht nebenläufig sind. Das versuchen wir hier aber ausdrücklich zu machen (die Motoren sollen sich gleichzeitig bewegen). Also geht das so nicht.
Dazu sollte man sich informieren, was der Begriff "nebenläufig" heißt und feststellen, dass sich beide Motoren nur aus einem gemeinsamen kausalen Grund bewegen, weshalb es hier nicht nebenläufig ist.

AlexanderF
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 140
Registriert: 2. Mai 2010 17:55

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von AlexanderF »

Stumpf.Alex hat geschrieben: Auch eine einzelne Makierung kann mehrere Transitionen feuern, wodurch auch mehrere neue Makierungen entstehen können. Analog kann auch eine Transition mehrere Makierungen "schlucken" und nur noch eine einzige als Ergebnis ausgeben. Wenn man genau hinschaut, kann man dies auch aus der Folie 2-41 entnehmen.
Bei genauem Hinsehen, kann ich das gerade nicht aus Folie 2-41 entnehmen, da dort explizit steht "unter der Annahme, dass keine Konflikte auftreten".
und wenn ich unter Konflikt nach der Definition von Wikipedia gehe:
"Konflikt: Es besteht ein Konflikt bei einer nicht nebenläufigen Aktivierung von zwei Transitionen. Im Vorbereich bedeutet das, dass zwei Transitionen die gleiche Marke benötigen, um zu schalten. Im Nachbereich sind es zwei Transitionen, die Marken erzeugen können, aber die Kapazität nicht für beide ausreicht."
wird dies eben gerade verhindert.

AlexanderF
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 140
Registriert: 2. Mai 2010 17:55

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von AlexanderF »

Mir ergibst sich, wenn ich die letzen Foreineinträge betrachte folgendes Problem bei Bearbeitung der Aufgabe 1.2 a):

"Bauteil liegt zur Montage bereit" und "Werkzeug in Startposition" würde ich beide als Bedingung für sowohl "Motor M1 bewegt Werkzeug y_soll" als auch für "Motor M2 bewegt Werkzeug nach x_soll" sehen,
das heißt ich würde etwa folgende Modellierung wählen: P1, P2 Vorplätze von t1; P1, P2 Vorplätze von t2;
da jedoch als Startbmarkierung (1, 1, 0, 0, 0) vorgegeben ist, kann nur t1 oder t2 geschaltet werden, jedoch nicht beide (unabhängig ob nacheinander oder gleichzeitig).
Also kann nur einer der beide Motoren gestartet werden.

Da die vorgegebene Startmarkierung 5 Einträge hat, gehe ich davon aus, dass keine weiteren Plätze und wahrscheinlich auch keine weiteren Transitionen als die vorgegebenen, verwendet werden sollen, sehe ich das richtig?

Und da ich in den Folien nur die Definition von nichtlebendigen Petrinetzen sehe,
kann ich davon ausgehen, dass ein Petrinetz lebendig ist, wenn es nicht nichtlebendig ist, also wenn es keine tote Transition enthält?
Zuletzt geändert von AlexanderF am 28. Okt 2010 15:16, insgesamt 1-mal geändert.

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von dschneid »

zu AlexanderF: Ich bin auch der Meinung, dass ein Petri-Netz sich mehr wie in 26ff verhält. Die Formel auf Folie 41 macht ja noch die zusätzliche Annahme, dass zuerst alle zu einem gewissen Zeitpunkt aktiven Transitionen nacheinander feuern und erst dann eine andere. Das steht ja vollkommen im Widerspruch zum Nichtdeterminismus der Auswahl der feuernden Transitionen. Die wiederholte Anwendung dieser Funktion (wäre das immer möglich) würde ja quasi ein deterministisches Fortschreiten des Zustands der Markierungen bedeuten. Es wäre dann auch jeder Erreichbarkeitsgraph einfach eine lineare Liste. Das kann's aber wohl kaum sein.

zu Stumpf.Alex: Okay, ich habe mich hier ungenau ausgedrückt. In der Tat sind die beiden Ereignisse nicht nebenläufig, weil sie vom selben Startsignal, wie im Aufgabentext beschrieben, abhängen. Das ist aber gerade das Problem: Werden die beiden Aktionen aufgrund des selben Signals ausgelöst, so müssen die Transitionen t1 und t2, die für die beiden Motorenbewegungen stehen, gleichzeitig feuern. Und das scheint mir nicht möglich. Mir fällt jedenfalls keine andere sinnvolle Art ein, t1 und t2 einzubinden, sodass nicht erst P3 und dann P4 durchlaufen werden. Ich bin mir zumindest ziemlich sicher, dass es das nicht sein kann.

Mir kommt es so vor, als wären die Folien zu diesem Thema im Vergleich zu letztem Semester eingedampft geworden und jetzt fehlten einige wichtige Dinge. Beispielsweise ist es bedauerlich, dass weder der Begriff des Konfliktes noch der Nebenläufigkeit eingeführt wurden.

EDIT: Ich würde genau dieselbe Modellierung wie AlexanderF wählen. Unsere Probleme scheinen identisch zu sein.

franzose
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 146
Registriert: 9. Okt 2009 00:08

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von franzose »

Stumpf.Alex hat geschrieben:Es können mehrere Transitionen gleichzeitig feuern, sofern alle Plätze, welche auf die Transition verweisen mind. eine Makrierung tragen. Auch eine einzelne Makierung kann mehrere Transitionen feuern, wodurch auch mehrere neue Makierungen entstehen können.
ohne die ganze nachfolgende Diskussion verstanden zu haben, wenn ich mich an diese Aussage halte, dann bekomme ich beim Erreichbarkeitsgraphen in der letzten Aufgabe keine Probleme (meine Übergangskanten zwischen 2 Zuständen dürfen ja demnach mehrere Transitionen als Beschriftung tragen)


oder verstehe ich etwas völlig falsch?

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Übung 1, Aufgabe 2 (Petrinetze)

Beitrag von mister_tt »

Ich auch nich...

Antworten

Zurück zu „Archiv“