TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica. Afstudeeropdracht. Analyse van FRIDA met behulp van CPNTOOLS.



Vergelijkbare documenten
start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

2WO12: Optimalisering in Netwerken

3 De stelling van Kleene

Wiskundige beweringen en hun bewijzen

DATAMODELLERING BEGRIPPENBOOM

Procesmodelleren. (terug van weggeweest) Jaap van der Woude Informatica Open Universiteit, Nederland

Paradox van zelfreproductie. IN2505-II Berekenbaarheidstheorie. Zelfreproductie? Programma s en zelfreproductie. College 11.

Automaten. Informatica, UvA. Yde Venema

Practicumopgave Mehmet Oktener

Voorbeeldvraag 1. Welke uitspraak is JUIST:

Talen & Automaten. Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 mei 2008

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

Eigenschappen en Axioma s van de E 6 -meetkunde

DATAMODELLERING ARCHIMATE DATAMODELLERING

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Petri-netten in Protos: wat moet je ermee?

Klachtenbeheer (Intranet)

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Informatieystemen Deeltentamen A

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

Tweede huiswerkopdracht Lineaire algebra 1 Uitwerking en opmerkingen

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.

Enkele valkuilen om te vermijden

Stelling. SAT is NP-compleet.

Bellen Zonder Zorgen

1 Inleiding in Functioneel Programmeren

Ontwerp van Algoritmen: opgaven weken 3 en 4

DATAMODELLERING SIPOC

Discrete Wiskunde 2WC15, Lente Jan Draisma

TENTAMEN Basismodellen in de Informatica VOORBEELDUITWERKING

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

TW2020 Optimalisering

DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING

Release notes:

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Offective > Verkoop > Offertes

Elfde college complexiteit. 23 april NP-volledigheid III

Lineaire algebra I (wiskundigen)

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Cover Page. The handle holds various files of this Leiden University dissertation.

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

opgaven formele structuren deterministische eindige automaten

Base24 database suite

opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.

Tentamen Formele Methoden voor Software Engineering (213520)

1 Rekenen in eindige precisie

Oefenopgaven Grondslagen van de Wiskunde A

Module Limieten van de berekenbaarheid : antwoorden

2WO12: Optimalisering in Netwerken

math inside Model orde reductie

Kettingbreuken. 20 april K + 1 E + 1 T + 1 T + 1 I + 1 N + 1 G + 1 B + 1 R + 1 E + 1 U + 1 K + E + 1 N A + 1 P + 1 R + 1 I + 1

Presentatie Jaarproject. Nils De Moor Sam Verboven

Functionele beschrijving: Scannen naar AFAS Profit.

Automaten en Berekenbaarheid 2016 Oplossingen #4

whitepaper Inkoopfactuur afhandeling (IFA)

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Uitwerking Opgaven Formele talen, grammaticas en automaten Week 1

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

Netwerkstroming. Algoritmiek

Sociale en culturele factoren in evacuatie simulaties. Dr. Natalie van der Wal

RSA. F.A. Grootjen. 8 maart 2002

Termherschrijfsystemen en Propositie-Algebra

PTV MAP&GUIDE INTRANET WAT IS ER NIEUW?

Formeel Denken 2014 Uitwerkingen Tentamen

Friendly Functions and Shared BDD s

Lineaire algebra 1 najaar Lineaire codes

8C080 deel BioModeling en bioinformatica

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus:

Unified Modeling Language ACTIVITY DIAGRAMS

Basiskennis lineaire algebra

VERZAMELINGEN EN AFBEELDINGEN

DATAMODELLERING DATA MAPPING MODEL

Examen G0U13 Bewijzen en Redeneren Bachelor of Science Fysica en Wiskunde. vrijdag 3 februari 2012, 8:30 12:30

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

RINGEN EN LICHAMEN. Aanvullende opgaven met uitwerkingen

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur

Tentamen Discrete Wiskunde

Getallensystemen, verzamelingen en relaties

Combinatoriek groep 1 & 2: Recursie

Les 10 : Aanmaken van een database (deel2).

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

Beschrijvings SW gebruikers handleiding (V1.1) Voor Apple Macintosh computers Voor Macintosh Computer

Niet-standaard analyse (Engelse titel: Non-standard analysis)

Software Test Documentation

Opstarten van de Analytische boekhouding

Take-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994

Handleiding voor het lezen van processen

Netwerkstroming. Algoritmiek

Opstarten van de GRATIS facturatiemodule

Functionele beschrijving: scannen naar Exact Globe.

M7537 In de database opgeslagen documenten opslaan op locatie

Bijlage 8. Testprogramma brandreactiemodulen LBK

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

Overzichten genereren in het FMIS

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u

Hoofdstuk 14: Datum & Tijdfuncties

Transcriptie:

TECHISCHE UIVERSITEIT EIDHOVE Faculteit Wiskunde en Informatica Afstudeeropdracht Analyse van FRIDA met behulp van CPTOOLS door B.G.J.J. Poupa Begeleider: dr.. Sidorova Eindhoven, April 005

Inhoud Inhoud... Lijst van figuren... 3 Inleiding... 5 FRIDA... 7 Formele definities...9. Definities met betrekking tot P-nets... 9. Reductietechnieken... 5.3 Definities met betrekking tot CP-nets... 7.4 Abstractie van een CP-net met behulp van een P-net... 8 3 CPTools... 3 4 Modelleren... 33 4. Modelleerpatronen... 36 4. Modelleren van data... 39 5 Analysestappen... 4 6 CP-nets en analyse van de architectuur van FRIDA... 44 6. Module ew Customers and/or Contracts... 45 6.. CP-nets... 45 6.. Analyse... 57 6. Module Order Allocation... 67 6.. CP-nets... 67 6.. Analyse... 76 6.3 Module Order Fulfillment... 80 6.3. CP-nets... 80 6.3. Analyse... 86 6.4 module Invoice Receipt and Matching... 87 6.4. CP-nets... 87 6.4. Analyse... 99 6.5 Module Payment... 03 6.5. CP-nets... 03 6.5. Analyse... 04 6.6 Core Processess... 05 7 Opgetreden complicities met CPTools... 06 8 Conclusie... 08 9 Literatuurlijst... 0

Lijst van figuren Figuur : modules van FRIDA... 7 Figuur : WF-net... Figuur 3: twf-net... Figuur 3a: plaats verbetering... 3 Figuur 3b:transitie verbetering... 3 Figuur 4: Client-server coupling... 4 Figuur 5: Reductietechnieken... 5 Figuur 6: CP-net deadlock maar P-net geen deadlock... 9 Figuur 7: GUI van CPTools... 3 Figuur 8: ARIS symbolen... 34 Figuur 9: voorbeeld onduidelijk ARIS model... 35 Figuur 0: P-net dat vrij is van deadlock... 38 Figuur : Hierarchie B... 38 Figuur : Hierarchie C... 38 Figuur 3: Hierarchie B met dummy s... 39 Figuur 4: Hierarchie C met dummy s... 39 Figuur 5: oorspronkelijk CP-net... 4 Figuur 6a: inhoud hierarchische transitie van figuur 5... 4 Figuur 6b: gesimuleerd gedrag van een hierarchische transitie... 43 Figuur 7: CP-net - kernprocessen... 44 Figuur 8: ARIS diagram - module ew customers and/or contracts... 45 Figuur 9: CP-net - module ew customers and/or contracts... 46 Figuur 0: ARIS diagram proces Maintain/update shipper s master file for known shipper... 47 Figuur : ARIS diagram proces Maintain/update shipper s master file for unknown shipper... 48 Figuur : CP-net proces Maintain/update shipper s master file... 49 Figuur 3: ARIS diagram Proces Maintain/update carrier s master file for known carrier... 5 Figuur 4: ARIS diagram Proces Maintain/update carrier s master file for unknown carrier... 5 Figuur 5: CP-net proces Maintain/update carrier s master file... 53 Figuur 6: ARIS model proces Maintain/update contract related master file... 54 Figuur 7: CP-net proces Maintain/update contract related master file... 56 Figuur 8: ARIS diagram - proces Testing/move into Production... 56 Figuur 9: Tabel Simulatie module ew Customers and/or Contracts... 58 Figuur 30: Tabel - State Space Analysis module ew Customers and/or Contracts... 58 Figuur 3: gereduceerd P-net proces Maintain/update shipper s master file... 63 Figuur 3: gereduceerd P-net proces Maintain/update carrier s master file... 64 Figuur 33: gereduceerd P-net proces Maintain/update contract related master file... 65 Figuur 34: gereduceerd P-net module ew customer and/or contracts... 66 Figuur 35: gereduceerd P-net module ew customer and/or contracts... 66 Figuur 36: CP-net module Order Allocation... 68 3

