Til foredraget på konferencen
“Applications of Optimization 2015” 5. maj i Industriens Hus, var fokus på min præsentation af process mining et lidt andet, end det rent funktionelle.
Det skyldes naturligvis, at publikum hovedsagligt havde en interesse eller et afsæt i de bagvedliggende teknikker og algoritmer, der muliggør værktøjer som process mining.
Det forunderlige ved process mining er, at det ligger midt mellem traditionel workshop arbejde med tegnede proces diagrammer og data mining teknikker. Det giver det bedste fra begge verdener.
Bidraget til konferencen var centreret omkring en præsentation af process mining og baggrunden for, at vi nu står med så kraftfulde teknikker og værktøjer, samt en demonstration af en process mining case - men der var naturligvis også lidt baggrundsviden om de algoritmer, der ligger bagved.
Algoritmer er populært sagt opskrifter på hvordan et problem af en bestemt type løses. I tilfældet process mining er “problemet”, at få skabt et billede af processen og hvordan den performer (se eksempel nedenfor).
For at gøre dette tager process mining værktøjet fat i en log fil og lader en process mining algoritme løbe loggen igennem for derved at kunne udlede hvordan processen er (log fil eksempel vist nedenfor).
Når man bruger process mining værktøjer virker det meget simpelt. Det er dog ikke helt så simpelt at lave algoritmer, der er gode nok.
For at en process mining algoritme er brugbar, skal den producere en proces model, der opfylder følgende:
Fittness
Proces modellen skal have Fitness. Det betyder med andre ord, at alle forløb i loggen skal kunne udføres af modellen.
Simpel
Proces modellen skal være så simpel som mulig. Kan der produceres to forskellige proces modeller over samme data grundlag, er det den simpleste, der skal vises. Uden målet; at modellen skal være simpel ville algoritmerne blot generere “spaghetti” modeller, der ville være ubruglige.
Generel
Proces modellen skal være generel. Process modellen der produceres skal ikke være begrænset til kun af afspejle de forløb, der ses i loggen. Det er næsten umuligt at antage, man altid har en komplet log, hvor hele processen er afspejlet. Tænk for eksempel på en proces med 10 parallelle processer. Antallet at mulige forløb i sådan en proces er 10! = 3.628.800 forløb (mindst). Modellen skal altså kunne tage højde for forløb, der ikke er direkte tilstede i loggen.
Præcision
Modellen der produceres må ikke tillade alt for mange forløb, som der ikke er grundlag for jf. de data, der er i loggen. En såkaldt “flower” model som vist nedenfor er i teorien korrekt, men den tillader alt for mange forløb (uendeligt mange) som der ikke er grundlag for jf. data grundlaget. En “flower” model er tæt på ubrugelig.
Algoritmerne:
En af de første process mining algoritmer, der blev lavet er Alpha algoritmen. Alpha algoritmen producerer Petri net diagrammer baseret på data log filer.
Den kaldes populært for en smuk algoritme, da den består af blot 8 linier:
W er en workflow log over T. α(W) defineres som vist nedenfor:
1.TW ={t∈T | ∃σ∈W t∈σ},
2.TI ={t∈T | ∃σ∈W t=first(σ)},
3.TO ={t∈T | ∃σ∈W t=last(σ)},
4.XW ={(A,B)| A⊆TW ∧A≠ø∧B⊆TW ∧B≠ø∧
∀a∈A∀b∈B a→W b ∧ ∀a1,a2∈A a1#W a2 ∧ ∀b1,b2∈B b1#W b2 },
5.YW ={(A,B)∈X | ∀(A′,B′)∈XA⊆A′∧B⊆B′⇒(A,B)=(A′,B′)},
6. PW = { p(A,B) | (A,B) ∈ YW } ∪{iW,oW},
7.FW ={(a,p(A,B)) | (A,B)∈YW ∧a∈A} ∪{(p(A,B),b) | (A,B)∈ YW
∧b∈B} ∪{(iW,t) | t∈TI} ∪{(t,oW) |t∈TO},and
8. α(W) = (PW,TW,FW).
Selvom Alpha algoritmen er smuk og genererer en bredt brugbar petri net model, har den også nogle mangler:
Alpha algoritmen er meget følsom overfor “støj” - forløb der opstår meget sjældent, men som forplumrer billedet af en generel proces model. Derudover er Alpha algoritmen ikke i stand til at identificere korte loops. Loopet vist nedenfor med orange kan ikke identificeres:
Endvidere kan Alpha algoritmen ikke identificere duplikerede aktiviteter. Nedenfor viste aktivitet med orange kan ikke identificeres, da den er en duplikat:
Endelig antager Alpha algoritmen, at loggen er komplet, hvilket man ikke kan antage, som beskrevet ovenfor.
Af øvrige algoritmer kan nævnes Heuristic Miner og Fuzzy Miner (der findes dog mange flere, men disse er blandt de mest populære).
Heuristic miner er en viderebyggelse af Alpha Algoritmen. Heuristic Miner algoritmen tager, i modsætning til Alpha algoritmen, hyppigheden af forløb i betragtning og kan derfor meget bedre håndtere “støj”.
Fuzzy miner, som er den der har genereret proces modellen vist i første proces model øverst i denne artikel, er baseret på signifikans og korrelationsberegninger. Denne algoritme kan meget nemmere håndtere “støj”, og er god til ustrukturerede processer.
Af ulemper kan nævnes, at den ikke genererer et petri net med tydelige beslutnings identifikatorer og kan derfor ikke konvertere proces modellen til anden grafiske fremstillinger - som for eksempel BPMN notation - og kan derfor ikke benyttes til automatisk sammenligning op imod andre modeller.
Det er forskningen i disse algoritmer og videreudviklingen af dem, der muliggør det process mining, vi kender i dag.
Comments
You can follow this conversation by subscribing to the comment feed for this post.