Skip to content

franvinci/MLProcessModelRepair

Repository files navigation

Repairing Process Models through Simulation and Explainable AI

A Framework for repairing Petri Net Process models using Process Simulation and Explainable AI.

A process model is one of the main milestones for Business Process Management and Mining. They are used to engage process stakeholders into discussions on how processes should be executed, or are alternatively used as input for Process-aware Information Systems to automate processes. Desirable models need to be precise and only allow legitimate behavior (high precision), while enabling the executions that have been observed (high fitness). Often, models fail to achieve these properties, and need to be repaired. This paper proposes a model-repair framework that compares the behavior allowed by the model with what observed in reality, aiming to pinpoint the distinguishing features. The framework creates a Machine Learning model that discriminates the traces of the real event log w.r.t. those of a synthetic event log obtained via simulation of the process model. Explainable-AI techniques are employed to make the distinguishing features explicit, which are then used to repair the original process model. Our framework has been implemented and evaluated on four processes and various models, proving the effectiveness of enhancing the original process model achieving a balanced trade-off between fitness and precision. Our results are then compared with those obtained through the state of the art, which tend to prefer fitness over precision: the comparison shows that our framework outperforms the literature in balancing fitness and precision.

To view results: Download MLProcessModelRepair.ipynb and Upload it to Google Colab.

Alt Text

How to use:

  1. Clone this repository.
  2. Clone SPN_Simulator into MLProcessModelRepair
  3. Navigate into the MLProcessModelRepair directory:
    $ cd MLProcessModelRepair
  4. Create environment using conda:
    $ conda create --name ENVNAME --file requirements.txt
import repair_pn
import pm4py

model_path = 'data/Purchasing/diagram_0.pnml'
log_path = 'data/Purchasing/log.xes'

repaired_net, im, fm, _ = repair_pn.apply(log_path, model_path, greedy_method=True)

# show the repaired Petri net
pm4py.view_petri_net(repaired_net, im, fm)

Experiments Replicability Instructions:

Input and output files are in data.zip.

To view results:

  1. Download MLProcessModelRepair.ipynb and Upload it to Google Colab Open In Colab
  2. Upload data.zip.
  3. Unzip data.zip:
    !unzip data.zip
  4. Launch notebook cells following instructions in the comments.

To re-launch experiments:

  1. Clone this repository.
  2. Clone SPN_Simulator into MLProcessModelRepair
  3. Create environment using conda:
    $ conda create --name ENVNAME --file requirements.txt
  4. Unzip data.zip:
    $ unzip data.zip
    1. Run a specific experiment (e.g. Purchasing):
      $ python run.py --case_study 'Purchasing'
    2. Run all experiments:
      $ python run_experiments.py

Reference

Vinci, F., de Leoni, M. (2024). Repairing Process Models Through Simulation and Explainable AI. In: Marrella, A., Resinas, M., Jans, M., Rosemann, M. (eds) Business Process Management. BPM 2024. Lecture Notes in Computer Science, vol 14940. Springer, Cham. https://doi.org/10.1007/978-3-031-70396-6_8

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors