PM4PY - Process Trees

摘要:Process Trees

在PM4PY中,我们为process trees(可视化、转换成Petri Net、日志生成)提供支持,导入导出,和生成他们的功能。

导入导出Process Trees(pt)

在PM4PY中,我们提供PTML格式导入导出pt。

from pm4py.objects.process_tree.importer import importer as ptml_importer

tree = ptml_importer.apply("tests/input_data/running-example.ptml")
from pm4py.objects.process_tree.exporter import exporter as ptml_exporter

ptml_exporter.apply(tree, "running-example.ptml")

Generation of process trees 生成流程树

from pm4py.algo.simulation.tree_generator import simulator as tree_gen
parameters = {}
tree = tree_gen.apply(parameters=parameters)

在这里插入图片描述
parameters是个字典,每个键为参数名,并且要写小写才生效。下表进行参数解释。

参数含义
mode最频繁的可见活动数量(默认 20)
min可见活动的最小数量(默认 10)
max可见活动的最大数量(默认 30)
sequence将序列运算符添加到树的概率(默认 0.25)(按顺序执行)
choice将选择运算符添加到树的概率(默认 0.25)(即xor,择其一执行)
parallel将并行运算符添加到树的概率(默认 0.25)(即and,并行)
loop将循环运算符添加到树的概率(默认 0.25)(重复执行)
or将或运算符添加到树的概率(默认 0)
silent将静默活动添加到选择或循环运算符的概率(默认 0.25)
duplicate复制活动标签的概率(默认 0)
lt_dependency将随机依赖项添加到树的概率(默认 0)
infrequent做出选择的概率具有不常见的路径(默认 0.25)
no_models从模型种群中生成的树数(默认 10)
unfold是否展开循环以便在依赖项中包含选项: 0=False, 1=True,如果 lt_dependency <= 0:
这应该始终为 0(假)如果 lt_dependency > 0:这可以是 1 或 0(True 或 False)(默认 10)
max_repeat循环的最大重复次数(默认 10)(仅在unfold为 True 时使用)
PT图中:
"->"即seq:树的当前节点的子节点从左到右执行。
"*"即loop:左子节点总是执行,右子节点会触发左子节点重复执行。
"X"即choice(xor):两个选项只选其一执行。
"+"即parallel(and):两个选项并行。

通过PT生成一个日志log

示例代码中生成100次traces的事件日志,一次trace是 从开始走到结尾的一次记录。

from pm4py.objects.process_tree import semantics
log = semantics.generate_log(tree, no_traces=100)

PT转换成Petri net

示例代码将PT转换成Petri net

from pm4py.objects.conversion.process_tree import converter as pt_converter
net, im, fm = pt_converter.apply(tree)

注:net是Petri net,im是initial_marking, fm是final_marking

可视化PT

from pm4py.visualization.process_tree import visualizer as pt_visualizer
gviz = pt_visualizer.apply(tree, parameters={pt_visualizer.Variants.WO_DECORATION.value.Parameters.FORMAT: "png"})
pt_visualizer.view(gviz)

将Petri net转为PT

from pm4py.objects.conversion.wf_net import converter as wf_net_converter

tree = wf_net_converter.apply(net, im, fm)
print(tree)

*若对本文有疑问(例如:笔记中知识点或表达有误),欢迎指出,共同学习进步。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值