Spaces:
Runtime error
Runtime error
| import os | |
| from pm4py import util | |
| from pm4py.algo.conformance import alignments as ali | |
| from pm4py.algo.conformance.alignments.petri_net.variants.state_equation_a_star import Parameters | |
| from pm4py.objects import log as log_lib | |
| from pm4py.objects.log.importer.xes import importer as xes_importer | |
| from pm4py.objects.petri_net.importer import importer as petri_importer | |
| from pm4py.objects.petri_net.utils.align_utils import pretty_print_alignments | |
| def align(trace, net, im, fm, model_cost_function, sync_cost_function): | |
| trace_costs = list(map(lambda e: 1000, trace)) | |
| params = dict() | |
| params[util.constants.PARAMETER_CONSTANT_ACTIVITY_KEY] = log_lib.util.xes.DEFAULT_NAME_KEY | |
| params[Parameters.PARAM_MODEL_COST_FUNCTION] = model_cost_function | |
| params[Parameters.PARAM_TRACE_COST_FUNCTION] = trace_costs | |
| params[Parameters.PARAM_SYNC_COST_FUNCTION] = sync_cost_function | |
| return ali.petri_net.algorithm.apply_trace(trace, net, im, fm, parameters=params, | |
| variant=ali.petri_net.algorithm.VERSION_STATE_EQUATION_A_STAR) | |
| def execute_script(): | |
| log_path = os.path.join("..", "tests", "input_data", "running-example.xes") | |
| pnml_path = os.path.join("..", "tests", "input_data", "running-example.pnml") | |
| # log_path = 'C:/Users/bas/Documents/tue/svn/private/logs/a32_logs/a32f0n05.xes' | |
| # pnml_path = 'C:/Users/bas/Documents/tue/svn/private/logs/a32_logs/a32.pnml' | |
| log = xes_importer.apply(log_path) | |
| net, marking, fmarking = petri_importer.apply(pnml_path) | |
| model_cost_function = dict() | |
| sync_cost_function = dict() | |
| for t in net.transitions: | |
| if t.label is not None: | |
| model_cost_function[t] = 1000 | |
| sync_cost_function[t] = 0 | |
| else: | |
| model_cost_function[t] = 1 | |
| alignments = [] | |
| for trace in log: | |
| alignments.append(align(trace, net, marking, fmarking, model_cost_function, sync_cost_function)) | |
| pretty_print_alignments(alignments) | |
| if __name__ == '__main__': | |
| execute_script() | |