Figuur 37: CP-net proces Manual Web Order Allocation... 7 Figuur 38: CP-net Allocating order... 7 Figuur 39: CP-net Ceck existence of order and check contract... 73 Figuur 40: CP-net proces Electronic Order Transmission... 75 Figuur 4: Tabel - State Space Analysis module Order Allocation... 76 Figuur 4: aangepast CP-net proces Electronic Order Transmission... 78 Figuur 43: aangepast CP-net module order allocation... 79 Figuur 44: CP-net module order fulfillment... 8 Figuur 45: CP-net proces deviations with transport order... 83 Figuur 46: CP-net proces unforseen costs... 85 Figuur 47: Tabel - State Space Analysis module Order Fulfillment... 86 Figuur 48: CP-net Module Invoice Receipt and Matching... 88 Figuur 49: CP-net proces Handle paper invoice... 89 Figuur 50: CP-net proces Handle Electronic Invoice... 9 Figuur 5: CP-net proces Self Billing... 9 Figuur 5: CP-net proces Match invoice with ETOF... 94 Figuur 53: CP-net proces Link Invoice with ETOF... 95 Figuur 54: CP-net proces Match Invoice Line with ETOF Line... 97 Figuur 55: CP-net proces Process Payments... 98 Figuur 56: Tabel - State Space Analysis module Order Fulfillment en Invoice Receipt and Matching... 99 Figuur 57: Communicatie tussen de modules Order Fulfillment en Invoice Receipt and Matching... 0 Figuur 58: CP-net module Payments... 03 Figuur 59: Tabel - State Space Analysis module Payment... 04 Figuur 60: Tabel - State Space Analysis module Core Processes... 05 4

