• Aucun résultat trouvé

Der Petrinetz-Würfel im Petrinetz-Kern

N/A
N/A
Protected

Academic year: 2022

Partager "Der Petrinetz-Würfel im Petrinetz-Kern"

Copied!
6
0
0

Texte intégral

(1)

Michael Weber

Humboldt-Universität zuBerlin, Institutfür Informatik

1 Motivation

Eine Möglichkeit, ein theoretisches Konzept zu validieren, ist seine Implementierung in

einem Werkzeug. In diesem Papier skizzieren wir die Implementierung des Petrinetz-

Würfels mitHilfe desPetrinetz-Kerns.

Mit demPetrinetz-Würfel [KW98 ] und demPetrinetz-Kern [HHK +

98 , KW99]wur-

den zwei Konzepte entwickelt, diejeweils einenallgemeinen Petrinetz-theoretischen An-

satz verfolgen. Der Petrinetz-Kern dient als Infrastruktur zum Bau von Werkzeugen

für Petrinetze beliebigerTypen.Und der Petrinetz-Würfel strukturiert und klassiziert

die Welt der klassischen Petrinetze. Beiden gemeinsam ist die Verallgemeinerung von

Petrinetz-Typen. Unter einem Petrinetz-Typ verstehen wir die Festlegung der zulässi-

genMarkierungen,derzulässigenKanteninschriften sowiedesSchaltverhaltensfürNetze

diesen Typs. Beide Verallgemeinerungen unterscheiden sich jedoch grundlegend vonein-

ander.

Das Ziel des Petrinetz-Würfels ist die Klassizierung von Petrinetz-Typen derart,

dass ihre Unterschiede und Gemeinsamkeiten hervortreten. Insbesondere die intuitive

(klassische) Schaltregel kann mit diesem Konzept für alle klassischen Petrinetz-Typen

gemeinsam deniert werden. Auÿerdem genügen 3 voneinander unabhängige Aspekte,

um die klassischen Petrinetz-Typen zu beschreiben. Ein besonderer Nutzen des Petri-

netz-Würfelsbestehtdarin, dassTechniken zuPetrinetzen,dienurvonganz bestimmten

Aspektenabhängen,leichtvoneinemPetrinetz-Typaufeinenanderenübertragenwerden

können, wenn sich beide indenbestimmtenAspekten nicht unterscheiden.

Der Petrinetz-Kern hat zumZiel,den Bauvon Petrinetz-Werkzeugen zuerleichtern.

DazustellterStandardfunktionenwiedasEinfügenvonElementenineinPetrinetzoder

bestimmte Anfragen an Netze zur Verfügung. Damit der Petrinetz-Kern den Bau von

Werkzeugen für beliebige Petrinetz-Typen unterstützt, besitzt er eine Schnittstelle zur

Denition eines Petrinetz-Typs. Mit ihr können alle Petrinetz-Typen beschrieben wer-

den,dieaufklassischePetrinetz-Typenaufbauen undStellen,Transitionen sowieKanten

zwischen Stellen und Transitionen bzw. umgekehrt zulassen.

1

Im Gegensatz zum Petri-

Email:mweber@informatik.hu-berlin.de

1

EinezukünftigeVersiondesPetrinetz-KernswirdauchPetrinetz-Typenermöglichen,dieüberklassi-

schePetrinetz-Typenweithinausgehenundz.B.SignalkantenzwischenTransitionenzulassen.

(2)

erscheint,ohne Abhängigkeiten aufzulösen.

Im folgenden werden wir eine weitere Schnittstelle des Petrinetz-Kerns vorstellen,

sodass Petrinetz-Typen wie imPetrinetz-Würfel beschrieben werdenkönnen.Zunächst

werden wir beide Konzepte separat einführen; anschlieÿend (in Abschnitt 4) wird ihre

Verbindung imPetrinetz-Kerndargestellt.

2 Petrinetz-Würfel

Der Petrinetz-Würfel wurde eingeführt, um Petrinetz-Typen zu strukturieren und zu

klassizieren. Er verfolgt einen didaktischen Ansatz:die Unterschiede und Gemeinsam-

keiten derverschiedenen Petrinetz-Typen werden deutlich.

DiezentraleIdeedesPetrinetz-Würfels[KW98 ]ist,dassdreiAspekteausreichen,um

klassischePetrinetz-Typen vollständigzubeschreiben.DieseAspektesindzudemvonein-

