Beispiel #1
0
def view_petri_net(petri_net, initial_marking, final_marking, format="png"):
    """
    Views a (composite) Petri net

    Parameters
    -------------
    petri_net
        Petri net
    initial_marking
        Initial marking
    final marking
        Final marking
    format
        Format of the output picture (default: png)
    """
    from pm4py.visualization.petrinet import visualizer as pn_visualizer
    gviz = pn_visualizer.apply(
        petri_net,
        initial_marking,
        final_marking,
        parameters={
            pn_visualizer.Variants.WO_DECORATION.value.Parameters.FORMAT:
            format
        })
    pn_visualizer.view(gviz)
Beispiel #2
0
def execute_script():
    log_path = os.path.join("..", "tests", "input_data",
                            "interval_event_log.xes")
    log = xes_importer.apply(log_path)
    parameters = {}
    parameters[
        constants.PARAMETER_CONSTANT_START_TIMESTAMP_KEY] = "start_timestamp"
    parameters[constants.PARAMETER_CONSTANT_TIMESTAMP_KEY] = "time:timestamp"
    parameters[constants.PARAMETER_CONSTANT_ACTIVITY_KEY] = "concept:name"
    parameters["format"] = "svg"
    start_activities = sa_get.get_start_activities(log, parameters=parameters)
    end_activities = ea_get.get_end_activities(log, parameters=parameters)
    parameters["start_activities"] = start_activities
    parameters["end_activities"] = end_activities
    dfg_freq = dfg_algorithm.apply(log,
                                   parameters=parameters,
                                   variant=dfg_algorithm.Variants.FREQUENCY)
    dfg_perf = dfg_algorithm.apply(log,
                                   parameters=parameters,
                                   variant=dfg_algorithm.Variants.PERFORMANCE)
    dfg_gv_freq = dfg_vis_fact.apply(dfg_freq,
                                     log=log,
                                     variant=dfg_vis_fact.Variants.FREQUENCY,
                                     parameters=parameters)
    dfg_vis_fact.view(dfg_gv_freq)
    dfg_gv_perf = dfg_vis_fact.apply(dfg_perf,
                                     log=log,
                                     variant=dfg_vis_fact.Variants.PERFORMANCE,
                                     parameters=parameters)
    dfg_vis_fact.view(dfg_gv_perf)
    net, im, fm = dfg_conv.apply(dfg_freq)
    gviz = pn_vis.apply(net, im, fm, parameters=parameters)
    pn_vis.view(gviz)
Beispiel #3
0
def execute_script():
    # import the log
    log_path = os.path.join("..", "tests", "input_data", "receipt.xes")
    log = xes_importer.apply(log_path)
    # apply Inductive Miner
    net, initial_marking, final_marking = inductive_miner.apply(log)
    # get visualization
    variant = pn_vis.Variants.PERFORMANCE
    parameters_viz = {
        pn_vis.Variants.PERFORMANCE.value.Parameters.AGGREGATION_MEASURE:
        "mean",
        pn_vis.Variants.PERFORMANCE.value.Parameters.FORMAT: "svg"
    }
    gviz = pn_vis.apply(net,
                        initial_marking,
                        final_marking,
                        log=log,
                        variant=variant,
                        parameters=parameters_viz)
    pn_vis.view(gviz)
    # do another visualization with frequency
    variant = pn_vis.Variants.FREQUENCY
    parameters_viz = {pn_vis.Variants.FREQUENCY.value.Parameters.FORMAT: "svg"}
    gviz = pn_vis.apply(net,
                        initial_marking,
                        final_marking,
                        log=log,
                        variant=variant,
                        parameters=parameters_viz)
    pn_vis.view(gviz)
