bupaverse / heuristicsmineR

Heuristics Miner in R and integrated with the bupaR framework.
https://bupaverse.github.io/heuristicsmineR/
Other
14 stars 2 forks source link
bupar event-log heuristics-miner petri-net process-mining r

Process discovery with variants of the Heuristics Miner algorithm

CRAN\_Status\_Badge Travis-CI Build Status

Discover process models with the Heuristics Miner

Discovery of process models from event logs based on the Heuristics Miner algorithm integrated into the bupaR framework.

Installation

You can install the release CRAN version with:

install.packages("heuristicsmineR")

You can install the development version of heuristicsmineR with:

source("https://install-github.me/r-lib/remotes")
remotes::install_github("bupaverse/heuristicsmineR")

Example

This is a basic usage example discovering the Causal net of the patients event log:

library(heuristicsmineR)
library(eventdataR)
data(patients)

# Dependency graph / matrix
dependency_matrix(patients)
# Causal graph / Heuristics net
causal_net(patients)

This discovers the Causal net of the built-in L_heur_1 event log that was proposed in the book Process Mining: Data Science in Action:

# Efficient precedence matrix
m <- precedence_matrix_absolute(L_heur_1)
as.matrix(m)

# Example from Process mining book
dependency_matrix(L_heur_1, threshold = .7)
causal_net(L_heur_1, threshold = .7)

The Causal net can be converted to a Petri net (note that there are some unnecessary invisible transition that are not yet removed):

# Convert to Petri net
library(petrinetR)
cn <- causal_net(L_heur_1, threshold = .7)
pn <- as.petrinet(cn)
render_PN(pn)

The Petri net can be further used, for example for conformance checking through the pm4py package (Note that the final marking is currently not saved in petrinetR):

library(pm4py)
conformance_alignment(L_heur_1, pn, 
                      initial_marking = pn$marking, 
                      final_marking = c("p_in_6"))