anderunabhängig undwerden deshalb alsDimensionen bezeichnet.Ausgangspunkt der

Überlegungen war, dass ein Petrinetz jeglichen Typs Stellen, Transitionen und Kanten

enthält.DieUnterschiedederklassischenPetrinetz-Typen betreenlediglich dieArtder

zulässigen Token, die Struktur, mit der Token zu Markierungen zusammengesetzt wer-

denundden zulässigenMarkenuss,derübereineKantebeimSchalten einerTransition

ieÿen kann.

Mit der ersten Dimension der Tokenstruktur wird festgelegt, welche Token in

einemNetzdesbetreendenTypsauftretendürfen.AndieserStellegenügt eszuwissen,

dass diese Dimension durch wenigstens zwei Werte instantiiert werden kann: einerseits

durch eine Klasse mit der einelementigen Menge, die das black token enthält, anderer-

seits durch eine Klasse, die beliebige Mengen (high-level Token) enthält. Für low-level

Netzewie B/E- bzw. S/T-Netze wirddieerste Klasse verwendet.Und diezweite Klasse

ndetVerwendung in high-level Netzen.Selbstverständlich ist es denkbar, noch weitere

Klassen als Werte dieser Dimension zuzulassen. Sie können beispielsweise verschiedene

Datentyptechniken zurStrukturierung verwenden.

Die zweite DimensiondesPetrinetz-Würfelsbeschreibt, wie Token zuMarkierungen

auf Stellen zusammengefasst werden. Markierungen sind meistens Mengen, Multimen-

gen oderSequenzen. Die mathematische Technik derFreien Algebren(siehe [EM85 ] für

Details)ermöglicht es, die verschiedenen Petrinetz-Typen nach derEigenschaft derAd-

ditionsoperation für Token zu Markierungen zu klassizieren, ohne auf konkrete Token

einzugehen. Mengen korrespondieren mit einer idempotenten Operation, d.h., das Hin-

zufügen eines bereits vorhandenen gleichen Elementes verändert die Menge nicht. Eine

derartige Markierung kann also nur einExemplar eines bestimmtenTokensaufnehmen.

Diese Eigenschaft wird beispielsweise in B/E-Netzen und Prädikat/Ereignis-Systemen

gefordert. Eine kommutative Additionsoperation korrespondiert mit Multimengen; die

Reihenfolgeeinzelner Operationenspieltkeine Rolle,wogegenfür einenicht kommutati-

veAdditionsoperationdieReihenfolgewichtigist.LetzterekorrespondiertmitSequenzen.

MarkierungenaufStellenvonS/T-NetzenundColouredPetriNetskönnenalsMultimen-

gen von Token aufgefasst werden. Markierungen auf Stellen von FIFO-Netzen dagegen

sind als Sequenzen zu betrachten, da die Reihenfolge des Erscheinens eines Tokens auf

(3)

derMarkierungenfürNetzedesentsprechendenTyps.Auÿerdemistbereitsdie(intuitive)

klassische Schaltregel fürPetrinetze denierbar, die dabei nur einmal für alle Petrinetz-

Typen festgelegt werdenmuss [KW98 ].

Die dritteDimension des Petrinetz-Würfels schränkt lediglich die Menge der mögli-

chenNetzebestimmterPetrinetz-Typen ein.Beispielsweise wirdbisher nichtverhindert,

dassNetzemitblack tokenalsTokenstrukturundMultimengen alsMarkierungsstruktur

alsKanteninschriften0erhalten.FürS/T-Netzeistdieszumindestungewöhnlich.Auÿer-

demkannbisher keine Unterscheidung zwischenColoured Petri Nets undAlgebraischen

Netzen [Rei91 ] gemacht werden. Beide erhalten high-level Token und Multimengen als

Markierungen. Für Algebraische Netze wird jedoch ein festes Kantengewicht gefordert,

d.h.,beijedemSchalten derentsprechenden Transition ieÿtdiegleicheAnzahl vonTo-

ken überdie Kante. Für Coloured Petri Nets gilt diese Einschränkung nicht. Die dritte

Dimensionlegt deshalb dieBedingungendesKantenussesfest.

Die drei unabhängigen Dimensionen spannen einen Raum auf, in dem die klassi-

schen Petrinetz-Typen jeweils einen Punkt belegen. Inwieweit es möglich ist, weitere

Dimensionen zu denieren, mit denen auch nicht klassische Petrinetz-Typen wie Zeit-,