Beispiel #4
0
def model_metrics(model_log_path, metric_log_path, gexp_name):
    start_time = time()
    model_log_csv = pd.read_csv(model_log_path, ',')
    metric_log_csv = pd.read_csv(metric_log_path, ',')
    parameters = {log_converter.Variants.TO_EVENT_LOG.value.Parameters.CASE_ID_KEY: 'number'}
    model_log = log_converter.apply(model_log_csv, parameters=parameters, variant=log_converter.Variants.TO_EVENT_LOG)
    metric_log = log_converter.apply(metric_log_csv, parameters=parameters, variant=log_converter.Variants.TO_EVENT_LOG)
    parameters = {inductive_miner.Variants.DFG_BASED.value.Parameters.CASE_ID_KEY: 'number',
                  inductive_miner.Variants.DFG_BASED.value.Parameters.ACTIVITY_KEY: 'incident_state',
                  inductive_miner.Variants.DFG_BASED.value.Parameters.TIMESTAMP_KEY: 'sys_updated_at',
                  alignments.Variants.VERSION_STATE_EQUATION_A_STAR.value.Parameters.ACTIVITY_KEY: 'incident_state'}
    petrinet, initial_marking, final_marking = inductive_miner.apply(model_log, parameters=parameters)
    gviz = pn_visualizer.apply(petrinet, initial_marking, final_marking)
    #gviz.render('petrinets\\'+gexp_name+'\\petri_' + model_base + '.png')
    gviz.render('test_time\\test.png')
    pn_visualizer.view(gviz)
    alignments_res = alignments.apply_log(metric_log, petrinet, initial_marking, final_marking, parameters=parameters)
    fitness = replay_fitness.evaluate(alignments_res, variant=replay_fitness.Variants.ALIGNMENT_BASED,
                                      parameters=parameters)
    precision = calc_precision.apply(metric_log, petrinet, initial_marking, final_marking, parameters=parameters)
    generaliz = calc_generaliz.apply(metric_log, petrinet, initial_marking, final_marking, parameters=parameters)
    #generaliz = 0
    simplic = calc_simplic.apply(petrinet)
    f_score = 2 * ((fitness['averageFitness'] * precision) / (fitness['averageFitness'] + precision))
    end_time = time()
    m, s = divmod(end_time - start_time, 60)
    h, m = divmod(m, 60)
    print('Fin %02d:%02d:%02d' % (h, m, s))
    print(' F:', '%.10f' % fitness['averageFitness'], ' P:', '%.10f' % precision,
          ' FS:', '%.10f' % f_score, ' G:', '%.10f' % generaliz, ' S:', '%.10f' % simplic, ' T:',
          '%02d:%02d:%02d' % (h, m, s))
    #metrics = pd.Series([model_base, metric_base, '%.10f' % fitness['averageFitness'],
    #                     '%.10f' % precision, '%.10f' % f_score, '%.10f' % generaliz, '%.10f' % simplic,
    #                     '%02d:%02d:%02d' % (h, m, s)])
    return model_base
Beispiel #5
0
def apply(net, im, fm, parameters=None):
    """
    Transforms a WF-net to a process tree

    Parameters
    -------------
    net
        Petri net
    im
        Initial marking
    fm
        Final marking

    Returns
    -------------
    tree
        Process tree
    """
    if parameters is None:
        parameters = {}

    debug = exec_utils.get_param_value(Parameters.DEBUG, parameters, False)
    fold = exec_utils.get_param_value(Parameters.FOLD, parameters, True)

    grouped_net = group_blocks_in_net(net, parameters=parameters)

    if len(grouped_net.transitions) == 1:
        pt_str = list(grouped_net.transitions)[0].label
        pt = pt_util.parse(pt_str)
        return pt_util.fold(pt) if fold else pt
    else:
        if debug:
            from pm4py.visualization.petrinet import visualizer as pn_viz
            pn_viz.view(pn_viz.apply(grouped_net, parameters={"format": "svg"}))
        raise ValueError('Parsing of WF-net Failed')
