1 Analysis of workflows : Verification, validation, and performance analysis. Wil van der Aalst Eindhoven University of Technology Faculty of Technology Management Department of Information and Technology P.O. Box MB Eindhoven The Netherlands
2 Design-time and run-time questions Run-timeDesign-time process mining verification validation performance analysis
3 Techniques to analyze workflows (design-time) Validation is concerned with the relation between the model and reality. Verification is typically used to answer qualitative questions –Is there a deadlock possible? –It is possible to successfully handle a specific case? –Will all cases terminate eventually? –It is possible to execute two tasks in any order? Performance analysis is typically used to answer quantitative questions –How many cases can be handled in one hour? –What is the average flow time? –How many extra resources are required? –How many cases are handled within 2 days?
4 Verification: analysis techniques can be used to avoid logical errors. Is this a correct workflow? If not, how to correct it? pay_damage check_policy readystartregister c5 c6 c4 c3 c2 c1 check_damage send_letter
5 It this process correct?
6 Error 1: dangling tasks task5task4 task3task2task1beginend
7 Error 2: deadlock (task2) task2 task1beginend
8 Error 3: unbounded and never-ending task3task2task1beginend
9 Error 4: deadlock before or after termination task3task2task1beginend
10 Soundness property The soundness property corresponds to two standard Petri-net properties (liveness and boundedness). Standard Petri-net-based tools can be used. For (almost) free-choice nets this can be checked in polynomial time! process definition endbegin Eventually the case terminates and the moment it terminates all references have been removed.
11 Petri-nets: a solver-independent medium problem Petri net description toolbox reachability analysis Markovian analysis simulation structural analysis OR-techniques modeling analysis answers
12 Reachability analysis rg1 red1 yellow1 green1 yr1 gy1 rg2 red2 yellow2 green2 yr2 gy2 safe
13 Reachability graph Each node corresponds to a reachable state. Done by a computer. A computer can cope with reachability graphs with millions of nodes. The traffic lights are safe!
14 Exercise: construct reachability graph pay_damage check_policy readystartregister c5 c6 c4 c3 c2 c1 check_damage send_letter
15 Structural analysis Many techniques are available: place invariants transition invariants traps and siphons reduction rules decomposition techniques S-covers/T-covers special techniques for subclasses: –state machines –marked graphs –free-choice nets –asymmetric free-choice nets
16 Place invariants A place invariant assigns a weight to each place such that the weighted token sum remains constant. divorcemarriage man woman couple 1man + 1woman+2couple =constant (man+woman+2couple=7) woman + couple man + couple man - woman
17 Example rg1 red1 yellow1 green1 yr1 gy1 rg2 red2 yellow2 green2 yr2 gy2 safe red1+yellow1+green1 = 1 red2+yellow2+green2 = 1 safe + green1 + green2 + yellow1 + yellow2 = 1 red1 + red2 - safe = 1
18 Place invariants can be used to check detect errors There should be a positive place invariant assigning positive weights to all places and identical weights to begin and end. 1.begin + 1.end = constant endbegin
19 Exercise pay_damage check_policy readystartregister c5 c6 c4 c3 c2 c1 check_damage send_letter Use place invariants to motivate the correctness of the process definition.
20 Example startregister send_form evaluate process_complaint check_proc process_form time-out archive ready c1 c2 c3 c4 c5 c6 c7 Sound? P-inv.?
21 Example (2) startregister send_form evaluate process_complaint check_proc process_form time-out archive ready c1 c2 c3 c4 c5 c6 Sound? P-inv.?
22 Example (3) startregister send_form evaluate process_complaint check_proc process_form time-out archive ready c1 c2 c3 c4 c5 c6 c7 c8 Sound? P-inv.?
23 Example (4) startregister send_form evaluate process_complaint check_proc process_form time-out archive ready c1 c2 c3 c4 c5 c6 c7 Sound? P-inv.?
24 Example (5) startregister send_form evaluate process_complaint check_proc process_form time-out archive ready c1 c2 c3 c4 c5 c6 c7 Sound? P-inv.?
25 Transition invariants A transition invariant assigns a weight to each transition such that the net effect of firing each transition the specified number of time is zero, i.e., the initial marking is reproduced. divorcemarriage man woman couple marriage + divorce 2.marriage + 2.divorce
26 Transition invariants can be used to detect errors There should be a positive transition invariant assigning positive weights to all transitions. endbegin short-circuited net
27 Example Give transition invariants of short-circuited net. pay_damage check_policy readystartregister c5 c6 c4 c3 c2 c1 check_damage send_letter
28 Why invariants? Can be calculated efficiently (polynomial time for a basis). Independent of initial marking. However, the main reason is didactical! You only truly understand a model if you think about it in terms of invariants!
29 Performance analysis Questions: throughput, waiting and service times service levels occupation rates Techniques: simulation queuing theory Markovian analysis
30 Example: sequential (1) average throughput time : 22.2 minutes service time: 8.0 minutes waiting time: 14.2 minutes task2task1c3c1c2 2 resources, average service time of 4 minutes 24 arrivals per hour 2 resources, average service time of 4 minutes
31 Parallel (2) average throughput time : 15 minutes service time: 4 minutes waiting time: 11 minutes task2 task1 c3 c1 c21 24 arrivals per hour c23 c24c22 2 resources, average service time of 4 minutes 2 resources, average service time of 4 minutes
32 Compose (3) average throughput time : 9.5 minutes service time: 7.0 minutes waiting time: 2.5 minutes task12c3c1 24 arrivals per hour 4 resources, average service time of 7 minutes
33 Flexible resources (4) average throughput time : 14.0 minutes service time: 8.0 minutes waiting time: 6.0 minutes task2task1c3c1c2 24 arrivals per hour 4 resources, average service time of 4 minutes
34 Triage (5) average throughput time : 31.1 minutes service time: 8.0 minutes waiting time: 23.1 minutes task1b task1a c3 c1 c21 6 difficult cases per hour c23 c22 1 resource, average service time of 8 minutes 1 resource, average service time of 2.66 minutes task2 2 resources, average service time of 4 minutes 18 easy cases per hour difficult cases easy cases
35 Priority (6) average throughput time : 14 minutes service time: 8 minutes waiting time: 6 minutes task2 task1c3 c1 c2 easy cases have priority 2 resources, average service time 8 (difficult case) or 2.66 (easy case) minutes 6 difficult cases per hour 18 easy cases per hour easy cases have priority 2 resources, average service time 8 (difficult case) or 2.66 (easy case) minutes
36 Results
37 Queuing models Basic characteristics: average number of arrivals per time unit: (mean arrival rate) average number that can be handled by one server per time unit: (mean service rate) number of servers: c arrivals waiting service c
38 Queuing models (2) Basic relationships: average time between arrivals: 1/ average service time: 1/ occupation rate: c* ) average number being served: r c W,Lq S,L W (S) = average time in queue (system) Lq (L) = average number in queue (system) L = Lq + r S = W + 1/ Lq = * W L = * S (Little’s formula)
39 M/M/1 queue 1 Lq = ( L = W = S = Assumptions: time between arrivals and service time follow a negative expontential distribution 1 server (c = 1) FIFO Also formulas for M/Er/1, M/G/1, M/M/c,... !
40 Exercise Calculate: occupation rates, average waiting time, average throughput time, average number in system. task1b task1a c3 c1 c21 6 difficult cases per hour c23 c22 1 resource, average service time of 8 minutes 1 resource, average service time of 2.66 minutes task2 1 resource, average service time of 2 minutes 18 easy cases per hour difficult cases easy cases Increase the occupation rate until 90%: average waiting time, average throughput time, average number in system.
41 Queuing models Basic characteristics: average number of arrivals per time unit: (mean arrival rate) average number that can be handled by one server per time unit: (mean service rate) number of servers: c arrivals waiting service c
42 Queuing models (2) Basic relationships: average time between arrivals: 1/ average service time: 1/ occupation rate: c* ) average number being served: r c W,Lq S,L W (S) = average time in queue (system) Lq (L) = average number in queue (system) L = Lq + r S = W + 1/ Lq = * W L = * S (Little’s formula)
43 M/M/1 queue 1 Lq = ( L = W = S = Assumptions: time between arrivals and service time follow a negative expontential distribution 1 server (c = 1) FIFO Also formulas for M/Er/1, M/G/1, M/M/c,... !
44 Exercise Calculate: occupation rates, average waiting time, average throughput time, average number in system. task1b task1a c3 c1 c21 6 difficult cases per hour c23 c22 1 resource, average service time of 8 minutes 1 resource, average service time of 2.66 minutes task2 1 resource, average service time of 2 minutes 18 easy cases per hour difficult cases easy cases Increase the occupation rate until 90%: average waiting time, average throughput time, average number in system.
45 Simulation Random walk through the reachability graph Computer experiment –pseudo random numbers –random generator Validation Statistical aspects –start run –subruns Animation Flexible No proof!
46 Simulation using Protos/ExSpect