stochastischeoderFuzzy-Petrinetzebeschriebenwerdenkönnen,istGegenstand weiterer

Forschungen.

3 Der Petrinetz-Kern

Während der Petrinetz-Würfel als theoretisch didaktisches Konzept entwickelt wurde,

bei dem Übersichtlichkeit und Eleganz im Vordergrund standen, ist derPetrinetz-Kern

mit den PrämissenvonVollständigkeit undpraktischer Handhabbarkeit entwickelt wor-

den. DerPetrinetz-Kern ist eine Infrastrukturzum Bau von Petrinetz-Werkzeugen. Als

solche erspart er einem Werkzeugentwickler die Implementierung von Standardfunktio-

nen für Petrinetze wie Laden oderSpeichern von Netzen,Zugri auf undModizierung

derNetzstruktur.AuÿerdemmussderEntwicklerkeinegraphische Benutzerschnittstelle

programmieren,sondernkannsichaufdieImplementierung seinesPetrinetz-Algorithmus

konzentrieren. Unter einem Petrinetz-Algorithmus verstehen wir einen Algorithmus zur

Analyse,Simulation, Verikation o.ä.von Petrinetzen.

Der Petrinetz-Kern wird verwendet, um Petrinetze beliebiger Typen zu verwalten.

Der in einem Werkzeug schlieÿlich konkret verwendete Petrinetz-Typ wird über einen

Parameter demPetrinetz-Kern bekannt gemacht. Ein solcherParameter beschreibt das

Spezischeeines Petrinetz-Typs (kurz:PN-Typ-Spezik)so, wieeseinem Werkzeugent-

wicklerintuitiverscheint:StellenkönnenMarkierungen aufnehmen,Transitionen(insbe-

sondere inhigh-level Netzen) können inverschiedenenModischaltenund Kantenlassen

Inschriftenzu.DarüberhinauskönnenErweiterungensowohllokalzueinzelnenPetrinetz-

Elementen(Zeitannotationen, transition guards, Codefragmenteetc.)als auch global zu

Petrinetzen (Deklarationen, Signatur etc.) deniert werden. Mit diesem Konzept ist es

möglich,jedenbeliebigenPetrinetz-TypalsParameterdesPetrinetz-Kernszuimplemen-

tieren.

Die Implementierung einer PN-Typ-Spezik muss eine bestimmte Schnittstelle er-

(4)

weils eineFunktiongefordert, dieexplizit aufgerufen werden kann,umdie Syntax eines

entsprechenden WertesimNetzkontext zuüberprüfen.FürMarkierungenmüssen auÿer-

demverschiedeneOperationen (z.B. Addieren undSubtrahieren andererMarkierungen)

deniert werden, und auch Modi müssen eineerweiterte Schnittstelle erfüllen. Überdies

wirdderModus eingesetzt, umausdemTerm einer Kanteninschrift eineMarkierung zu

berechnen. Beispielsweise werden in algebraischen Netzen eventuell vorhandene Varia-

blenan konkrete Werte des aktuellen Modus gebunden und entsprechende Operationen

im Termausgeführt.

Wirsehen,dassdiesesKonzeptvondemobenbeschriebenenfürdenPetrinetz-Würfel

abweicht, weil es hier um rasche Implementierung und praktische Anschaulichkeit und

weniger umWiederverwendung von Programmcode fürPetrinetz-Typen geht.

4 Konnexion

Zuweilen ist esjedochwünschenswert, Teile eines Petrinetz-Typs ineinem anderen wie-

derzuverwenden. Beispielsweise könnte für ein high-level Netz das Verhalten von B/E-

Systemen gewünscht sein, oder ein vorhandener Petrinetz-Typ soll um Techniken zur

Beschreibung des Datentyps ergänzt werden. Mit der Schnittstelle CubeInterface steht

nun einesolche Möglichkeit für den Petrinetz-Kern zur Verfügung. Auÿerdemsollte ge-

zeigt werden, dass ein theoretisch didaktisches Konzept wie der Petrinetz-Würfel ohne

gröÿeren Aufwand implementiert werdenkann.

Für die eben genannten Beispiele muss im Petrinetz-Würfel jeweils nur der Wert

einer Dimension geändert werden. Für das erste Beispiel bleibt die Tokenstruktur un-

verändert, und die Markierungsstruktur wird von Multimenge zu Menge geändert. Für

