In allen Beispielen wird auf das Netz 6.2 zurückgegriffen, das die Steuerung zweier Ampeln modelliert.
Bei der Berechnung von P-Invarianten kann die transponierte, bei T-Invarianten die Inzidenzmatrix selbst ausgegeben werden. Die Matrix zeigt, wie die Transitionen und Plätze verbunden sind [Sta90, Definition 11.1 (110)]. Plätze werden in den Zeilen, die Transitionen in den Spalten aufgeführt (für die transponierte Matrix gilt umgekehrtes).
Für das Netz 6.2 sieht die transponierte Inzidenzmatrix wie folgt aus:
Input matrix (transposed incidence matrix):
1 2 3 4 5 6
~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 | -1 0 1 1 0 0
2 | 0 1 -1 -1 1 -1
3 | 0 -1 1 1 0 0
4 | 1 0 -1 -1 -1 1
Der Eintrag -1 in der ersten Spalte der ersten Zeile bedeutet, daß die Transition t1 vom Platz eine Marke abzieht, der Eintrag 1 der sechsten Spalte der vierten Zeile dagegen, daß das Schalten der Transition t4 eine Marke auf den Platz aufbringt.
Falls in der Matrix Einträge mit 00 statt mit 0 versehen sind, so sind diese Einträge durch die Unreinheit des Netzes entstanden (siehe Seite im Kapitel 6.2.1).
Als Beispiel sehen Sie P-Invarianten des Netzes 6.2.
Die Basis wird in Form einer Tabelle geschrieben, wobei die Zeilen die Nummern der Invarianten, die Spalten dagegen die Nummern der Plätze bzw. Transitionen sind.
Nr. 1 2 3 4 5 6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 | 1 1 1 0 0 0 + 2 | 1 1 0 1 0 0 + 3 | 0 0 0 0 1 1 +Invarianten, die Sie in diesem Format auf eine separate Datei geschrieben haben, können Sie später mit dem Kommando <T> testen (siehe Seite ). Sie werden deshalb in eine Datei mit der Extension .inv gespeichert. Alle anderen Formate ermöglichen keinen späteren Test und werden deshalb in eine Datei mit der Extension .res geschrieben.
Die Basis wird ebenfalls in Form einer Tabelle geschrieben, aber statt Nullen werden Leerzeichen ausgedruckt.
Nr. 1 2 3 4 5 6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 | 1 1 1 + 2 | 1 1 1 + 3 | 1 1 +
Die Basisvektoren werden als Liste ihrer von Null verschiedenen Komponenten in der Form <Knotennummer> : <Wert> ausgegeben.
1 | 1: 1, 2: 1, 3: 1 + 2 | 1: 1, 2: 1, 4: 1 + 3 | 5: 1, 6: 1 +
Die Basisvektoren werden ebenfalls als Liste ihrer von Null verschiedenen Komponenten ausgegeben, aber mit ihren Namen versehen.
1 | 1.gruen_eins : 1, | 2.gruen_zwei : 1, | 3.gelb_eins : 1 + 2 | 1.gruen_eins : 1, | 2.gruen_zwei : 1, | 4.gelb_zwei : 1 + 3 | 5.rot_eins : 1, | 6.rot_zwei : 1 +
Bitte beachten Sie: Semipositive Invarianten werden bei der Ausgabe durch ein + gekennzeichnet (siehe auch Seite ).
Die P- bzw. T-Invarianten bilden einen linearen Raum, der gegenüber (komponentenweiser) Addition, Multiplikation mit einer ganzen Zahl und Division durch den größten gemeinsamen Teiler aller Komponenten abgeschlossen ist. Dieser Raum wird durch endlich viele Basisvektoren aufgespannt, enthält aber im allgemeinen unendlich viele Invarianten. Mit dem Kommando <I> wird eine Basis berechnet.
Zuerst können Sie die angezeigten Optionen ändern:Mit der Option <P> wählen Sie zwischen der Berechnung von Platz- und Transitionsinvarianten, mit <O> können Sie bestimmen, ob die (transponierte) Inzidenzmatrix ausgegeben werden soll und mit <F> bestimmen Sie die Form, in der Invarianten ausgegeben werden sollen.computation of place-invariants..................................P output (transposed) incidence matrix.............................O output format = complete table...................................FDanach berechnet dieses Kommando eine Basis für den Raum aller Invarianten des gewählten Typs. INA meldet, ob Invarianten gefunden wurden, und zieht eventuell daraus weitere Folgerungen. Das Programm entscheidet, ob das Netz mit Invarianten des gewählten Typs überdeckt ist, d.h. ob eine in allen Komponenten positive Invariante existiert. Falls diese tatsächlich berechnet wurde, wird sie auch ausgegeben.
Falls P-Invarianten gefunden wurden, wird ein schneller Nichterreichbarkeitstest angeboten: Test a marking for non-reachability? Eine Beschreibung dieses Tests finden Sie auf Seite .
Am Ende werden folgende Zeilen auf dem Bildschirm ausgegeben: You may display the results by typing 'F <cr> Y <esc> ' und results by other format (f), exit (e).
Mit <E> kehren Sie ins Analysemenü zurück, mit <F> werden erneut die vier möglichen Ausgabeformate gezeigt. Falls Sie sich die Invarianten auf dem Bildschirm ausgeben lassen möchten, so drücken Sie jetzt einfach <cr> . Beantworten Sie die Frage Open a separate output file mit <Y> und geben danach <esc> ein, so werden die berechneten Invarianten wie gewünscht auf dem Bildschirm ausgegeben. Falls Sie dagegen die Ausgabe in eine separate Datei umleiten wollen, so geben Sie einen Dateinamen ein, die Endung .inv bzw. .res wird automatisch angehängt. Falls gewünscht, kann selbstverständlich auch das Ausgabeformat vorher geändert werden. Die Abfrage eines Nichterreichbarkeitstests erscheint erneut, danach ebenso die eben vorgestellten Zeilen. Falls Sie die Ergebnisse in eine separate Datei geschrieben haben und erneut <F> eingeben, wird zuerst die Frage Close separate output file ? gestellt. Falls Sie mit <Y> antworten, wird die Datei geschlossen und Sie können eine andere Ausgabedatei öffnen, sonst wird die Ausgabe an die bereits geöffnete Datei angehängt.
Als T-Invariantenbasis ergibt sich , d.h. wenn alle vier Transitionen geschaltet haben, ist die Anfangsmarkierung wiederhergestellt.
Für das Netz 6.2 können durch die Invariantenanalyse die Eigenschaften CPI, CTI, SB und B gefolgert werden.
Anhand des Netzes 6.2 wird im folgenden ein solcher Nichterreichbarkeitstest gezeigt, der die zuvor berechneten P-Invarianten als Ausgangsbasis benutzt:
Non-reachability test of the marking m:
p : 1 2 3 4 5 6
-----------------------
m(p): 1 1 . . . .
The marking is not reachable from m0.
invariant nr. 3
invariant nr. 2
invariant nr. 1
Non-reachability test of the marking m:
p : 1 2 3 4 5 6
-----------------------
m(p): 1 . . . 1 .
No conclusions possible.
Non-reachability test of the marking m:
p : 1 2 3 4 5 6
-----------------------
m(p): . . 1 1 . .
The marking is not reachable from m0.
invariant nr. 3
Wie Sie sehen können, ist der Zustand ,,beide Ampeln zeigen grün`` nicht erreichbar, er verstößt gegen alle drei berechneten P-Invarianten. Weiterhin kann nicht entschieden werden, ob die Markierung ,,Ampel 1 zeigt gleichzeitig grün und rot`` nicht erreicht werden kann. Die Markierung ,,beide Ampeln zeigen gelb`` verstößt gegen die Invariante mit der Nummer drei, die besagt, daß genau eine Ampel rot zeigen muß, und ist deshalb nicht erreichbar.
© 1996-98 Prof. Peter H. Starke (starke@informatik.hu-berlin.de) und Stephan Roch (roch@...)
INA Handbuch Version 2.1 zuletzt geändert: 1998-03-24