Beispiel #6
0
def execute_script():
    log = xes_importer.apply(os.path.join("..", "tests", "compressed_input_data", "09_a32f0n00.xes.gz"))
    heu_net = heuristics_miner.apply_heu(log, parameters={
        heuristics_miner.Variants.CLASSIC.value.Parameters.DEPENDENCY_THRESH: 0.99})
    gviz = hn_vis.apply(heu_net, parameters={hn_vis.Variants.PYDOTPLUS.value.Parameters.FORMAT: "svg"})
    hn_vis.view(gviz)
    net, im, fm = heuristics_miner.apply(log, parameters={
        heuristics_miner.Variants.CLASSIC.value.Parameters.DEPENDENCY_THRESH: 0.99})
    gviz2 = petri_vis.apply(net, im, fm, parameters={petri_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "svg"})
    petri_vis.view(gviz2)
Beispiel #7
0
def petrinet_visualizer(net,
                        initial_marking,
                        final_marking,
                        parameters=
                            {pn_visualizer.Variants.WO_DECORATION.\
                                value.Parameters.FORMAT:"png"}):
    gviz = pn_visualizer.apply(net,
                               initial_marking,
                               final_marking,
                               parameters=parameters)
    pn_visualizer.view(gviz)
Beispiel #8
0
def visualization(log, C, petrinet=True, heu_net=False):
    if petrinet:
        # net, im, fm = inductive_miner.apply(variants_filter.apply(log, C))
        net, im, fm = heuristics_miner.apply(variants_filter.apply(log, C))
        gviz = pn_visualizer.apply(net, im, fm)
        pn_visualizer.view(gviz)

    if heu_net:
        heu_net = inductive_miner.apply_heu(variants_filter.apply(log, C))
        gviz = hn_vis_factory.apply(heu_net)
        hn_vis_factory.view(gviz)
def execute_script():
    log_path = os.path.join("..", "tests", "input_data",
                            "interval_event_log.csv")
    dataframe = pm4py.read_csv(log_path)
    log_path = os.path.join("..", "tests", "input_data", "reviewing.xes")
    log = pm4py.read_xes(log_path)
    dataframe = pm4py.convert_to_dataframe(log)
    parameters = {}
    #parameters[constants.PARAMETER_CONSTANT_START_TIMESTAMP_KEY] = "start_timestamp"
    parameters[constants.PARAMETER_CONSTANT_TIMESTAMP_KEY] = "time:timestamp"
    parameters[constants.PARAMETER_CONSTANT_ACTIVITY_KEY] = "concept:name"
    parameters[constants.PARAMETER_CONSTANT_CASEID_KEY] = "case:concept:name"
    parameters["strict"] = True
    parameters["format"] = "svg"
    start_activities = sa_get.get_start_activities(dataframe,
                                                   parameters=parameters)
    end_activities = ea_get.get_end_activities(dataframe,
                                               parameters=parameters)
    att_count = att_get.get_attribute_values(dataframe,
                                             "concept:name",
                                             parameters=parameters)
    parameters["start_activities"] = start_activities
    parameters["end_activities"] = end_activities
    soj_time = soj_time_get.apply(dataframe, parameters=parameters)
    print("soj_time")
    print(soj_time)
    conc_act = conc_act_get.apply(dataframe, parameters=parameters)
    print("conc_act")
    print(conc_act)
    efg = efg_get.apply(dataframe, parameters=parameters)
    print("efg")
    print(efg)
    dfg_freq, dfg_perf = df_statistics.get_dfg_graph(
        dataframe, measure="both", start_timestamp_key="start_timestamp")
    dfg_gv_freq = dfg_vis_fact.apply(dfg_freq,
                                     activities_count=att_count,
                                     variant=dfg_vis_fact.Variants.FREQUENCY,
                                     soj_time=soj_time,
                                     parameters=parameters)
    dfg_vis_fact.view(dfg_gv_freq)
    dfg_gv_perf = dfg_vis_fact.apply(dfg_perf,
                                     activities_count=att_count,
                                     variant=dfg_vis_fact.Variants.PERFORMANCE,
                                     soj_time=soj_time,
                                     parameters=parameters)
    dfg_vis_fact.view(dfg_gv_perf)
    net, im, fm = dfg_conv.apply(dfg_freq)
    gviz = pn_vis.apply(net, im, fm, parameters=parameters)
    pn_vis.view(gviz)
