SS 2006 Musterlösung 2 26. April 2006 Universität Paderborn Institut für Informatik Ekkart Kindler Übungen zur Vorlesung Petrinetze Aufgabe 1 a. Das folgende Petrinetz modelliert die Straßenabschnitte und das Bahngleis. Eine Marke auf einer der Stellen s1, s2 oder s3 repräsentiert ein Auto auf dem entsprechenden Streckenabschnitt. g1 s1 g1’ s3 s2 g2 g2’ s2’ g3 g3’ Eine Marke auf der Stelle s20 bedeutet, daß sich kein Auto auf dem Übergang befindet. Ein Auto kann den Übergang nur befahren, wenn sich kein Auto auf dem Übergang befindet. So ist sichergestellt, daß sich immer nur ein Auto auf dem Übergang befindet. Die Stelle s20 nennen wir Komplement von s2. 1 Um sicherzustellen, daß sich immer höchstens ein Zug auf jedem Gleisabschnitt befindet, führen wir auch für die Gleisabschnitte g1, g2 und g3 die entsprechenden Komplementstellen ein. b. Die Möglichkeit eines Zusammenstoßes eines Autos mit einem Zug auf dem Übegang, können wir durch eine Transition modellieren, die Stellen s2 (ein Auto auf dem Übergang) und g2 (ein Zug auf dem Übergang) im Vorbereich und eine Stelle Schrott1 im Nachbereich hat. Dies ist im folgenden Petrinetz dargestellt, wobei wir der Übersichtlichkeit halber die Strecken nun untereinander darstellen: Schrott 2 s2 2 s1 2 s3 s2’ Schrott 1 g1’ g2’ g3’ g1 g2 g3 Die Unfälle zweier Autos können wir durch entsprechende Transitionen für die Streckenabschitte s1 und s3 modellieren. Die Kante ist mit 2 beschriftet, weil wir den Zusammenstoß zweier Autos modellieren. Bemerkungen: Daß ein weiteres Auto auf die zusammengestoßenen Autos auffährt, haben wir nicht modelliert. Das wäre im Prinzip möglich. Das zeigt bereits, daß wir immer nur einen Ausschnitt der Wirklichkeit modellieren können; von vielen anderen 2 Dingen abstrahieren unsere Modelle. Ein Modell ist dann gut, wenn es die wichtigen Aspekte repräsentiert und von den unwichtigen abstrahiert. Was wichtig ist, hängt dabei von der Anwendung und von der Fragestellung ab. In unserem Modell besteht nur die Möglichkeit eines Zusammenstoßes; einen Zusammenstoß können wir (in unserem Modell) nicht erzwingen. Dies ist in unserem Modell auch realistisch. c. Das folgende Petrinetz modelliert eine Bahnschranke, die den Zusammenstoß eines Zuges mit einem Auto verhindert. Schrott 2 s2 2 s1 2 s3 s2’ offen Schrott 1 geschlossen g1’ g2’ g3’ g1 g2 g3 Durch etwas Herumprobieren, kann man sich überzeugen, daß keine Marke mehr auf Schrott1 gelangen kann – also kein Auto mehr mit einem Zug zusammenstoßen kann. Wir werden später Techniken kennenlernen, mit deren Hilfe wir präzise beweisen können, daß unser Modell richtig ist. In unserem Modell sind die Schlingen zu den Stellen s20 und g20 sehr wichtig! Sonst könnten weiterhin Autos mit Zügen zusammenstoßen: Die Schranke könnte sich 3 schließen, wenn sich gerade ein Auto auf dem Übergang befindet; dann könnte ein Zug kommen ... Bemerkung: Unser Modell ist nicht ganz realistisch; denn die Schranke kann sich nur schließen, wenn sich kein Auto mehr auf dem Übergang befindet. In einem genaueren Modell müsste man die Schranke in jedem Falle schließen können; lediglich mit der Freigabe der Strecke müßte man warten, bis sich kein Auto mehr auf dem Übergang befindet. In der Wirklichkeit wird allerdings nicht einmal überprüft, ob sich noch ein Auto auf dem Übergang befindet. Auch dieses Beispiel zeigt wieder, daß es nicht so leicht ist das richtige Modell zu entwerfen. Unfälle von Autos auf den Straßenabschnitten könnten wir theoretisch genauso ausschließen wie für Züge: durch Blocksicherung. In der Praxis würde dann jedoch der Verkehr zusammenbrechen. Aufgabe 2 a. Für zwei Elemente x, y ∈ S ∪ T mit x ∈ • y gilt auch y ∈ x• . Wir beweisen diese Aussage wie folgt: Sei x ∈ • y. Gemäß Definition gilt dann x ∈ {y 0 ∈ S ∪ T | y 0 F y}, also x F y. Damit gilt unmittelbar y ∈ x• . Bemerkung: Der obige Beweis ist fast etwas übertrieben. Später sagen wir in solchen Fällen, daß sie unmittelbar aus der Definition folgen. Daß man damit aber vorsichtig sein muß, zeigt die nächste Teilaufgabe. b. Die Aussage x ∈ (• x)• gilt nicht für alle Petrinetze! Denn der Vorbereich eines Elementes x kann leer sein: • x = ∅. Dann gilt natürlich auch (• x)• = ∅; also x 6∈ (• x)• . Konkretes Gegenbeispiel ist das Netz N = (∅, {t}, ∅). In vielen Fällen setzen wir jedoch voraus, daß es keine Elemente mit leerem Vorbereich gibt. Dann stimmt die Aussage. c. Zwei Elemente x, y ∈ S ∪ T mit • x ∩ • y 6= ∅ und x• ∩ y • 6= ∅ bedeuten noch nicht, daß das Netz nicht schlicht ist. Das folgende Netz ist schlicht, aber für x = s1 und y = s2 ist die obige Bedingung erfüllt: t1 s1 t3 t2 s2 t4 d. Ein Netz N besitzt genau dann eine Schlinge, wenn ein Element x ∈ S ∪ T mit • x ∩ x• 6= ∅ existiert. 4 Wir beweisen die genau-dann-wenn-Aussage“, indem wir beide Richtungen der ” Implikation separat betrachten: ⇒“ Sei {x, y} eine Schlinge von N . Gemäß Definition gilt dann x F y und y F x. ” Also gilt y ∈ • x und y ∈ x• . Also gilt y ∈ • x ∩ x• . Also gilt • x ∩ x• 6= ∅. “⇐“ Sei nun umgekehrt x ∈ S ∪ T mit • x ∩ x• 6= ∅. Es gibt also ein y ∈ S ∪ T mit y ∈ • x und y ∈ x• . Also gilt x F y und y F x und damit auch x 6= y. Also ist {x, y} eine Schlinge. Aufgabe 3 t t a. Es gilt m1 −→ m2 ⇒ m1 + m −→ m2 + m. t Beweis: Wir nehmen an, daß m1 −→ m2 gilt. Gemäß der Definition der Schaltregel gibt es dann eine Markierung m0 mit m1 = m0 + − t und m2 = m0 + t+ . Also gilt m1 + m = (m0 + m) + − t und m2 + m = (m0 + m) + t+ ; gemäß der Definition der t Schaltregel gilt dann auch m1 + m −→ m2 + m. t ...t t ...t n n 1 1 b. Es gilt m1 −→ m2 ⇒ m1 + m −→ m2 + m. t ...t n 1 Beweis: Induktion über n mit der Definition von m1 −→ m2 und der Aussage aus Teilaufgabe a. t ...t t ...t n n 1 1 c. Die Aussage m1 + m −→ m2 + m ⇒ m1 −→ m2 gilt im allgemeinen nicht. Denn es kann sein, daß bereits die erste Transition t1 unter m1 + m aktiviert ist, aber nicht unter m1 . Hier ist ein konkretes Gegenbeispiel: t a b t t Für m1 = [], m = [a] und m2 = [b] gilt m1 + m −→ m2 + m, d. h. [a] −→ [a, b]; aber t t es gilt nicht m1 −→ m2 , d. h. [] −→ [b]. d. Für die Teilaufgaben d., e., und f. stellen wir einige Vorüberlegungen an: • Seien n1 , n2 , k, l, n0 natürliche Zahlen mit n1 = n0 + k und n2 = n0 + l. Dann gilt n0 = n1 − k und damit n2 = (n1 − k) + l = n1 + (l − k). • Seien m1 , m2 , − t, t+ und m0 Markierungen mit m1 = m0 + − t und m2 = m0 +t+ . Dann gilt m2 = (m1 − − t) + t+ = m1 + (t+ − − t). t • Seien m1 und m2 Markierungen und t eine Transition mit m1 −→ m2 . Dann gilt m2 = m1 + t. t t Mit m −→ m1 und m −→ m2 gilt dann m1 = m + t = m2 . 5 t ...t n 1 e. Durch Induktion über nPkann man zeigen, daß mit m −→ m2 auch gilt: m1 = n m + t1 + . . . + tn = m + i=1 ti . P t1 ...tn t1 ...tn Mit m −→ m1 und m −→ m2 gilt dann m1 = m + ni=1 ti = m2 . tπ(1) ...tπ(n) t ...t n 1 f. Für m −→ m1 und m P −→ m2 gilt wegen der Kommutativität der Addition P n m1 = m + i=1 ti = m + ni=1 tπ(i) = m2 . tπ(1) ...tπ(n) t ...t n 1 g. Allerdings folgt aus m −→ m1 nicht unbedingt m −→ daß die Transition tπ(1) in m noch gar nicht aktiviert ist. m1 , denn es kann sein, Hier ein konkretes Gegenbeispiel: a t t t1 b t2 c t t 1 2 2 1 Es gilt [a] −→ [c], aber nicht [a] −→ [c], da t2 in [a] nicht aktiviert ist. Aufgabe 4 Nachfolgend geben wir den Beweis für Folgerung 2.12 und Satz 2.13. Dazu beweisen wir die drei folgenden Implikationen: a. ⇒ b. Wenn Σ unbeschränkt ist, dann besitzt Σ unendlich viele erreichbare Markierungen. b. ⇒ c. Wenn Σ unendlich viele erreichbare Markierungen besitzt, dann besitzt Σ zwei er∗ reichbare Markierungen m0 und m00 mit m0 −→ m00 und m0 < m00 . ∗ c. ⇒ ca Wenn Σ zwei erreichbare Markierungen m1 und m2 mit m1 −→ m2 und m1 < m2 besitzt, dann ist Σ unbeschränkt. a. ⇒ b. Wir zeigen die Kontraposition dieser Implikation, d. h. wenn Σ endlich viele erreichbare Markierungen besitzt, dann ist Σ beschränkt. Sei also [mi endlich. Wir müssen zeigen, daß es eine Markierung m0 gibt, so daß für jede Markierung m00 ∈ [mi gilt m00 ≤ m0 . Wir konstruieren die Markierung m0 wie folgt: Für jede Stelle s ∈ S definieren wir m0 (s) = max{m00 (s) | m00 ∈ [mi}. Da [mi endlich ist, existiert für jedes s ∈ S das Maximum und m0 ist damit wohldefiniert. Außerdem gilt per Definition von m0 für jede erreichbare Markierung m00 ∈ [mi und jede Stelle s ∈ S: m00 (s) ≤ m0 (s); also gilt m00 ≤ m0 . Das S/T-System Σ ist also beschränkt. In dieser Argumentation haben wir nirgends benutzt, daß das zugrundeliegende Netz des S/T-Systems endlich ist. Die Implikation a. ⇒ b. gilt also auch für S/T-Systeme mit unendlichem Netz. 6 b. ⇒ c. Wir nehmen an, daß [mi unendlich ist und zeigen, daß dann zwei erreichbare ∗ Markierungen m0 und m00 mit m0 −→ m00 und m0 < m00 existieren. Dazu gehen wir in zwei Schritten vor: Im ersten Schritt zeigen wir, daß der Erreichbarkeitsgraph einen Pfad m1 −→ m2 −→ m3 −→ . . . mit unendlich vielen paarweise verschiedene Markierungen besitzt. Im zweiten Schritt zeigen wir, daß es auf diesem Pfad zwei Markierungen mi und mj mit i < j und mi < mj gibt. Für m0 = mi und m00 = mj gilt dann die Behauptung. 1. Wir zeigen zunächst, daß der Erreichbarkeitsgraph einen Pfad mit unendlich vielen paarweise verschiedenen Markierungen besitzt. Dazu können uns die Menge der erreichbaren Markierungen als einen unendlichen Baum vorstellen, wobei jeder Knoten mit einer Markierung beschriftet ist. Die Wurzel dieses Baumes ist mit der Anfangsmarkierung beschriftet. Ein Knoten, der mit einer Markierung m0 beschriftet ist, besitzt genau für jede Nachfolgemarkierung m00 ein Kind mit Beschriftung m00 . Aus diesem Baum löschen wir nun alle Knoten (und die dort beginnenden Unterbäume) mit einer Markierung, die auf dem Weg von der Wurzel zu diesem Knoten schon einmal vorkommt. Wir löschen also Teilbäume, die sich wiederholen. Dieser beschnittene“ Baum hat die folgenden Eigenschaften: ” • Der Baum ist immer noch unendlich, da wir nur das wiederholte Auftreten einer Markierung löschen (es im System gemäß Annahme aber unendlich viele verschiedene erreichbare Markierungen gibt). • Auf jedem Pfad dieses Baumes sind alle Markierungen verschieden, da wir einen Knoten und seinen Unterbaum löschen, wenn eine Markierung sich wiederholt. • Jeder Knoten hat nur endlich viele Kinder, da es für jede Markierung für jede Transition höchstens eine Nachfolgemarkierung gibt (Folgerung 2.9). Achtung: Hier nutzen wir aus, daß das Netz endlich ist (eigentlich würde uns reichen, daß es nur endlich viele Transitionen gibt). • Mit Königs Lemma hat der Baum also einen unendlichen Pfad, auf dem alle Markierungen paarweise verschieden sind. Sei also m1 −→ m2 −→ m3 −→ . . . ein unendlicher Pfad auf dem alle Markierungen paarweise verschieden sind. 2. Wir zeigen nun, daß es auf diesem Pfad zwei Markierungen mi und mj mit i < j und mi < mj gibt. Dazu zeigen wir etwas allgemeiner, daß es für eine unendliche Folge von Markierungen m1 , m2 , m3 , . . . eine unendliche monotone Teilfolge mi1 , mi2 , mi3 , . . . gibt, d. h. es gibt i1 < i2 < i3 < . . . mit mi1 ≤ mi2 ≤ mi3 ≤ . . . Insbesondere gibt es dann zwei Markierungen mi < mj mit i < j (z. B. i = i1 und j = i2 ; dann gilt mi1 < mi2 , denn wir wissen daß die Markierungen der Folge paarweise verschieden sind). 7 Wir überlegen uns zunächst, daß es für jede unendliche Folge von (nicht notwendigerweise verschiedenen) natürlichen Zahlen n1 , n2 , n3 , . . . eine monotone Teilfolge gibt: Dazu unterscheiden wir zwei Fälle: • Entweder kommt eine Zahl unendlich oft in der Folge vor. Dann wählen wir diese Zahl unendlich oft aus. Dies ist die gewünschte unendliche monotone Teilfolge (wir haben nicht gefordert, daß die Teilfolge streng monoton ist). • Oder jede Zahl kommt nur endlich oft in der Folge vor. Dann konstruieren wir die monotone unendliche Teilfolge wie folgt: Wir wählen die erste Zahl aus der Folge aus. Wir nennen sie ni1 = n1 ; da jede Zahl n ≤ ni1 nur endlich oft in der Folge vorkommt, gibt es einen unendlichen Rest der ursprünglichen Folge, ab dem alle Zahlen größer als ni1 sind. Daraus wählen wir nun die nächste Zahl ni2 ; da der Rest immer unendlich bleibt, können wir dies beliebig häufig wiederholen und wir erhalten insgesamt eine unendliche streng monotone Teilfolge. Sei nun m1 , m2 , m3 , . . . eine unendliche Folge von Markierungen. Wir beweisen nun, daß es eine unendliche monotone Teilfolge gibt. Dazu legen wir eine Ordnung auf der endlichen Stellenmenge des S/T-Systems fest: S = {s1 , s2 , . . . , sn }. An dieser Stelle nutzen wir aus, daß das zugrundeliegende Netz nur endlich viele Stellen hat. Tatsächlich ist diese Annahme für den Beweis der Aussage nicht nötig. Allerdings müßten wir ohne diese Annahme noch ein weiteres Argument bemühen, worauf wir hier vezichten. Durch Induktion über k = 1, . . . , n beweisen wir nun die folgende Aussage: Induktionsvoraussetzung Für eine unendliche Folge von Markierungen m1 , m2 , m3 , . . . gibt es eine unendliche Teilfolge mi1 , mi2 , mi3 , . . . mit i1 < i2 < i3 < . . ., so daß für jede Stelle s ∈ {s1 , s2 , . . . , sk } gilt mi1 (s) ≤ mi2 (s) ≤ mi3 (s) ≤ . . . (wir sagen, daß die Folge bezüglich der Stellen s1 , s2 , . . . , sk monoton ist). Induktionsanfang Bezüglich der Stelle s1 beschreibt die Folge von Markierungen eine Folge natürlicher Zahlen, aus der wir gemäß obiger Aussage eine monotone unendliche Teilfolge auswählen können. Dies gibt uns eine Teilfolge von Markierungen, die bezüglich s1 monoton ist. Induktionsschritt Wir nehmen nun an, daß wir eine unendliche Folge von Markierungen haben, die bezüglich s1 , . . . , sk monton ist. Daraus wählen wir nun eine unendliche Teilfolge aus, die bezüglich sk+1 monoton ist (dies ist gemäß unserer Vorüberlegung für Folgen von natürlichen Zahlen möglich). Da wir eine unendliche Teilfoge der ursprünglichen Folge gebildet haben (die per Annahme bezüglich s1 , . . . , sk monoton ist), ist die neue Teilfolge auch bezüglich s1 , s2 , . . . , sk monoton. Also ist sie insgesamt bezüglich s1 , s2 , . . . , sk+1 monoton. Für k = n ist die gebildete Teilfolge nun monoton, was den Beweis der Implikation b. ⇒ c. abschließt. ∗ c. ⇒ a. Seien m1 und m2 zwei erreichbare Markierungen mit m1 −→ m2 und m1 < m2 . Wir zeigen, daß es keine Markierung m00 geben kann, so daß für alle m0 ∈ [mi gilt m0 ≤ m00 (d. h. daß das S/T-System nicht beschränkt ist). 8 Sei s ∈ S eine Stelle mit m1 (s) < m2 (s) (gemäß Voraussetzung muß es eine solche Stelle geben). Wir definieren n = m2 (s) − m1 (s) ≥ 1. ∗ w Wegen m1 −→ m2 gibt es ein Schaltwort w mit m1 −→ m2 . Wegen Folgerung 2.9.3 w w w gibt es dann eine Folge von erreichbaren Markierungen m1 −→ m2 −→ m3 −→ . . . Für diese Folge gilt mk (s) = m1 (s) + (k − 1) · n. Wegen n ≥ 1 gibt es also für jeden Wert i ∈ N ein k mit mk (s) > i. Es kann also kein m0 geben mit mk ≤ m0 für alle k. Damit ist Σ nicht beschränkt. Auch in diesem Beweis haben wir nirgends ausgenutzt, daß das zugrundeliegende Netz des S/T-Systems endlich ist. Die Implikation c. gilt also auch für unendliche S/TSysteme. 9