Skip to content
Heuristics Miner in R and integrated with the bupaR framework.
R C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R
data
docs
man
src
.Rbuildignore
.gitignore
.travis.yml
DESCRIPTION
LICENSE
LICENSE.md
NAMESPACE
NEWS.md
README.md
heuristicsmineR.Rproj

README.md

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:

remotes::install_github("fmannhardt/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 Process Mining book:

# 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"))
You can’t perform that action at this time.