def execute_script():
    df = pm4py.read_csv("../tests/input_data/interval_event_log.csv")
    log = pm4py.read_xes("../tests/input_data/interval_event_log.xes")
    heu_net = plusplus.apply_heu(log, parameters={"heu_net_decoration": "performance"})
    heu_net_2 = plusplus.apply_heu_pandas(df, parameters={"heu_net_decoration": "performance"})
    gviz = visualizer.apply(heu_net, parameters={"format": "svg"})
    visualizer.view(gviz)
    gviz2 = visualizer.apply(heu_net_2, parameters={"format": "svg"})
    visualizer.view(gviz2)
    net1, im1, fm1 = plusplus.apply(log)
    net2, im2, fm2 = plusplus.apply(log)
    gviz3 = pn_visualizer.apply(net1, im1, fm1, parameters={"format": "svg"})
    pn_visualizer.view(gviz3)
    gviz4 = pn_visualizer.apply(net2, im2, fm2, parameters={"format": "svg"})
    pn_visualizer.view(gviz4)
Beispiel #11
0
def execute_script():
    log_path = os.path.join("..", "tests", "input_data", "running-example.xes")
    log = xes_import.apply(log_path)

    net, i_m, f_m = alpha_miner.apply(log)

    gviz = pn_vis.apply(
        net,
        i_m,
        f_m,
        parameters={
            pn_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "svg",
            pn_vis.Variants.WO_DECORATION.value.Parameters.DEBUG: False
        })
    pn_vis.view(gviz)
def execute_script():
    # import csv & create log
    dataframe = csv_import_adapter.import_dataframe_from_path(
        datasourceMockdata(), sep=";")
    dataframe = dataframe.rename(columns={
        'coID': 'case:concept:name',
        'Activity': 'concept:name'
    })
    log = conversion_factory.apply(dataframe)

    # option 1: Directly-Follows Graph, represent frequency or performance
    parameters = {constants.PARAMETER_CONSTANT_ACTIVITY_KEY: "concept:name"}
    variant = 'frequency'
    dfg = dfg_factory.apply(log, variant=variant, parameters=parameters)
    gviz1 = dfg_vis_factory.apply(dfg,
                                  log=log,
                                  variant=variant,
                                  parameters=parameters)
    dfg_vis_factory.view(gviz1)

    # option 2: Heuristics Miner, acts on the Directly-Follows Graph, find common structures, output: Heuristic Net (.svg)
    heu_net = heuristics_miner.apply_heu(
        log,
        parameters={
            heuristics_miner.Variants.CLASSIC.value.Parameters.DEPENDENCY_THRESH:
            0.00
        })
    gviz2 = hn_vis.apply(
        heu_net,
        parameters={hn_vis.Variants.PYDOTPLUS.value.Parameters.FORMAT: "svg"})
    hn_vis.view(gviz2)

    # option 3: Petri Net based on Heuristic Miner (.png)
    net, im, fm = heuristics_miner.apply(
        log,
        parameters={
            heuristics_miner.Variants.CLASSIC.value.Parameters.DEPENDENCY_THRESH:
            0.00
        })
    gviz3 = petri_vis.apply(
        net,
        im,
        fm,
        parameters={
            petri_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "png"
        })
    petri_vis.view(gviz3)