daszweite Beispiel wirdder Wert derTokenstrukturverändert. Umdiese Beispiele mit

einer vorhandenen PN-Typ-SpezikdesPetrinetz-Kerns umzusetzen,ist vergleichsweise

viel Aufwand nötig, da die Abhängigkeiten ihrer verschiedenen Teile zu beachten sind.

Schon für daserste Beispielmüssen Änderungen inderBeschreibung für Markierungen

und fürModi(dortinderTermauswertungsfunktion) vorgenommen werden.

Wir gehenvom Petrinetz-Kern ausund werdendie Implementierung einer PN-Typ-

Spezik skizzieren, die selbst Parameter aufnehmen kann. Wir nennen diese PN-Typ-

SpezikCubeSpecication;dieParameter,diesieaufnehmenkann,fassenwirmitCubeIn-

terfacezusammen.JeDimensiondesPetrinetz-WürfelswirdeinParameterfürCubeSpeci-

cationgefordert.CubeInterfaceumfasstvorerstzweiDimensionendesPetrinetz-Würfels

die Tokenstruktur und die Markierungsstruktur. Die Bedingungen des Kantenusses

wurden noch nicht implementiert; eine Implementierung sollte jedoch unproblematisch

sein.

CubeSpecication erzeugt nun aus den konkreten Parametern für CubeInterface eine

PN-Typ-Spezik desPetrinetz-Kerns. Eine Markierung besteht dann auch implementa-

tionstechnischausToken.IhreOperationenwerdendurchdenentsprechendenParameter

ausCubeInterface festgelegt.

Die Tokenstrukturwirdin CubeInterface durch TokenInterface implementiert. Dadie

Denition von high-level Token unterstützt werden soll, wird hier eine umfangreiche

(5)

Deklaration.Auÿerdem können Schaltmodiund Terme über Token beschrieben werden.

BesondereAnforderungenhabenSchaltmodiunddieBeschreibungfürTokenzuerfüllen.

Schaltmodimüssen ausTermenTokenerzeugen können,undTokenmüssen mitanderen

Token verglichen werden. Aus diesen Angaben zur Beschreibung von Token kann Cu-

beSpecication Strukturen erzeugen, mit denen der Petrinetz-Kern umgehen kann. Ein

Problem stellen lediglich Kanteninschriften dar:im allgemeinen werden an Kanten Ter-

me über Markierungen notiert. Es war also nötig, bei der Implementation Terme über

Markierungen ineineStruktur von Termen überToken zuzerlegen.

Die zweite Dimension des Petrinetz-Würfels die Markierungsstruktur wird in

CubeInterface durch Collectionimplementiert. Aufbauendauf derVergleichsfunktion der

einzelnen Elemente wird eine Struktur implementiert, die die Reihenfolge des Hinzufü-

gens beachtet (Sequenz), Elemente mehrfach enthalten kann (Multimenge) oder jedes

Elementhöchstens einmalenthält(Menge).FunktionenvonCollectionsindu.a.dasHin-

zufügen eines Elementes bzw. einer gesamten Collection oder die Überprüfung auf das

Enthaltensein einer Collectionbzw. aufLeerheit.

Mit der Schnittstelle CubeInterface wird die Menge der möglichen Petrinetz-Typen

aufjenebeschränkt,dieauchmitdemPetrinetz-Würfelabgedecktwerden. DerEntwick-

lung des Petrinetz-Würfels folgend, wird auch CubeInterface weitere Dimensionen bzw.

Parameter erhalten.

Im folgenden zeigen wiran Beispielen, wie die neue Schnittstelle im Petrinetz-Kern

verwendet wird. Im Petrinetz-Kern wird eine Anwendungsfunktion function mit einer

PN-Typ-Spezik Specificationzu einerAnwendung verbunden:

Build_Application(Specification, function)

Damit wird der Editor des Petrinetz-Kerns gestartet. Ein Netz der angegebenen PN-

Typ-Spezik kann editiert werden. Das Drücken eines entsprechenden Buttons löst die

Funktionfunctionangewendet aufdasaktuelle Netz aus.

Wirnehmen an,dass wireinige konkreteParameterfür CubeInterfaceimplementiert

haben. Für TokenInterface seien BlackTokenInterface, das ein black token beschreibt,

und HLTokenInterface, das high-level Token beschreibt, implementiert. Als Collection

seien Set für Mengen und MultiSetfür Multimengen implementiert. Mitder PN-Typ-

