def apply_tree_variants(variants, parameters=None): """ Apply the IMDF algorithm to a dictionary/list/set of variants a log obtaining a process tree Parameters ---------- variants Dictionary/list/set of variants in the log parameters Parameters of the algorithm, including: pmutil.constants.PARAMETER_CONSTANT_ACTIVITY_KEY -> attribute of the log to use as activity name (default concept:name) Returns ---------- tree Process tree """ if parameters is None: parameters = {} dfg, list_act, start_activities, end_activities = dfg_utils.get_dfg_sa_ea_act_from_variants( variants, parameters=parameters) return apply_tree_dfg(dfg, parameters=parameters, start_activities=start_activities, end_activities=end_activities, activities=list_act)
def apply_variants(variants, parameters=None): """ Apply the IMDF algorithm to a dictionary/list/set of variants obtaining a Petri net along with an initial and final marking Parameters ----------- variants Dictionary/list/set of variants in the log parameters Parameters of the algorithm, including: pmutil.constants.PARAMETER_CONSTANT_ACTIVITY_KEY -> attribute of the log to use as activity name (default concept:name) Returns ----------- net Petri net initial_marking Initial marking final_marking Final marking """ if parameters is None: parameters = {} dfg, list_act, start_activities, end_activities = dfg_utils.get_dfg_sa_ea_act_from_variants( variants, parameters=parameters) return apply_dfg(dfg, parameters=parameters, start_activities=start_activities, end_activities=end_activities, activities=list_act)