Beispiel #13
0
def execute_script():
    log_path = os.path.join("..", "tests", "input_data", "running-example.xes")

    log = xes_importer.apply(log_path)
    net, marking, final_marking = inductive.apply(
        log, variant=inductive.Variants.IM)
    for place in marking:
        print("initial marking " + place.name)
    for place in final_marking:
        print("final marking " + place.name)
    gviz = pn_vis.apply(
        net,
        marking,
        final_marking,
        parameters={
            pn_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "svg",
            pn_vis.Variants.WO_DECORATION.value.Parameters.DEBUG: True
        })
    pn_vis.view(gviz)

    if True:
        fit_traces = []

        for i in range(0, len(log)):
            try:
                print("\n", i, [x["concept:name"] for x in log[i]])
                cf_result = pm4py.algo.conformance.alignments.variants.state_equation_a_star.apply(
                    log[i], net, marking, final_marking)['alignment']
                if cf_result is None:
                    print("alignment is none!")
                else:
                    is_fit = True
                    for couple in cf_result:
                        print(couple)
                        if not (couple[0] == couple[1]
                                or couple[0] == ">>" and couple[1] is None):
                            is_fit = False
                    print("isFit = " + str(is_fit))

                    if is_fit:
                        fit_traces.append(log[i])
            except TypeError:
                print("EXCEPTION ", i)
                traceback.print_exc()
        print(fit_traces)
        print(len(fit_traces))
def execute_script():
    log = xes_importer.apply(
        os.path.join("..", "tests", "input_data", "receipt.xes"))
    log = sorting.sort_timestamp(log)
    net, im, fm = inductive_miner.apply(log)
    log1 = EventLog(log[:500])
    log2 = EventLog(log[len(log) - 500:])
    statistics = element_usage_comparison.compare_element_usage_two_logs(
        net, im, fm, log1, log2)
    gviz = pn_vis.apply(
        net,
        im,
        fm,
        variant=pn_vis.Variants.FREQUENCY,
        aggregated_statistics=statistics,
        parameters={pn_vis.Variants.FREQUENCY.value.Parameters.FORMAT: "svg"})
    pn_vis.view(gviz)
Beispiel #15
0
def execute_script():
    log_path = os.path.join("..", "tests", "input_data", "running-example.xes")
    log = xes_importer.apply(log_path)
    net, marking, final_marking = alpha_miner.apply(log)
    for place in marking:
        print("initial marking " + place.name)
    for place in final_marking:
        print("final marking " + place.name)
    gviz = pn_vis.apply(net, marking, final_marking,
                        parameters={pn_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "svg"})
    pn_vis.view(gviz)
    print("started token replay")
    aligned_traces = token_replay.apply(log, net, marking, final_marking)
    fit_traces = [x for x in aligned_traces if x['trace_is_fit']]
    perc_fitness = 0.00
    if len(aligned_traces) > 0:
        perc_fitness = len(fit_traces) / len(aligned_traces)
    print("perc_fitness=", perc_fitness)
Beispiel #16
0
def execute_script():
    log_path = os.path.join("..", "tests", "input_data", "running-example.xes")
    log = xes_importer.apply(log_path)
    dfg = dfg_algorithm.apply(log)
    dfg_gv = dfg_vis_fact.apply(
        dfg,
        log,
        parameters={
            dfg_vis_fact.Variants.FREQUENCY.value.Parameters.FORMAT: "svg"
        })
    dfg_vis_fact.view(dfg_gv)
    net, im, fm = dfg_conv.apply(dfg)
    gviz = pn_vis.apply(
        net,
        im,
        fm,
        parameters={
            pn_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "svg"
        })
    pn_vis.view(gviz)
