discovering petri nets: evidence-based business process management
DESCRIPTION
Invited Talk for the Carl Adam Petri Memorial Symposium, February 2010, Berlin, Germany Carl Adam Petri was one of the most influential computer scientists of our time. This symposium commemorated the life and work of Petri. See http://www2.informatik.hu-berlin.de/top/lehre/petriweb/.TRANSCRIPT
Discovering Petri Nets: Evidence-Based Business Process ManagementWil van der Aalst
Carl Adam Petri Memorial Symposium Humboldt-Universität zu BerlinFebruary 4, 2011
Commandeur in de Orde van de Nederlandse Leeuw(Petri net conference 2003 in Eindhoven)
9-2-2011 PAGE 1
About 50 people are Commandeur in de Orde van de Nederlandse Leeuw, e.g., Wim Duisenberg, Gerard 't Hooft, Harry Mulisch, Gerard Reve, Joop den Uyl
Carl Adam Petri (12 July 1926 – 2 July 2010)
• Started a new subfield of computer science.“Much of what I have been saying was already well understood in the
sixties by Carl Adam Petri, who pioneered the scientific modeling of discrete concurrent systems. Petri's work has a secure place at the
root of concurrency theory.” (Robin Milner 1991)
• Guiding principles:- Concurrency as a starting point rather than an
afterthought (locality of actions).- Formalism should be consistent with the laws of
physics.• Researchers in the growing Business Process
Management (BPM) community use these principles.- Modeling languages have Petri-net like semantics.- More and more emphasis on empirical validation.
PAGE 2
PAGE 3
Process Mining
PAGE 4
software system
(process)model
eventlogs
modelsanalyzes
discovery
records events, e.g., messages,
transactions, etc.
specifies configures implements
analyzes
supports/controls
enhancement
conformance
“world”
people machines
organizationscomponents
businessprocesses
Play-Out
PAGE 5
event logprocess model
Play-In
PAGE 6
event log process model
Replay
PAGE 7
event log process model
• extended model showing times, frequencies, etc.
• diagnostics• predictions• recommendations
Simple example log
PAGE 8
Simple control-flow discovery (Play-In)
PAGE 9
astart register
request
bexamine
thoroughly
cexamine casually
d
check ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
c1
c2
c3
c4
c5
Alpha algorithm
PAGE 10
a b
(a) sequence pattern: a→b
a
b
c
(b) XOR-split pattern:a→b, a→c, and b#c
a
b
c
(c) XOR-join pattern:a→c, b→c, and a#b
a
b
c
(d) AND-split pattern:a→b, a→c, and b||c
a
b
c
(e) AND-join pattern:a→c, b→c, and a||b
Discovering places
PAGE 11
a1
...
a2
am
b1
b2
bn
p(A,B) ...
A={a1,a2, … am} B={b1,b2, … bn}
Challenge
PAGE 12
process discovery
fitness
precisiongeneralization
simplicity
“able to replay event log” “Occam’s razor”
“not overfitting the log” “not underfitting the log”
Example
PAGE 13
astart register
request
bexamine
thoroughly
cexamine casually
dcheck ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
astart register
request
bexamine thoroughly
cexamine casually
d checkticket
decide
pay compensation
reject request
reinitiate requeste
g
hfend
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
aregister request
dexamine casually
ccheckticket
decide reject request
e h
a cexamine casually
dcheckticket
decide
e g
a dexamine casually
ccheckticket
decide
e g
register request
register request
pay compensation
pay compensation
aregister request
b dcheckticket
decide reject request
e h
aregister request
d bcheckticket
decide reject request
e h
a b dcheckticket
decide
e gregister request
pay compensation
examine thoroughly
examine thoroughly
examine thoroughly
… (all 21 variants seen in the log)
acdeh
abdeg
adceh
abdeh
acdeg
adceg
adbeh
acdefdbeh
adbeg
acdefbdeh
acdefbdeg
acdefdbeg
adcefcdeh
adcefdbeh
adcefbdeg
acdefbdefdbeg
adcefdbeg
adcefbdefbdeg
adcefdbefbdeh
adbefbdefdbeg
adcefdbefcdefdbeg
455
191
177
144
111
82
56
47
38
33
14
11
9
8
5
3
2
2
1
1
1
# trace
1391
Model 1: Seems right
PAGE 14
acdeh
abdeg
adceh
abdeh
acdeg
adceg
adbeh
acdefdbeh
adbeg
acdefbdeh
acdefbdeg
acdefdbeg
adcefcdeh
adcefdbeh
adcefbdeg
acdefbdefdbeg
adcefdbeg
adcefbdefbdeg
adcefdbefbdeh
adbefbdefdbeg
adcefdbefcdefdbeg
455
191
177
144
111
82
56
47
38
33
14
11
9
8
5
3
2
2
1
1
1
# trace
1391
astart register
request
bexamine
thoroughly
cexamine casually
dcheck ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
fitness = +precision = +generalization = +simplicity = +
Model 2: Simple and precise, but …
PAGE 15
acdeh
abdeg
adceh
abdeh
acdeg
adceg
adbeh
acdefdbeh
adbeg
acdefbdeh
acdefbdeg
acdefdbeg
adcefcdeh
adcefdbeh
adcefbdeg
acdefbdefdbeg
adcefdbeg
adcefbdefbdeg
adcefdbefbdeh
adbefbdefdbeg
adcefdbefcdefdbeg
455
191
177
144
111
82
56
47
38
33
14
11
9
8
5
3
2
2
1
1
1
# trace
1391
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
fitness = -precision = +generalization = -simplicity = +
Model 3: Simple but underfitting
PAGE 16
acdeh
abdeg
adceh
abdeh
acdeg
adceg
adbeh
acdefdbeh
adbeg
acdefbdeh
acdefbdeg
acdefdbeg
adcefcdeh
adcefdbeh
adcefbdeg
acdefbdefdbeg
adcefdbeg
adcefbdefbdeg
adcefdbefbdeh
adbefbdefdbeg
adcefdbefcdefdbeg
455
191
177
144
111
82
56
47
38
33
14
11
9
8
5
3
2
2
1
1
1
# trace
1391
astart register
request
bexamine thoroughly
cexamine casually
d checkticket
decide
pay compensation
reject request
reinitiate requeste
g
hfend
fitness = +precision = -generalization = +simplicity = +
Model 4: Complex and overfitting
PAGE 17
acdeh
abdeg
adceh
abdeh
acdeg
adceg
adbeh
acdefdbeh
adbeg
acdefbdeh
acdefbdeg
acdefdbeg
adcefcdeh
adcefdbeh
adcefbdeg
acdefbdefdbeg
adcefdbeg
adcefbdefbdeg
adcefdbefbdeh
adbefbdefdbeg
adcefdbefcdefdbeg
455
191
177
144
111
82
56
47
38
33
14
11
9
8
5
3
2
2
1
1
1
# trace
1391
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
aregister request
dexamine casually
ccheckticket
decide reject request
e h
a cexamine casually
dcheckticket
decide
e g
a dexamine casually
ccheckticket
decide
e g
register request
register request
pay compensation
pay compensation
aregister request
b dcheckticket
decide reject request
e h
aregister request
d bcheckticket
decide reject request
e h
a b dcheckticket
decide
e gregister request
pay compensation
examine thoroughly
examine thoroughly
examine thoroughly
… (all 21 variants seen in the log)
fitness = +, precision = +, generalization = -, simplicity = -
Overview
PAGE 18
process discovery
fitness
precisiongeneralization
simplicity
“able to replay event log” “Occam’s razor”
“not overfitting the log” “not underfitting the log”
astart register
request
bexamine
thoroughly
cexamine casually
dcheck ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
astart register
request
bexamine thoroughly
cexamine casually
d checkticket
decide
pay compensation
reject request
reinitiate requeste
g
hfend
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
aregister request
dexamine casually
ccheckticket
decide reject request
e h
a cexamine casually
dcheckticket
decide
e g
a dexamine casually
ccheckticket
decide
e g
register request
register request
pay compensation
pay compensation
aregister request
b dcheckticket
decide reject request
e h
aregister request
d bcheckticket
decide reject request
e h
a b dcheckticket
decide
e gregister request
pay compensation
examine thoroughly
examine thoroughly
examine thoroughly
… (all 21 variants seen in the log)
astart register
request
bexamine
thoroughly
cexamine casually
dcheck ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
astart register
request
bexamine thoroughly
cexamine casually
d checkticket
decide
pay compensation
reject request
reinitiate requeste
g
hfend
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
aregister request
dexamine casually
ccheckticket
decide reject request
e h
a cexamine casually
dcheckticket
decide
e g
a dexamine casually
ccheckticket
decide
e g
register request
register request
pay compensation
pay compensation
aregister request
b dcheckticket
decide reject request
e h
aregister request
d bcheckticket
decide reject request
e h
a b dcheckticket
decide
e gregister request
pay compensation
examine thoroughly
examine thoroughly
examine thoroughly
… (all 21 variants seen in the log)
astart register
request
bexamine
thoroughly
cexamine casually
dcheck ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
astart register
request
bexamine thoroughly
cexamine casually
d checkticket
decide
pay compensation
reject request
reinitiate requeste
g
hfend
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
aregister request
dexamine casually
ccheckticket
decide reject request
e h
a cexamine casually
dcheckticket
decide
e g
a dexamine casually
ccheckticket
decide
e g
register request
register request
pay compensation
pay compensation
aregister request
b dcheckticket
decide reject request
e h
aregister request
d bcheckticket
decide reject request
e h
a b dcheckticket
decide
e gregister request
pay compensation
examine thoroughly
examine thoroughly
examine thoroughly
… (all 21 variants seen in the log)
astart register
request
bexamine
thoroughly
cexamine casually
dcheck ticket
decide
pay compensation
reject request
reinitiate request
e
g
h
f
end
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
astart register
request
bexamine thoroughly
cexamine casually
d checkticket
decide
pay compensation
reject request
reinitiate requeste
g
hfend
astart register
request
cexamine casually
dcheckticket
decide reject request
e hend
aregister request
dexamine casually
ccheckticket
decide reject request
e h
a cexamine casually
dcheckticket
decide
e g
a dexamine casually
ccheckticket
decide
e g
register request
register request
pay compensation
pay compensation
aregister request
b dcheckticket
decide reject request
e h
aregister request
d bcheckticket
decide reject request
e h
a b dcheckticket
decide
e gregister request
pay compensation
examine thoroughly
examine thoroughly
examine thoroughly
… (all 21 variants seen in the log)
PAGE 19
WMO process Harderwijk
PAGE 20
Process model discovered by HM10 Proces registratie
(start)530
10 Proces registratie(complete)
530
0,991530
20 Rapportage & beschikking(start)532
0,998530
20 Rapportage & beschikking(complete)
532
0,987532
0,998
Conformance checking of discovered model
PAGE 22
Performance Analysis
PAGE 23
Rijkswaterstaat
PAGE 24
PAGE 25
Catharina hospital (Eindhoven)
PAGE 26
2765 patients, 114,592 events, 619 different activities (taking event types into account) executed by 266 different individuals (doctors, nurses, etc.)
Fragment of process (2.9%)
18 activities of the 619 activities
PAGE 27
AMC hospital Amsterdam
PAGE 28
627 gynecological oncology patients, 24331 events, 376 different activities
ASML testing process
PAGE 29
Conclusion
PAGE 30
Petri’s guiding principles:1) Concurrency as a
starting point rather than an afterthought (locality of actions).
2) Formalism should be consistent with the laws of physics.
• We can observe processes; they leave footprints in event logs that can be extracted from various data sources.
• We can learn process models.• We can quantify the conformance of process
models (standard equivalence notions are useless).
• Ignoring this source of information is like studying physics while ignoring experimental results.
• Evidence-based Business Process Management!
PAGE 31
Process mining
PAGE 32
More Information
PAGE 33PAGE 33
IEEE Task Force on Process Mining
• ProM Software: prom.sourceforge.net• Process mining: www.processmining.org• ProM 5 series nightly builds: prom.win.tue.nl/tools/prom/nightly5/• ProM 6 series nightly builds: prom.win.tue.nl/tools/prom/nightly/• Converting logs (MXML-based) promimport.sourceforge.net • XES: www.xes-standard.org and www.openxes.org• Papers et al.: vdaalst.com• IEEE Task Force on Process Mining: www.win.tue.nl/ieeetfpm/