Inleiding De afstudeeropdracht gaat over het modelleren en analyseren van de architectuur van FRIDA met behulp van de applicatie CPTools. FRIDA is bedoeld voor bedrijven die goederen moeten vervoeren en bedrijven die deze goederen vervoeren. FRIDA is een internet gebaseerde applicatie die het hele traject automatiseert van het aanmaken van orders tot de betaling van deze orders. Voor het modelleren en het analyseren is de documentatie gebruikt die beschikbaar is gesteld door de ontwerpers (ControlPay) van FRIDA. Om de architectuur van FRIDA correct en zo duidelijk mogelijk te modelleren en te analyseren is gebruik gemaakt van gekleurde petri-netten (CP-net. De keuze van CP-nets voor het modelleren en analyseren heeft een aantal voordelen. CPnets geven een omschrijving van het gemodelleerde systeem en daarom kunnen ze gebruikt worden als specificatie voor het betreffende systeem, of als presentatie van het systeem om de werking van het systeem aan anderen eenvoudig uit te leggen. Doordat er een model van een systeem gemaakt wordt, is het mogelijk om het betreffende systeem te analyseren voordat het geimplementeerd wordt. Op deze manier kunnen snel en efficient fouten achterhaald worden die misschien tijdens de implementatie niet naar boven zouden komen, of te veel tijd in beslag zouden nemen om te herstellen. aast het modelleren hebben CP-nets nog een voordeel, en dat is de formele analyse van CP-nets. Doordat er een aantal analysemethoden zijn waarmee CP-nets op allerlei eigenschappen geanalyseerd kunnen worden, wordt het inzicht in het systeem vergroot en helpt de analyse bij probleemoplossing en bij het ontwerpen van een correct systeem. De keuze van CPTools is gemaakt op basis van de ondersteuning die het programma biedt op het gebied van modelleren en op het gebied van analyseren van CP-nets. Een belangrijk voordeel van het modelleren, met CPTools, is het gebruik maken van hiërarchieën, waardoor CP-nets gemodelleerd kunnen worden op niveaus en zo het overzicht over het systeem behouden blijft. De interface is heel gebruiksvriendelijk en vooral ook duidelijk in het weergeven van fouten die zowel tekstueel als grafisch te zien zijn. De modellen kunnen gevalideerd worden door middel van simulatie die zowel interactief als automatisch uitgevoerd kan worden. Wat analyse betreft, kan CPTools een State Space Analysis uitvoeren. Deze analysemethode maakt een rapport waarin de boundedness properties, home properties en liveness properties vermeld staan voor het betreffende net. Dit zijn echter niet de enige analysemethodes die gebruikt zijn om de CP-nets te analyseren. aast de analysemethodes die CPTools biedt, worden de modellen nog geanalyseerd met behulp van plaats- en transitie-invarianten en soundness. De analyse van de modellen wordt per hiërarchieniveau uitgevoerd omdat het gehele model te complex is om in een keer te analyseren. De analyse gebeurt volgens een bepaald patroon. Ten eerste wordt er een simulatie uitgevoerd om het model te valideren. De simulatie vindt plaats op grond van scenario s. Vervolgens wordt de State Space Analysis uitgevoerd. Hierna worden de plaats en transitie invarianten berekend. Tot slot werd het model onderworpen aan de soundness 5

analyse. Om de analyse eenvoudiger te maken worden de CP-nets geabstraheerd tot P- nets. Dan worden de modelleertechnieken onderzocht om zo netten (bijv. WF-net te vinden met eigenschappen (bijv. soundnes die van belang waren voor de verdere analyse. Om de analyse van soundness eenvoudiger te maken, wordt het P-net door middel van reductietechnieken verkleind tot een eenvoudiger net waarop de analyse van soundness uitgevoerd kon worden. Tot slot wordt er een conclusie met betrekking tot de specificaties van de architectuur van FRIDA gemaakt. Deze conclusie komt tot stand door het vergelijken van de bevindingen van de analyse van de CP-nets en de specificaties van de architectuur van FRIDA. 6

FRIDA De informatie van dit hoofdstuk is samengesteld met behulp van de website van ControlPay [7] en de documentatie van de architectuur van FRIDA []. FRIDA is een internet gebaseerde applicatie die ontworpen is door ControlPay. Deze applicatie zorgt ervoor dat orders tussen twee partijen correct afgehandeld worden. FRIDA is bedoeld voor twee soorten gebruikers. Aan de ene kant zijn dat de carriers, bedrijven die goederen vervoeren en aan de andere kant zijn dat de shippers, bedrijven die goederen vervoerd willen hebben. FRIDA zorgt ervoor dat shippers een order kunnen plaatsen voor het vervoer van hun goederen. Vervolgens wordt deze order door een carrier uitgevoerd. Het hele proces van het aanmaken van een order tot aan de betaling van de betreffende order, met alle bijkomende functies van gegevensbeheer, rapportage, beveiliging etc. worden door FRIDA geautomatiseerd. FRIDA is opgebouwd uit zes modules die een order achtereenvolgens door moet lopen om goed afgehandeld te worden. Deze modules zijn in figuur [] weergegeven. De modules vormen de basis voor de hierarchische modules op het hoogste niveau van de CP-nets die gerealiseerd zijn om de architectuur te modelleren. ew customer and/or contracts Order allocation Order fulfilment Invoice Receipt & Matching Payment Reporting Figuur : modules van FRIDA Omdat het aanmaken van orders, de controle op het vervullen van een order, de administratie van de order en de financiële afhandeling van de order geautomatiseerd wordt, leidt dit tot een grote kostenbesparing voor beide partijen. Voor het onderhoud en de beveiliging van alle gegevens wordt het systeem gehost bij ControlPay om neutraliteit en betrouwbaarheid te garanderen. Doordat FRIDA een internet gebaseerde applicatie is, kunnen orders online aangemaakt, onderhouden en in de gaten gehouden worden. Gedetailleerde, relevante en up-to-date informatie over de betreffende orders is online op te vragen door zowel de shippers als de carriers. Hieronder zijn de specificaties van de modules weergegeven. ew customer and/or contracts Opslaan van algemene gegevens, contracten en business rules van carriers Opslaan van algemene gegevens, contracten en business rules van shippers Controle van de ingevoerde gegevens 7

Order Allocation Handmatige invoer van een order Elektronische invoer van een order Aanmaken en bevestigen van een order en deze doorsturen naar de betreffende carrier Order Fulfillment Voorberekening van de te verwachten kosten van de order Verwerken van afwijkingen van de vervulde order Verwerken van de onverwachte kosten van de vervulde order Invoice Receipt and Matching Afhandelen van een vervulde order, binnengekomen op papier Afhandelen van een vervulde order die electronisch is ontvangen Binnengekomen order vergelijken met de oorspronkelijke order Binnengekomen order koppelen aan oorspronkelijke order Opstellen van de factuur van de order Payment Afhandelen van de betaling van de factuur van de order Reporting Opstellen van een financieel rapport Opstellen van een beoordelingsrapport 8

Formele definities In dit hoofdstuk zijn de definities vermeld die nodig zijn voor het bewijzen van het behoud van soundness van reductie technieken en de abstractie van een CP-net met behulp van een P-net. Sommige definities zijn definities uit bestaande bronnen en sommige definities zijn zelf geïntroduceerd. Verder zijn bewijzen geleverd voor het behoud van soundness van de reductietechnieken en het behoud van soundness voor de abstractie van een CP-net met behulp van een P-net. De bewijzen zijn gemaakt met behulp van de definities in dit hoofdstuk. Definities met betrekking tot P-nets In dit subhoofdstuk zijn alle formele definities vermeld die nodig zijn om de formele analyse van de P-nets uit te voeren. Mits anders vermeld dan komen de definities uit het dictaat systeemmodelleren []. Definitie (P-net): Een P-net is een tupel = P, T, F waarvoor geldt: P is een eindige set van plaatsen. T is een eindige set van transities. F is een eindige set van pijlen (flow relation). Formeel: F : ( P T ) ( T P) Definitie (multi-set [4]): Een multi-set m, over een niet-lege set S, is een functie m [ S ]. S ms is een notatie voor het weergeven van de set van alle multi-sets over S. De natuurlijke getallen { m( s S} zijn de coëfficiënten van de multi-set. We schrijven s m wanneer m( 0. Definitie 3 (marking): Markings zijn configuraties van een net. Een marking M van is een multi-set over P. Met andere woorden: een mapping van P naar waar M(p) het aantal tokens van p in M weergeeft. We schrijven (,M) om een P-net aan te geven met marking M (marked P-net). Definitie 4 (post- and preset: Gegeven een transitie t T, de preset t van t bestaat uit alle inkomende plaatsen van t en de postset t van t bestaat uit alle uitgaande plaatsen van t. Dit zijn bags over P gegeven door: t( p) = F( p, t) en t ( p) = F( t, p) voor iedere p P. Op een gelijke wijze geldt voor een p P, dat de preset p en de postset p van p bags zijn over T gegeven door: p( t) = F( t, p) en p ( t) = F( p, t) voor iedere t T. Definitie 5 (enabledness van een transitie): transitie t is enabled in een marking m in een P-net wanneer geldt x m : x = t. def def def def 9

Definitie 6 (vuring): een transitie t die enabled is, in een marked P-net (,M) kan vuren en daarmee actie t uitvoeren. Dit resulteert in een nieuwe marking M gedefinieer door ' = M t + t. Een marked P-net (,M ) kan vuren wanneer er een transitie t is die enabled is. M def Definitie 7 (vuringssequentie): Een sequentie σ = t,...,t van transities is een vuringssequentie in (,M) wanneer er markings M,...M n bestaan zodat t M M... M t t n. We schrijven dan M σ M. n n Definitie 8 (bereikbaarheid): We zeggen dat een marking M bereikbaar is in (,M) wanneer er een vuringssequentie σ bestaat zodanig dat marking M van M schrijven we M. n M σ. Voor een bereikbare Definitie 9 (deadlock): Een transitie t van een marked P-net (, M 0 ) is dead wanneer er geen marking M is die bereikbaar is van M 0 waardoor t kan vuren. Een marking M is in een deadlock in een P-net wanneer alle transities van of (, M) dead zijn. Definitie 0 (boundednes: Een plaats p van een marked P-net (,M 0 ) is bounded wanneer er een natuurlijk getal n is waarvoor geldt dat voor iedere bereikbare marking het aantal tokens in p maximaal n is. Een plaats p is k-bounded wanneer voor iedere bereikbare toestand geldt dat het aantal tokens in p maximaal k is. Een marked net (,M 0 ) is (k-) bounded wanneer alle plaatsen van dat net (k-)bounded zijn. Een -bounded plaats of net wordt ook wel safe genoemd. Definitie (livenes: Een transitie t van een marked P-net (,M 0 ) is live wanneer voor iedere bereikbare marking M er een marking M is die bereikbaar is van M en t enabled. Een net is live wanneer alle transities van dit net live zijn. Definitie (plaatsinvariant): = ( P, T, F) is een P-net. Een mapping I : P Z is een plaatsinvariant wanneer voor iedere transitie t T geldt: I ( p) = I( p). p t p t Definitie 3 (transitie-invariant): = ( P, T, F ) is een P-net. Een mapping J :T is een transitieinvariant wanneer voor iedere plaats p P geldt: J ( t) = J ( t). t p t p Definitie 4 (path): Stel = ( P, T, F ) is een P-net en n, nk ( P ). Een ongericht pad C van een node n naar een node n k is een sequentie T n..., n nk, n j ( P T ), voor j=...k, zodat voor iedere i met i < k geldt F( n i, n i+ ) > 0 of F( n i +, ni ) > 0. Het pad is gericht wanneer F( n i, n i+ ) > 0 voor alle geschikte i. 0

Definitie 5 (connectednes: Een P-net = ( P, T, F ) is connected wanneer voor iedere node uit ( P T ) er een undirected pad leidt naar een andere node. Wanneer er voor iedere node uit ( P T ) een directed pad is naar een willekeurige andere node, dan is het net strongly connected. Definitie 6 (Workflow-net (WF-net)): Een P-net is een WF-net wanneer geldt: heeft twee speciale plaatsen i en f. Plaats i, met i =, is een initiële plaats en plaats f, met f =, is een eindigende plaats. Wanneer er een sluitende transitie t aan toegevoegd wordt die plaatsen f en i met elkaar verbindt ( t = [ f ] en t = [i] ), dan is het resulterende P-net strongly connected. Figuur : WF-net Definitie 7 ( tworkflow-net (twf-net)): Een P-net is een twf-net wanneer geldt: heeft twee speciale transities t i en t f. Transitie t i is een initiële transitie waarvoor geldt: t = Ø en transitie t is een eindigende transitie waarvoor geldt: f f = Ø. Wanneer er een plaats p aan wordt toegevoegd die de transities t i en t met elkaar verbindt, dan is het resulterende P-net strongly connected. f Figuur 3: twf-net

Definitie 8 (State Machine Workflow net (SMWF)): Een P-net is een State Machine (SM) wanneer geldt t T : t t. is een State Machine Wokflow-net (SMWF) wanneer een WF-net en een State Machine is. Definitie 9 (Marked Graph Workflow net (MGWF)): een P-net is een Marked Graph (MG) wanneer geldt: p p : p p. is een Marked Graph Workflow-net (MGWF) wanneer een WF-net en een Marked Graph is. Definitie 0 (Free-choice Workflow net (FCWF)): Een P-net is een Free-Choice P-net wanneer geldt: t, t T, t t t = t. Een P-net is een Free-Choice WFnet (FCWF) wanneer het P-net een WF-net en een Free-Choice net is. Definitie (soundnes: Een WF-net is k-sound wanneer er voor iedere marking M, die k bereikbaar is van marking i, geldt dat er een vuringssequentie bestaat die leidt van M k k k naar f. Formeel: M : ( i M ) ( M f ). Een WF-net is sound wanneer het voor iedere natuurlijke k, k-sound is (k geeft het aantal tokens in i en f aan). Definitie (isomorf net): Twee P-nets = ( P, T, F ), = ( P, T, F ) zijn isomorf wanneer er twee bi-jectieve functies bestaan r p : P P, r t : T T zodanig dat p P t T : F( p, t) = F( r ( p), r ( t)) F( t, p) F( r ( t), r ( )). Deze functies, p t = t p p definiëren het hernoemen van plaatsen en transities van, dat resulteert in. Deze hernoemingsfuncties voor WF-nets kunnen alleen initiële naar initiële en eindigende naar eindigende plaatsen mappen. Definitie 3 (plaats verbetering): Laat een P-net zijn met een plaats p en en een WF-net zijn met een initiele plaats i en een eindigende plaats f zodat de nodes disjoint zijn. De plaats verbetering van net met net is een net = P P \{ p}, T T, G, waar G de verandering van de union is van de flow relations zodat (zie figuur 3a). ' i = p en f = p Definitie 4 (transitie verbetering): Laat een P-net zijn met een transitie t en en een WF-net zijn met een initiele transitie t i en een eindigende transitie t f zodat de nodes disjoint zijn. De transitie verbetering van net met net is een net = P P, T T \{ t}, G, waar G de verandering van de union is van de flow ' relations zodat t i = t en t f = t (zie figuur 3b).

Figuur 3a: plaats verbetering Figuur 3b:transitie verbetering Definitie 5 (client-server koppeling): Laat = ( P, T, F ) en = ( P, T, F ) twee disjoint twf-nets zijn met initiële en eindigende transities respectievelijk t t, t t, i, i f, f Q een set van plaatsen die disjoint is met P en P en cs : Q (( T T ) ( T T ) een injectieve functie zijn zodat er een q, q Q bestaat met cs q ) = ( t, t ), cs qf ) = ( t, t ). We schrijven cs t (q) voor π o cs( ) - de projectie ( i i i ( f f i f q 3

van cs op het eerste component (transmitter), en cs r (q) voor π o cs( q) - de projectie van cs op het tweede component (receiver). Hierbij is π het symbool voor projectie. Een client-server coupling (CS-coupling) CS (,, Q, c is een twf-net = P P Q T T, F met de initiële transitie t i en de eindigende transitie t f, (zie figuur 4) waarvoor geldt dat Figuur 4: Client-server coupling Definitie 6 (isomorfe koppeling): Laat, disjoint SMWF-nets zijn met corresponderende state machines, en w,w als verbeteringsfuncties en daarbij zijn, isomorfe netten met hernoemingsfuncties r p,r t. Laat een parallelle compositie zijn van, waar voor iedere transitie u T of een CS-coupling _ 4

CS w ( u), w ( r ( u)), Q, cs ) of CS w ( r( u)), w ( u), Q, cs ) wordt toegepast zodat ( t u u _ ( u u voor iedere u, v T met u = v de koppeling van paren w ( u), w ( rt ( u)), w ( v), w ( rt ( v)) in dezelfde richting gaat (client-server voor beiden of server-client), en daarbij vormt iedere dergelijke koppeling een sound twf-net.. Reductietechnieken Reductietechnieken worden hier gebruikt om soundness makkelijker te bewijzen. Het P- net wordt door de reductietechnieken aanzienlijk gereduceerd zodat soundness snel en eenvoudig berekend kan worden. Er is bekend [3] van de zes reductietechnieken (zie figuur 5 [3]) dat ze de eigenschappen liveness, boundedness en safeness behouden. In dit hoofdstuk wordt het bewijs gegeven dat deze reductietechnieken ook soundness behouden. Figuur 5: Reductietechnieken 5

Fusie van een serie plaatsen Omschrijving: Laat = ( P, T, F) een WF-net zijn met een marking M en een transitie t T waarvoor geldt dat t = { p} t = { q} p = { t} voor de plaatsen p, q P. Door deze reductietechniek wordt het WF-net = ( P', T ', F' ) met een marking M gemaakt waarvoor geldt dat P' = ( P \ { p, q}) { r}, T ' = T \ { t}, u T ': F' ( u, r) = F( u, p) + F( u, q) F' ( r, u) = F( q, u), u T ': s P'\{ r} : F' ( u, = F( u, F' ( s, u) = F( s, u), ( r) = M ( p) + M ( q) en s P'\{ r} : ( = M (. Hulplemma: Laat = ( P, T, F ) een WF-net zijn met marking M 0 en laat = ( P', T ', F' ) een WF-net zijn met een marking M 0, dat is verkregen door de fusie van een serie plaatsen van het WF-net = ( P, T, F ) zoals hierboven beschreven. Voor elke vuringssequentie σ en marking M zodanig dat bestaat er een vuringssequentie σ en een marking M zodanig dat M en ( r) = M ( p) + M( q) en s P'\{ r}: ( = M( (). σ M 0 M Voor elke vuringssequentie σ ' en marking M zodanig dat M vuringssequentie σ en een marking M zodanig dat en s P'\{ r} : ( = M ( (). σ σ ' ' 0 σ ' ' 0 bestaat er een M 0 M en ( r) = M ( p) + M ( q) Bewijs: Eerst gaan we () bewijzen met inductie naar de lengte van σ. Basisstap: σ = ε ( σ = 0) eem σ ' = ε dan geldt M =M 0, M =M 0, ( r) = M ( p) + M( q) en s P'\{ r}: ( = M(. IH: Voor elke vuringssequentie σ van lengte n en elke marking M zodanig dat σ M 0 M σ ' bestaat er een vuringssequentie σ en een marking M en ( ) ( ) ( ) 0 r = M p + M q en s P'\{ r}: ( = M(. IS: Voor n+ hebben we σ u waar zodanig dat u T en σ is een vuringssequentie van lengte n. Volgens de IH weten we dat M 0 M gesimuleerd kan worden met waar σ 0 een vuringssequentie is en marking M zodanig dat s P'\{ r}: ( = M(. M u M ( p) + M ( q) = M ( p) M ( q) ) en σ u σ ' 0 M wordt gesimuleerd met 0 Beschouw de vuring M + M σ σ ' ' q M ( r) = M ( p) + M ( ) en. Als u=t dan geldt M ( r) = M ( p) + M ( ) (omdat ' q s P'\{ r}: M ' ( = M ( = M (. Dus. Als u t dan is u enabled in (,M ) en 6

' ' voor M u ' geldt dat M r) = M ( p) + M ( ) en s P'\{ r}: M '( = M (. M ( q σ u σ ' 0 M 0 u Dus M wordt gesimuleerd met. u gaan we () bewijzen met inductie naar de lengte van σ '. Basisstap: σ ' = ε ( σ ' = 0) eem σ = ε dan geldt M =M 0, M =M 0, ( r) = M ( p) + M( q) en s P'\{ r}: ( = M(. IH: Voor elke vuringssequentie σ ' van lengte n en elke marking M zodanig dat σ ' bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 0 M en ( r) = M ( p) + M( q) en s P'\{ r}: ( = M(. IS: Voor n+ hebben we σ ' u waar u T en σ ' is een vuringssequentie van lengte n. Volgens de IH weten we dat M gesimuleerd kan worden met M 0 M waar σ een vuringssequentie is en marking M zodanig dat s P'\{ r}: ( = M(. Beschouw de vuring M ' u σ ' ' σ 0 ( r) M ( p) + M( q. Aangezien = ) en t T', u t en u enabled is in (,M ) en voor M u ' geldt dat M r) = M ( p) + M ( ) en s P'\{ r}: M '( = M (. M ( q σ ' u σ 0 M 0 u M Dus wordt gesimuleerd met Lemma: Wanneer de plaatsen p en q van het WF-net = ( P, T, F ) gefuseerd worden tot plaats r in WF-net = ( P', T ', F' ), blijft soundness behouden. Bewijs: Als eerste gaan we bewijzen dat wanneer sound is, ook sound is. We moeten dan bewijzen dat voor alle * [ f k k k en voor alle M zodanig dat [ i ] M ' geldt k ]. Beschouw een marking M zodanig dat [ i ] M '. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ i σ waar M ( p) + M ( q) = ( r) en s P'\{ r}: ( = M (. We weten dat sound is, dus k * ] M volgens de definitie van soundness geldt M [ f k ]. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ f ]. Dus wanneer sound is dan is ook sound. u gaan we bewijzen dat wanneer sound is, ook sound is. We moeten dan bewijzen k k dat voor alle k en voor alle M zodanig dat [ i ] M geldt M [ f ]. Beschouw een * * k 7

marking M zodanig dat [ i k ] M. Met behulp van het hulplemma kunnen we k concluderen dat er een marking M is zodanig dat [ i ] M ' waar ( r) = M ( p) + M ( q) en s P'\{ r}: ( = M (. We weten dat sound is, dus volgens de definitie van soundness geldt [ f k ]. Met behulp van het hulplemma k kunnen we concluderen dat er een marking M is zodanig dat M [ f ]. Dus wanneer sound is, is ook sound Fusie van een serie transities Omschrijving: Laat = ( P, T, F) een WF-net zijn met een plaats p P en de transities t, u T waarvoor geldt dat p = { t} p = { u} t = { p}. Door deze reductietechniek ontstaat het net = ( P', T ', F' ) waarvoor geldt P ' = P \ { p}, T ' = ( T \ { t, u}) { v}, q P' : F' ( v, q) = F( t, q) + F( u, q) F' ( q, v) = F( q, t) + F( q, u) en q P' : w T '\{ v}: F' ( q, w) = F( q, w) F' ( q, w) = F( q, w),, s P \ { p}: ( = M ( + F( u, M ( p). Hulplemma: Laat = ( P, T, F ) een WF-net zijn met marking M 0 en laat = ( P', T ', F' ) een WF-net zijn met een marking M 0 verkregen door de fusie van een serie plaatsen van het WF-net = ( P, T, F) zoals hierboven beschreven. Voor elke vuringssequentie σ en marking M zodanig dat M 0 M bestaat er een vuringssequentie σ en een marking M zodanig dat M en s P \{ p}: ( = M( + F( u, M( p) (). Voor elke vuringssequentie σ en marking M zodanig dat σ σ ' ' 0 M σ ' ' 0 bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 M en s P \{ p}: ( = M( + F( u, M( p) (). Bewijs: Eerst wordt het bewijs geleverd voor () met inductie naar de lengte van σ. Basisstap: σ = ε ( σ = 0) eem σ ' = ε dan geldt M =M 0, M =M 0 en s P \{ p}: ( = M( + F( u, M( p). IH: Voor elke vuringssequentie σ van lengte n en elke marking M zodanig dat σ M 0 M, bestaat er een vuringssequentie σ en een marking M zodanig dat σ ' ' 0 M en s P { p}: ( = M ( + F( u, M ( ). \ p σ 8

IS: Voor n+ hebben we σ w waarbij voor w geldt dat vuringssequentie van lengte n. Volgens de IH weten we dat worden met σ ' ' 0 σ ' ' 0 M w T en σ is een gesimuleerd kan waar σ een vuringssequentie is en marking M zodanig dat M en s P { p}: ( = M ( + F( u, M ( ). \ p w M σ M 0 M Beschouw de vuring M. Als w=t dan geldt s P { p}: M ( = M ( + F( t, ) en M p) = M ( p). Dus dan geldt \ s ( + s P { p}: ( = M ( + F( u, M ( ) en M 0 M M M M \ p σ w wordt gesimuleerd met σ ' ' 0 v. Als w=u dan geldt s P \{ p}: M ( = M( + F( t, ( p) = M( p). Dus dan geldt s P \{ p}: ( = M ( + F( t, M ( p σ w σ ' 0 M wordt gesimuleerd met 0 v. Als w t, u w geldt dat σ w σ ' 0 0 en voor M wordt gesimuleerd met M. en ) en dan is w enabled in (,M ) s P \{ p}: ( = ( + F( u, ( p). Dus u wordt het bewijs geleverd voor () met inductie naar de lengte van σ '. Basisstap: σ ' = ε ( σ ' = 0) eem σ = ε dan geldt M =M 0, M =M 0 en s P \{ p}: ( = M( + F( u, M( p). IH: Voor elke vuringssequentie σ ' van lengte n en elke marking M zodanig dat σ ' bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 0 M en s P \{ p}: ( = M( + F( u, M( p). IS: Voor n+ hebben we σ ' w waarbij voor w geldt dat vuringssequentie van lengte n. Volgens de IH weten we dat w T en σ ' is een ' 0 M σ bestaat die gesimuleerd kan worden met M 0 M waar marking M zo is dat M 0 M en s P \{ p}: ( = M( + F( u, M( p). w ' Beschouw de vuring M. Als w=v dan geldt M s P \{ p}: ( = M ( + F( u, M( p). Dus 0 wordt gesimuleerd met σ tu 0 M. Als w v dan is w enabled in (,M ) en voor M M geldt dat σ ' w σ 9

s P { p}: ( = M ( + F( u, M ( ). Dus M wordt gesimuleerd met M σ 0 w M \ p σ ' 0 w ' Lemma: Wanneer de transities t en u van het WF-net = ( P, T, F) gefuseerd worden tot transitie v in WF-net = ( P', T ', F' ), dan blijft soundness behouden. Bewijs: Als eerste gaan we bewijzen dat wanneer sound is ook sound is. We moeten k k dan bewijzen dat voor alle k en voor alle M zodanig dat [ i ] geldt [ f ]. Beschouw een marking M zodanig dat [ i * * ] M '. Met behulp van het hulplemma k kunnen we concluderen dat er een marking M is zodanig dat [ i ] M waar s P \ { p}: ( = M ( + F( u, M ( p). We weten dat sound is, dus volgens de k definitie van soundness geldt M [ f k ]. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ f. Dus wanneer sound is dan is ook sound. u gaan we bewijzen dat wanneer sound is, ook sound is. We moeten dan bewijzen k k dat voor alle k en voor alle M zodanig dat [ i ] M geldt M [ f ]. Beschouw een marking M zodanig dat [ i k k ] M. Met behulp van het hulplemma kunnen we k concluderen dat er een marking M is zodanig dat [ i ] M ' waar s P \ { p}: ( = M ( + F( u, M ( p). We weten dat sound is, dus volgens de * ] * definitie van soundness geldt [ f k ]. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat dan is ook sound M [ f k ]. Dus wanneer sound is, Fusie van parallelle plaatsen Omschrijving: Laat = ( P, T, F ) een WF-net zijn met twee plaatsen p, q P waarvoor geldt dat p = q p = q en M(p)=M(q). Deze reductietechniek, toegepast op dit net, resulteert dan in het WF-net = ( P', T ', F' ) waarvoor geldt dat P' = ( P \ { p, q}) { r}, T ' = T, 0

u T ': F' ( u, r) = F( u, p) = F( u, q) F' ( r, u) = F( p, u) = F( q, u), u T ': s P'\{ r} : F' ( u, = F( u, F' ( s, u) = F( s, u), ( r) = M ( p) = M ( q) en s P'\{ r} : ( = M (. Hulplemma: Laat = ( P, T, F ) een WF-net zijn met marking M 0 en laat = ( P', T ', F' ) een WF-net zijn met een marking M 0. Het WF-net = ( P', T ', F' ) is verkregen door de fusie van een serie plaatsen van het WF-net = ( P, T, F ) zoals hierboven beschreven. Voor elke vuringssequentie σ en marking M zodanig dat σ M 0 M σ ' bestaat er een vuringssequentie σ en een marking M zodanig dat en ( ) ( ) ( ) 0 r = M p = M q en s P'\{ r}: ( = M( (). Voor elke vuringssequentie σ en marking M zodanig dat σ ' ' 0 M bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 M en ( r) = M( p) = M( q) en s P'\{ r}: ( = M( (). Bewijs: Eerst gaan we () bewijzen met inductie naar de lengte van σ. Basisstap: σ = ε ( σ = 0) eem σ ' = ε dan geldt M =M 0, M =M 0, ( r) = M( p) = M( q) en s P'\{ r}: ( = M(. IH: Voor elke vuringssequentie σ van lengte n en elke marking M zodanig dat σ M 0 M σ ' bestaat er een vuringssequentie σ en een marking M zodanig dat en ( ) ( ) ( ) en 0 r = M p = M q s P'\{ r}: ( = M(. IS: Voor n+ hebben we σ w waar w T en σ is een vuringssequentie van lengte n. Volgens de IH weten we dat M 0 M gesimuleerd kan worden met waar σ 0 een vuringssequentie is en marking M zodanig dat M en ( r) = M( p) = M( q) en s P'\{ r}: ( = M(. σ σ ' σ σ ' ' 0 Beschouw de vuring M w M. Als w=u dan is w enabled in (,M ) en geldt s P'\{ r}: ( = M ( en M (p)=m (q)=m (r). Dus dan kan M 0 M gesimuleerd worden met s P'\{ r}: ( = M( s ) σ ' 0 w. Als w=t dan is w enabled in (,M ) en geldt en M (p)=m (p)-. Dus dan geldt ( r) = M ( p) = M ( q) en s P'\{ r}: ( = M ( en kan M 0 M σ w σ w

gesimuleerd worden met σ ' 0 w. Als w u dan is w enabled in (,M ) en geldt dat u T ': F' ( u, r) = F( u, p) = F( u, q) F' ( r, u) = F( p, u) = F( q, u), u T ': s P'\{ r} : F' ( u, = F( u, F' ( s, u) = F( s, u), Dus dan geldt s P'\{ r}: ( = M ( en M (p)=m (q)=m (r) en kan M 0 M σ ' 0 w ' gesimuleerd met M. σ w wordt u gaan we () bewijzen met inductie naar de lengte van σ ' Basisstap: σ ' = ε ( σ ' = 0) eem σ = ε dan geldt M =M 0, M =M 0, ( r) = M( p) = M( q) en s P'\{ r}: ( = M(. IH: Voor elke vuringssequentie σ ' van lengte n en elke marking M zodanig dat σ ' bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 0 M en ( r) = M( p) = M( q) en s P'\{ r}: ( = M(. IS: Voor n+ hebben we σ ' w waar w T en σ ' is een vuringssequentie van lengte n. Volgens de IH weten we dat M gesimuleerd kan worden met M 0 M waar σ een vuringssequentie is en marking M zodanig dat en s P'\{ r}: ( = M(. Beschouw de vuring w ' ' ( M ( s P'\{ r}: M = σ ' ' σ 0 σ M 0 M M ( r) = M ( p) = M ( ) ' q M. Als w=u dan geldt M ( r) = M ( p) = M ( ) en ' q dus is w enabled in (,M ). Dus dan geldt ( r) = M( p) = M( q) en s P'\{ r}: ( = M( en kan σ w 0 M gesimuleerd worden met M. Als σ σ 0 w w u dan geldt dat u T ': F' ( u, r) = F( u, p) = F( u, q) F' ( r, u) = F( p, u) = F( q, u), u T ': s P'\{ r} : F' ( u, = F( u, F' ( s, u) = F( s, u) dus is w enabled in (,M ). Dus dan geldt ( r) = M( p) = M( q) en s P'\{ r}: ( = M( en kan gesimuleerd worden met M σ 0 w M σ ' ' 0 w Lemma: Wanneer de plaatsen p en q van het WF-net = ( P, T, F) samengevoegd worden tot de plaats r in net WF-net = ( P', T ', F' ), dan blijft soundness behouden. Bewijs: Als eerste gaan we bewijzen dat wanneer sound is ook sound is. We moeten k k dan bewijzen dat voor alle k en voor alle M zodanig dat [ i ] geldt [ f ]. * *

Beschouw een marking M zodanig dat ] M '. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ i waar ( r) = M ( p) = M ( q) en s P'\{ r}: ( = M (. We weten dat sound is, dus k [ i k ] M volgens de definitie van soundness geldt M [ f k ]. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ f. Dus wanneer sound is dan is ook sound. u gaan we bewijzen dat wanneer sound is, ook sound is. We moeten dan bewijzen k k dat voor alle k en voor alle M zodanig dat [ i ] M geldt M [ f ]. Beschouw een marking M zodanig dat [ i k ] M. Met behulp van het hulplemma kunnen we k concluderen dat er een marking M is zodanig dat [ i ] M ' waar ( r) = M ( p) = M ( q) en s P'\{ r}: ( = M (. We weten dan sound is, dus * * k ] volgens de definitie van soundness geldt [ f k ]. Met behulp van het hulplemma k kunnen we concluderen dat er een marking M is zodanig dat M [ f ]. Dus wanneer sound is, is ook sound Fusie van parallelle transities Omschrijving: Laat = ( P, T, F) een WF-net zijn met twee transities t, r T waarvoor geldt dat t = u t = u. Deze reductietechniek, toegepast op dit net, resulteert in het WF-net = ( P, T, F ) waarvoor geldt dat P = P, T = ( T \{ t, u}) { v}, q P' : F' ( v, q) = F( t, q) = F( u, q) F' ( q, v) = F( q, t) = F( q, u) en q P' : w T '\{ v}: F' ( q, w) = F( q, w) F' ( w, q) = F( w, q), s P' : ( = M (. Hulplemma: Laat = ( P, T, F ) een WF-net zijn met marking M 0 en laat = ( P', T ', F' ) een WF-net zijn met een marking M 0. Het WF-net = ( P', T ', F' ) is verkregen door de fusie van een serie plaatsen van het WF-net = ( P, T, F ) zoals hierboven beschreven. Voor elke vuringssequentie σ en marking M zodanig dat σ M 0 M σ ' ' 0 bestaat er een vuringssequentie σ en een marking M zodanig dat M en s P : ( = M ( ) (). ' s 3

Voor elke vuringssequentie σ marking M zodanig dat σ ' ' 0 M bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 M en s P : ( = M( (). Bewijs: Eerst gaan we () bewijzen met inductie naar de lengte van σ. Basisstap: σ = ε ( σ = 0) eem σ ' = ε dan geldt M =M 0, M =M 0 en s P'\{ p, q}: ( = M(. IH: Voor elke vuringssequentie σ van lengte n en elke marking M zodanig dat σ M 0 M σ ' ' 0 bestaat er een vuringssequentie σ en een marking M zodanig dat M en s P : ( = M ( ). ' s IS: Voor n+ hebben we σ w waar σ w T en σ is een vuringssequentie van lengte n. Volgens de IH weten we dat M 0 M gesimuleerd kan worden met waar σ 0 een vuringssequentie is en marking M zodanig dat M en s P' : ( = M(. σ ' σ σ ' ' 0 Beschouw de vuring M w M. Als w=t of w=u dan is transitie v in (,M ) enabled. σ w σ ' 0 M v 0 ' Dus M wordt gesimuleerd met M. Als w t en σ w σ ' 0 M 0 w ' in (,M ). Dus M wordt gesimuleerd met M. w u dan is w enabled u wordt het bewijs geleverd voor () met inductie naar de lengte van σ '. Basisstap: σ ' = ε ( σ ' = 0) eem σ = ε dan geldt M =M 0, M =M 0 en s P'\{ p, q}: ( = M(. IH: Voor elke vuringssequentie σ ' σ ' van lengte n en elke marking M zodanig dat bestaat er een vuringssequentie σ en een marking M zodanig dat M 0 0 M en s P' : ( = M(. IS: Voor n+ hebben we σ ' w waarbij voor w geldt dat vuringssequentie van lengte n. Volgens de IH weten we dat er een w T en σ ' is een σ bestaat die gesimuleerd kan worden met M 0 M waar σ een vuringssequentie is en marking M zodanig dat σ M 0 M en s P : ( = M ( ). σ ' s σ ' ' 0 M 4

Beschouw de vuring M ' w. Als w=v dan is transitie t enabled in (,M ). Dus σ ' v 0 ' M wordt gesimuleerd met M 0 M. Als σ ' w σ 0 ' w 0 M ': ( M( σ t w v dan is w enabled in (,M ). Dus M wordt gesimuleerd met M. In beide gevallen blijft gelden s P = Lemma: Wanneer de parallele transities t en u van het WF-net = ( P, T, F ) gefuseerd worden tot een transitie v in het net WF-net = ( P, T, F ), dan blijft soundness behouden. Bewijs: Als eerste gaan we bewijzen dat wanneer sound is ook sound is. We moeten k k dan bewijzen dat voor alle k en voor alle M zodanig dat [ i ] geldt [ f ]. Beschouw een marking M zodanig dat * * ] M '. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ i waar s P' : ( = M (. We weten dat sound is, dus volgens de definitie van soundness k [ i k ] M geldt M [ f k ]. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat [ f k ]. Dus wanneer sound is dan is ook sound. u gaan we bewijzen dat wanneer sound is, ook sound is. We moeten dan bewijzen k k dat voor alle k en voor alle M zodanig dat [ i ] M geldt M [ f ]. Beschouw een marking M zodanig dat [ i k ] M. Met behulp van het hulplemma kunnen we k concluderen dat er een marking M is zodanig dat [ i ] M ' waar s P' : ( = M (. We weten dan sound is, dus volgens de definitie van * * soundness geldt [ f k ]. Met behulp van het hulplemma kunnen we concluderen dat er een marking M is zodanig dat sound M [ f k ]. Dus wanneer sound is, dan is ook Elimination of selfloop places Omschrijving: : Laat = ( P, T, F) een WF-net zijn met een plaats p P waarvoor geldt dat p = p d.w.z. dat p een selfloop plaats is waarvoor gedlt dat M ( p) max F( p, t)). Door deze reductietechniek wordt het WF-net = ( P', T ', F' ) t T 5

gemaakt waarvoor geldt dat P ' = P \ { p}, T ' = T en, u T ': s P \ { p}: F' ( u, = F( u, F' ( s, u) = F( s, u), s P \ { p}: ( = M (. De selfloop plaats p is een resource plaats, d.w.z. dat p gemarkeerd moet zijn in de initiële marking. De definitie van soundness, met betrekking tot WF-nets met resource l k k l plaatsen wordt herschreven tot: ( M, l : ( p + i ) ( M ) ( M ) ( f + p )) Lemma: Verwijdering van een plaats waarvoor geldt dat p = p die verbonden is met een WF-net = ( P, T, F), resulteert in het behoud van soundness van het betreffende WF-net. Bewijs: De marking van een selfloop plaats verandert niet door de vuringen van transitie t. Aangezien M ( p) max t T F( p, t)), kan p de enabledness van transities niet l beinvloeden. Omdat p constant blijft voor iedere marking M, blijft de soundness van het WF-net ook constant. et alsof plaats p er niet is. Onder de conditie dat l p geldt dat het WF-net met een (resource) selfloop plaats ook sound is, wanneer hetzelfde WF-net zonder de (resource) selfloop plaats sound is. Elimination of selfloop transitions Omschrijving: Laat = ( P, T, F) een WF-net zijn met een transitie t T waarvoor geldt dat t = t, d.w.z. dat t een selfloop transitie is. Door deze reductietechniek wordt het WF-net = ( P', T ', F' ) gemaakt waarvoor geldt dat P ' = P, T ' = T \ { t} en, u P' : s T \ { t}: F' ( u, = F( u, F' ( s, u) = F( s, u), s P : ( = M ( Lemma: Verwijdering van een transitie waarvoor geldt dat t = t die verbonden is met een WF-net = ( P, T, F), resulteert in het behoud van soundness van het betreffende WF-net. Bewijs: Wanneer t verwijderd wordt, zoals in het geval is, worden de markings daardoor niet beinvloed. Omdat de markings constant blijven, blijft soundness van het WF-net ook constant. σ γ 6

.3 Definities met betrekking tot CP-nets In dit subhoofdstuk zijn alle formele definities vermeld die nodig zijn om de formele analyse van de CP-nets uit te voeren. De meeste definities zijn afkomstig uit een bron van Kurt Jensen [4]. Definitie 7 ( CP-net [4]): Een CP-net is een tupel c = S, P, T, A,, C, gt, qt waarvoor geldt: S is een eindige set van niet-lege types (color set. De set van types legt de waarde van de data vast en de functies die gebruikt kunnen worden in de expressies van het net (bijv. pijlexpressies en guardexpressie. Wanneer het gewenst is, kunnen de types gedefiniëerd worden met behulp van many-sorted sigma algebra (zoals in de theorie van abstracte data type. We nemen aan dat ieder type minstens één element heeft. P is een eindige set van plaatsen. T is een eindige set van transities. A is een eindige set van pijlennamen. is een nodefunctie die gedefiniëerd is van A naar ( P T ) ( T P). De nodefunctie mapt iedere pijl naar een set van twee elementen waar het eerste element de bronnode is en het tweede element de doelnode. De twee nodes moeten in soort verschillen (de ene moet een plaats zijn en de ander een transitie). Een CP-net kan niet meerdere pijlen in dezelfde richting hebben tussen dezelfde set van nodes. C is een kleurfunctie die gedefiniëerd is van P naar S. De kleurfunctie C mapt elke plaats p naar een type C(p). Intuitief betekent dit dat iedere token van p een datawaarde heeft die hoort bij C(p). g t is een guardfunctie die gedefiniëerd is van TE ms naar B. Voor TE geldt dat TE = {( p, c) p P c C( p)}. q t is een transformatiefunctie die gedefiniëerd is van R ms naar V ms. Voor R geldt dat R = {( p, c) p P { p} t c C( p)} en voor V geldt dat V = {( q, d) q P { q} t d C( q)}. De plaatsen, transities en pijlen zijn beschreven door drie sets P, T en A die eindig en paarsgewijs disjoint behoren te zijn. Definitie 8 (gekleurde marking [4]): Een token element is een paar (p,c) met p P en c C( p). De set van alle token elementen wordt aangeduid met TE. Een gekleurde marking is een multi-set over TE. Definitie 9 (structural equivalentie tussen een P- en een CP-net): Een CP-net c en een P-net zijn structureel equivalent wanneer geldt dat Pc = P Tc = T Fc = F waar F c ( x, y) = { a a A ( a) = ( x, y)} voor elke ( x, y) ( P T ) ( T P). 7

Definitie 30 (ontkleuringsfunctie f die van een gekleurde marking M c een ongekleurde marking M maakt): Laat M c een marking zijn van een CP-net c en M een marking zijn van een structureel equivalent P-net. M(p,c) is het aantal tokens (p,c) in M. Functie f stelt een gekleurde marking voor met behulp van een normale marking door de kleuren niet in acht te nemen zodat geldt f ( M ) = m ( p P : m( p) = M ( p, c) ). Definitie 3 (guardfunctie g t van een transitie t van een CP-net): De guardfunctie is een mapping g t : X B, waar X = { M f ( M ) = t ( ( p, c) M : c C( p))}. Definitie 3 (transformatiefunctie q t van een transitie t van een CP-net): De transformatiefunctie is een mapping : Y Z, waar Y = { M f ( M ) = t gt ( M ) = true ( ( p, c) M : c C( p))} Z = { M f ( M ) = t ( ( p, c) M : c C( p))} Definitie 33 (enabledness van een CP-net): Transitie t, met een guardfunctie g t en een ontkleuringsfunctie f (die hoort bij transitie t), is enabled in marking M in een CP-net wanneer geldt: x M : f ( x) = t g t ( x) = true. Definitie 34 (vuringsregel CP-net: Wanneer een transitie t enabled is, dan geldt x M : gt ( x) = true en kan transitie t vuren. Dit resulteert in een nieuwe marking M waarvoor geldt = M x + q ( x). t c C q t.4 Abstractie van een CP-net met behulp van een P-net De berekening van soundness van een CP-net is niet mogelijk doordat de tokens gekleurd zijn. Vandaar dat het CP-net omgezet zal worden in een structureel equivalent P-net en zal er met deze abstractie van het CP-net de analyse van soundness uitgevoerd worden. In dit hoofdstuk zullen we met behulp van het behouden van de eigenschappen van deadlock, bereikbare deadlock en boundedness laten zien dat wanneer het geabstraheerde P-net sound is, men mag aannemen dat het CP-net structureel ook sound is. Om deze abstractie te laten slagen zullen wel laten zien dat een CP-net well-formed moet zijn en structureel equivalent moet zijn met het geabstraheerde P-net. De manier waarop vuringen plaatsvinden in een CP-net en in een P-net verschillen van elkaar. In een CP-net zijn de vuringen van transities afhankelijk van de kleur van de tokens van de marking, omdat de guard van de transitie de kleuren van de tokens eerst evalueert voordat er gevuurd wordt. In een P-net kan een transitie vuren wanneer deze genoeg tokens ter beschikking heeft. Om een abstractie van een CP-net te maken, moet er een eis gesteld worden aan het CPnet en het geabstraheerde P-net. Deze eis is de structurele equivalentie tussen de beide netten. 8

Dat houdt in dat de plaatsen, transities, in- en output pijlen gelijk zijn aan elkaar in de beide netten. De marking van een P-net wordt verkregen van een marking van het CP-net door het verwijderen van de data (de kleur) van de tokens. Hiervoor is een functie f geïntroduceerd (zie definitie 30) die iedere gekleurde marking mapt op diens ongekleurde marking. Behoud van deadlock Omdat deadlock door soundness uitgesloten wordt, zullen we bewijzen dat door de abstractie van het CP-net de eigenschap van deadlock behouden blijft. Hierdoor kunnen we onze aanname versterken over de soundness van het CP-net. Als eerste gaan we na of een CP-net met een gegeven initiële marking geen deadlock bevat. In figuur 6 is te zien dat een P-net dat niet in een deadlock toestand verkeerd, echter wel een structureel equivalent CP-net heeft dat wel in een deadlock toestand verkeerd. Dat betekent dat de afwezigheid van deadlock in een P-net niet de afwezigheid van deadlock in een CP-net impliceert. P P-et P 0 CP-et t t P P - g = p>0 ^ p<0 Figuur 6: CP-net deadlock maar P-net geen deadlock Om de structurele equivalentie te laten slagen moet er nog een eis gesteld worden aan het CP-net. Het CP-net moet well-formed zijn. Dit houdt in dat er altijd aan tenminste één guard wordt voldaan. Definitie (9) well-formedness van een CP-net: Een CP-net c is well-formed wanneer voor iedere transitie t van c en iedere gekleurde marking M, waarvoor geldt dat t f (M ), het volgende geldt t T t = t : g ( M ) true c : t =. Lemma: Laat c een well-formed CP-net zijn en een P-net zijn die structureel equivalent met elkaar zijn. Wanneer ( c,m) in een deadlock toestand verkeert, dan verkeerd (,f(m)) ook in een deadlock toestand. Bewijs: eem aan dat de stelling fout is. Dit betekent dat het CP-net ( c,m) in een deadlock toestand verkeert maar het P-net (,f(m)) niet. Dan bestaat er een enabled transitie t in (,f(m)), wat impliceert dat x M : f ( x) = t f ( x) f ( M ). We weten 9

echter dat ( c,m) geen enabled transities bevat. Dus t is niet enabled in ( c,m) wat betekent dat g t ( x) = false. Omdat c een well-formed net is, is er een transitie t waarvoor geldt dat t = t en g t ( x) = true. Dit betekend dat t is enabled in ( c,m). Dit is in tegenspraak met het feit dat ( c,m) in een deadlock toestand verkeert, wat inhoudt dat onze aanname niet klopt. Hierdoor kunnen we concluderen dat de stelling klopt. Behoud van bereikbare deadlock Omdat bereikbare deadlock door soundness uitgesloten wordt, zullen we bewijzen dat door de abstractie van het CP-net de eigenschap van bereikbare deadlock behouden blijft. Hierdoor kunnen we onze aanname versterken over de soundness van het CP-net. Lemma: Laat c een well-formed CP-net zijn en een P-net zijn die beiden structureel equivalent met elkaar zijn. Wanneer ( c,m 0 ) een deadlock toestand ( c,m) kan bereiken dan kan (,f(m 0 )) ook een deadlock toestand (,f(m)) bereiken. Bewijs: Omdat er geldt dat : M 0 M, geldt ook : f ( M 0 ) f ( M ). Door de vorige stelling is (,f(m)) ook in een deadlock toestand. Behoud van boundedness c * Omdat boundedness door soundness geimpliceerd wordt, zullen we bewijzen dat door de abstractie van het CP-net de eigenschap van boundedness behouden blijft. Hierdoor kunnen we onze aanname versterken over de soundness van het CP-net. Lemma: c is een CP-net en is een P-net die beiden structureel equivalent met elkaar zijn. Voor een willekeurige gekleurde marking M geldt dat wanneer (,f(m)) bounded is, ook ( c,m) bounded is. Dickson s Lemma []: Laat A een eindigende set zijn en laat B een oneindige subset van bag.a zijn. Dan is er een oneindige sequentie b,b. in B waarvoor geldt dat i : b <. i b + i Bewijs: eem aan de deze stelling niet klopt. Dit betekent dat het P-net (,f(m)) bounded is, maar dat het CP-net ( c,m) niet bounded is. In dat geval bestaat er een oneindige σ σ σ 3 vuringssequentie c : M M M M 3... waarvoor geldt dat f(m)<f(m )<f(m )<f(m 3 ). (dankzij het Dickson s lemma). Dan geldt ook dat σ σ σ 3 : f ( M ) f ( M ) f ( M ) f ( M 3 )... en (,f(m)) unbounded is. Dit is een tegenspraak met het feit dat ( c,m) bounded is, wat inhoudt dat de aanname niet klopt. Hieruit kunnen we concluderen dat de stelling dus wel klopt. * 30

3 CPTools De informatie van dit hoofdstuk is opgesteld met behulp van de informatie van de website van CPTools [8] en de website van Design/CP [9]. CPTools is een applicatie voor het modelleren, simuleren en analyseren van CP-nets. De grafische user interface heeft de mogelijkheid om input van meerdere bronnen tegelijk te verwerken (bijvoorbeeld een muis en een pen). Feedback gebeurt door middel van tekstuele en grafische berichten. Doordat er ook data gemodelleerd kan worden, kan men zien wat het effect van een actie is op de omgeving en de condities van het model. De grafische representatie kan niet alleen gebruikt worden als een omschrijving van het model, maar ook als een specificatie voor het systeem en kan verder gebruikt worden om het systeem te presenteren aan anderen. Figuur 7: GUI van CPTools In figuur 7 is de GUI van CPTools te zien. Hier zijn alle tools weergegeven waarmee een CP-net gemodelleerd, gesimuleerd en geanalyseerd kan worden. Met het tabblad Auxilary is het mogelijk om delen van een CP-net te groeperen en een CP-net van commentaar te voorzien. Met behulp van het tabblad Create kunnen plaatsen, transities en pijlen gemaakt worden. Het tabblad View zorgt ervoor dat in- en uitgezoomd kan worden op het CP-net. Door middel van het tabblad Hierarchy kunnen hierarchische transities gemaakt worden in het CP-net. Met dit tabblad kunnen ook de in- en output plaatsen van de hiërarchie aangegeven worden. Verder kan een nieuw net met het tabblad et aangemaakt worden of een bestaand net geladen, afgesloten, opgeslagen worden als binair bestand of opgeslagen worden als een afbeelding. Met het tabblad Simulation kunnen automatische en interactieve simulaties met het net uitgevoerd worden. Voor de formele analyse dient het tabblad Statespace die de analyse uitvoert en een rapport 3