def execute_script():
    dataframe2 = csv_import_adapter.import_dataframe_from_path(
        datasourceMockdata(), sep=",")
    dataframe2 = dataframe2.rename(
        columns={
            'timestamp': 'time:timestamp',
            'source': 'case:concept:name',
            'message': 'concept:name'
        })
    log2 = conversion_factory.apply(dataframe2)

    # option 1: Heuristics Miner, acts on the Directly-Follows Graph, find common structures, output: Heuristic Net (.svg)
    heu_net = heuristics_miner.apply_heu(
        log2,
        parameters={
            heuristics_miner.Variants.CLASSIC.value.Parameters.DEPENDENCY_THRESH:
            0.99
        })
    gviz2 = hn_vis.apply(
        heu_net,
        parameters={hn_vis.Variants.PYDOTPLUS.value.Parameters.FORMAT: "svg"})
    hn_vis.view(gviz2)

    # option 2: Petri Net based on Heuristic Miner (.png)
    net, im, fm = heuristics_miner.apply(
        log2,
        parameters={
            heuristics_miner.Variants.CLASSIC.value.Parameters.DEPENDENCY_THRESH:
            0.99
        })
    gviz3 = petri_vis.apply(
        net,
        im,
        fm,
        parameters={
            petri_vis.Variants.WO_DECORATION.value.Parameters.FORMAT: "png"
        })
    petri_vis.view(gviz3)
actrescount = getactivityresourcecount(log, list0, "concept:name", "org:group")
#print(actrescount,"actrescount")
roles = roles_discovery.apply(
    log, variant=None, parameters={rpd.Parameters.RESOURCE_KEY: "org:group"})
#rescluster = getresoucecluster(log,roles,"concept:name","org:resource")
print(roles, "roles")
resourcesimulation = simulateresource(log, actrescount, roles, "concept:name",
                                      "org:group")
print(resourcesimulation, "resourcesimulation")
#join activity but nothing different to the last segment.
#ja_values = sna.apply(log, variant=sna.Variants.JOINTACTIVITIES_LOG)
#gviz_ja_py = sna_visualizer.apply(ja_values, variant=sna_visualizer.Variants.PYVIS)
#sna_visualizer.view(gviz_ja_py, variant=sna_visualizer.Variants.PYVIS)