Spezik CubeSpecication und einer generischen Funktion test, die höchstens Funktio-

nalitätvon CubeSpecicationausnutzt, stehen nun diefolgenden AnwendungenzurVer-

fügung:

Build_Application(CubeSpecification(BlackTokenInterface, Set), test)

Build_Application(CubeSpecification(BlackTokenInterface, MultiSet), test)

Build_Application(CubeSpecification(HLTokenInterface, Set), test)

Build_Application(CubeSpecification(HLTokenInterface, MultiSet), test)

Wiederum startet der Editor des Petrinetz-Kerns, dernun Netze aus der Kombination

derjeweiligen Wertefür DimensionendesPetrinetz-Würfelseditierenund testen lässt.

(6)

MitderSchnittstelle CubeInterfaceist eintheoretischdidaktischesKonzeptinden Petri-

netz-Kern integriert worden. Der Editor des Petrinetz-Kerns stellt ohne weiteres eine

graphische Benutzerschnittstelle zumModellieren von Petrinetzen zurVerfügung, deren

Typen ihrer Beschreibung im Petrinetz-Würfel folgen. Durch die generische Schaltregel

desPetrinetz-Würfelsistesinsbesonderemöglich,einengenerischenSimulatorfürNetze,

deren Typ CubeInterface implementiert, zu programmieren. Eine derartige Anwendung

wirddemnächst entwickelt.

Die Implementierung von CubeInterface durch die PN-Typ-Spezik CubeSpecicati-

on ist gewiss nicht ezient. Ezienz ist jedoch auch nicht das vordringliche Ziel des

Petrinetz-Kerns. Vielmehr soll mit CubeInterface derRahmen erweitert werden, indem

(insbesondere neue)Petrinetz-Algorithmen erprobt werdenkönnen.

Literatur

[EM85] Ehrig,HartmutundBerndMahr:Fundamentalsof AlgebraicSpecications 1,Equa-

tionsandInitialSemantics,Bd.6vonEATCSMonographsonTheoretical Computer

Science.Springer-Verlag.1985.

[HHK +

98] Hauptmann,Jens;BodoHohberg;Ekkart Kindler;InesSchwenzerundMichaelWe-

ber:DerPetrinetz-KernDokumentationderAnwendungs-Schnittstelle.Informatik-

Berichte 98, Humboldt-UniversitätzuBerlin.Febr. 1998.

[KW98] Kindler, Ekkart und MichaelWeber: TheDimensions of Petri Nets: ThePetri Net

Cube.Bulletinof EATCS 66:155166.Okt.1998.

[KW99] Kindler, Ekkart und Michael Weber: The Petri Net Kernel. Documentation of the

Application Interface. PNK Version 2.0. Humboldt-Universität zu Berlin, Institut

fürInformatik.http://www.informatik.hu-berlin.de/~kindler/PN-Kern/.Jan.

1999.

[Rei91] Reisig, Wolfgang: Petri Nets and Algebraic Specications. Theoretical Computer

Science 80:134.Mai1991.

Références

Documents relatifs

Reducing health inequities and improving governance for health and health equity are key strategic objectives of Health 2020 – the European policy framework for health and

Sie sollten über gesundheitliche Erfahrungen und Probleme aufgeklärt und informiert sein und dieses Wissen einzuschätzen verstehen, damit sie dazu beitragen können, daß

Bei den Kanten gibt es zwei Sonderfälle: Kanten in einer EPK, die eine Funktion mit einem AND-Konnektor verbinden, werden im Petrinetz durch eine zusätzliche Stelle ergänzt, da

Die eine MWR (R IS ) beschreibt den aktuellen Informationsstatus des Empf¨angers durch Gewichtung g i (G¨ute) von bereits erkannten Informationsbestandtei- len i. Die andere MWR R

Die Workshop-Reihe "Algorithmen und Werkzeuge für Petrinetze" wurde 1994 mit dem Ziel initiiert, in der deutschsprachigen Petrinetz-Community den fachlichen Austausch und

Weitere angebrachte und von den Helfern geschätzte Gegenleistungen sind T-Shirts, ein Helferfest, gratis Eintritte (z. bei Festivals) oder Gutscheine. Diese

Toute utili- sation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte- nir la présente mention

Ordnung 2 haben, und einer kommutativen Gruppe, deren sâmtliche Elemente un-.. gerade Ordnung haben,