process_mining / pm4py /examples /align_approx_pt.py
linpershey's picture
Add 'pm4py/' from commit '80970016c5e1e79af7c37df0dd88e17587fe7bcf'
b4ba3ec
raw
history blame
1.03 kB
import os
import importlib.util
from pm4py.algo.discovery.inductive import algorithm as inductive
from pm4py.objects.log.importer.xes import importer as xes_importer
from pm4py.algo.conformance.alignments.process_tree import algorithm as align_approx
from pm4py.objects.petri_net.utils.align_utils import pretty_print_alignments
from examples import examples_conf
def execute_script():
log_path = os.path.join("..", "tests", "input_data", "running-example.xes")
log = xes_importer.apply(log_path)
tree = inductive.apply(log)
if importlib.util.find_spec("graphviz"):
from pm4py.visualization.process_tree import visualizer as pt_vis
gviz = pt_vis.apply(tree, parameters={pt_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: examples_conf.TARGET_IMG_FORMAT})
pt_vis.view(gviz)
print("start calculate approximated alignments")
approx_alignments = align_approx.apply(log, tree)
pretty_print_alignments(approx_alignments)
if __name__ == "__main__":
execute_script()