#print(hw_values,'~~', roles,'~~~',ja_values,"hw_values,roles,ja_values")
'''
net, im, fm = inductive_miner.apply(log)
gviz = visualizer.apply(net, im, fm, parameters={visualizer.Variants.WO_DECORATION.value.Parameters.DEBUG: True})
visualizer.view(gviz)
clf, feature_names, classes = decision_mining.get_decision_tree(log, net, im, fm, decision_point="p_6")
gviz1 = tree_visualizer.apply(clf, feature_names, classes)
visualizer.view(gviz1)
X, y, class_names = decision_mining.apply(log, net, im, fm, decision_point="p_6")
print(y,class_names)
pt_visualizer.save(gviz,"/Users/jiao.shuai.1998.12.01outlook.com/code/07.01.2021/DES1/testfile/decisionnet.png")
pt_visualizer.save(gviz1,"/Users/jiao.shuai.1998.12.01outlook.com/code/07.01.2021/DES1/testfile/decisiontree.png")
'''
'''
np.set_printoptions(threshold=1000)
np.set_printoptions(linewidth=1000)
Beispiel #19
0
import os

from pm4py.objects.log.importer.xes import importer as xes_importer
from pm4py.visualization.petrinet import visualizer
from pm4py.algo.discovery.alpha import algorithm as alpha_miner

os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

# Algoritimo Alpha

log = xes_importer.apply('sample_data/running-example.xes')
net, initial_marking, final_marking = alpha_miner.apply(log)

# Visualização

alpha_miner.apply(log)
gviz = visualizer.apply(net, initial_marking, final_marking)
visualizer.view(gviz)


def execute_script():
    net = PetriNet("")
    start = PetriNet.Place("start")
    end = PetriNet.Place("end")
    c1 = PetriNet.Place("c1")
    c2 = PetriNet.Place("c2")
    c3 = PetriNet.Place("c3")
    c4 = PetriNet.Place("c4")
    c5 = PetriNet.Place("c5")
    c6 = PetriNet.Place("c6")
    c7 = PetriNet.Place("c7")
    c8 = PetriNet.Place("c8")
    c9 = PetriNet.Place("c9")
    net.places.add(c1)
    net.places.add(c2)
    net.places.add(c3)
    net.places.add(c4)
    net.places.add(c5)
    net.places.add(c6)
    net.places.add(c7)
    net.places.add(c8)
    net.places.add(c9)
    net.places.add(start)
    net.places.add(end)
    t1 = PetriNet.Transition("t1", "a")
    t2 = PetriNet.Transition("t2", None)
    t3 = PetriNet.Transition("t3", "b")
    t4 = PetriNet.Transition("t4", "c")
    t5 = PetriNet.Transition("t5", "d")
    t6 = PetriNet.Transition("t6", "e")
    t7 = PetriNet.Transition("t7", None)
    t8 = PetriNet.Transition("t8", "f")
    t9 = PetriNet.Transition("t9", "g")
    t10 = PetriNet.Transition("t10", "h")
    t11 = PetriNet.Transition("t11", None)
    net.transitions.add(t1)
    net.transitions.add(t2)
    net.transitions.add(t3)
    net.transitions.add(t4)
    net.transitions.add(t5)
    net.transitions.add(t6)
    net.transitions.add(t7)
    net.transitions.add(t8)
    net.transitions.add(t9)
    net.transitions.add(t10)
    net.transitions.add(t11)
    add_arc_from_to(start, t1, net)
    add_arc_from_to(t1, c1, net)
    add_arc_from_to(t1, c2, net)
    add_arc_from_to(c1, t2, net)
    add_arc_from_to(c1, t3, net)
    add_arc_from_to(c2, t4, net)
    add_arc_from_to(t2, c3, net)
    add_arc_from_to(t3, c3, net)
    add_arc_from_to(t4, c4, net)
    add_arc_from_to(c3, t5, net)
    add_arc_from_to(c4, t5, net)
    add_arc_from_to(t5, c5, net)
    add_arc_from_to(c5, t6, net)
    add_arc_from_to(t6, c1, net)
    add_arc_from_to(t6, c2, net)
    add_arc_from_to(c5, t7, net)
    add_arc_from_to(t7, c7, net)
    add_arc_from_to(t7, c6, net)
    add_arc_from_to(c7, t8, net)
    add_arc_from_to(c6, t9, net)
    add_arc_from_to(t8, c8, net)
    add_arc_from_to(t9, c9, net)
    add_arc_from_to(c8, t11, net)
    add_arc_from_to(c9, t11, net)
    add_arc_from_to(t11, end, net)
    add_arc_from_to(c5, t10, net)
    add_arc_from_to(t10, end, net)
    im = Marking()
    im[start] = 1
    fm = Marking()
    fm[end] = 1
    gvizs = []
    gvizs.append(
        visualizer.apply(net,
                         im,
                         final_marking=fm,
                         parameters={"format": "svg"}))
    visualizer.view(gvizs[len(gvizs) - 1])
    decomposed_net = decomposition.decompose(net, im, fm)
    for snet, sim, sfm in decomposed_net:
        gvizs.append(
            visualizer.apply(snet,
                             sim,
                             final_marking=sfm,
                             parameters={"format": "svg"}))
        visualizer.view(gvizs[len(gvizs) - 1])
import os
from pm4py.objects.log.importer.xes import importer as xes_importer

logfile = "D://process mining//HMM//pnml//reference//reference7.xes"
log = xes_importer.apply(os.path.join(logfile))

from pm4py.algo.discovery.alpha import algorithm as alpha_miner
net, initial_marking, final_marking = alpha_miner.apply(log)

from pm4py.visualization.petrinet import visualizer as pn_visualizer
gviz = pn_visualizer.apply(net, initial_marking, final_marking)
pn_visualizer.view(gviz)

from pm4py.objects.petri.exporter import exporter as pnml_exporter
filename = "Alpha Miner.pnml"
pnml_exporter.apply(net, initial_marking, filename)
Beispiel #22
0
def sample():
    log = importer.apply('../tests/input_data/running-example.xes')
    net, initial_marking, final_marking = alpha_miner.apply(log)
    gviz = visualizer.apply(net, initial_marking, final_marking)
    visualizer.view(gviz)