EPCs

EPCs是事件驱动链(Event-driven Process Chains),跟BPMN、YAWL一样有很多语义相同的符号,因为用得少不多过介绍了。

有一个“恶性循环(vicious circle)”的概念介绍一下,这是由于对EPCs语义的定义不明确导致的,如下图所示,事件e1和e2都持有一个托肯(token),这导致下一步会发生什么是不明确的,因为两个OR-joins都相互依赖于对方(OR-join要求其输入弧上可以到达的托肯都达到后才能执行下一步)。假如阻塞e1的OR-join,这样语义定义下,e2的OR-join也必须阻塞,这就导致死锁;而假如e1的OR-join不阻塞,同样e2的OR-join也不阻塞(同一语义定义),于是f1和f2都执行,并且在经过两个AND-split又流向了两个OR-join,这就要求OR-joins应该要阻塞的(因为会出现死循环)。这就是一个paradox,因为不管定义哪种语义都是错的。

恶性循环悖论表明,更高级别的构造可能会引入各种微妙的语义问题。尽管存在这些问题和不同的符号概念,但不同语言的核心概念却非常相似。

图1 恶性循环

因果网(Casual Nets)

前面介绍的很多建模语言包含的元素符号如Petri网的库所、YAWL的条件、EPCs的连接器和事件、BPMN的网关等,它们用来连接活动,但是在事件日志却是没有留下任何“标记”(或者说信息)的,即它们需要通过分析(流程的)行为来推出。由于这个问题,有些挖掘算法挖掘的模型就只包括活动,而不包括活动的连接元素,因果网就是这类建模语言。

因果网就是一种为流程挖掘量身定制的一种模型表示。一个因果网是一个图,图中的结点表示活动(Activities),弧表示因果依赖关系(Casual dependencies),每个活动都包含一组可能的输入绑定(input bindings)和一组可能的输出绑定(output bindings)。

如下图所示,活动a的输入绑定是一个空集,因为它是作为开始活动,同理活动z的输出绑定是空集。a有两个输出绑定,即{b,d}和{c,d},这意味着a执行后,其后要么跟着b和d,要么跟着c和d。活动e有两个可能的输入绑定,即{b,d}和{c,d},以及三个可能的输出绑定{g}、{h}和{f},因此活动e要么出现在b和d(都发生)之后,要么出现在c和d(都发生)之后。

实际上,下图和Petri网介绍那篇文章中使用的流程图是行迹等价(trace equivalent,后面会专门写一篇介绍)的,即它们允许出现的行迹的集合是一致的,但是因果网中不需要库所,其路由逻辑仅有输入和输出绑定表示。

图2 因果网

定义1(因果网,Casual net)一个因果网(C-net)是一个五元组,其中:

  • 是有限的活动集合;
  • 是开始活动(start activity);
  • 是结束活动(end activity);
  • 是依赖关系集(dependency relation);
  • 是活动集A的幂集,即活动集合的集合);
  • 定义了每个活动的可能输入绑定(input bindings)的集合;
  • 定义了每个活动的可能输出绑定(output bindings)的集合,

使得

  • ;
  • ;
  • ;以及
  • 所有图(A,D)中的活动都在aiao的路径上。

如图2,活动集A = {a,b,c,d,e,f,g,h,z},a=ai是唯一的开始活动,z=ao是唯一的结束活动;依赖关系集D = {(a,b),(a,c),(a,d),(b,e),...,(g,z),(h,z)};函数IO描述了可能的输入和输出绑定的集合,I(a)=∅,O(a)={{b,d},{c,d}},I(b)={{a},{f}},O(b)={{e}},...,I(z)={{g},{h}},O(z)=∅。注意,只有开始活动ai的输入绑定集和结束活动ao的输出绑定集可以是空集。下面给出绑定的形式定义:

定义2(绑定,binding)是一个C-net,B=是活动绑定的集合。绑定序列σ 是一个活动绑定的序列,即

下面开始引出有效绑定序列的概念,这和工作流网的合理性(soundness)很相似,要求流程模型是能正常结束的。

定义3(状态,state) 令是一个C-net,是C的状态空间,s∈S是一个状态(state),即一个未定约束(pending obligations)[有点像托肯]的集合,函数归纳定义为:对任意绑定序列,是执行绑定序列σ后产生的状态。

一个有效序列(valid sequence)是一个绑定序列满足a)以开始活动ai开始,b)以结束活动ao结束,c)只能消耗未定约束,且d)结束后网中没有遗留未定约束。其实也就是说,有效序列是一个从开始到结束的序列,并且序列中发生的活动是由未定约束决定的,一个有效序列的发生不能留有未定约束在网中(就跟WF-net中的库所一样,托肯不能在网中有遗留)。比如下面图中,一个有效序列σ=<(a,,{b,d}),(d,{a},{e}),(b,{a},{e}),(e,{b,d},)>,其状态变化见图4:

图3 因果网C2

图4 状态转移

下面给出有效性的形式化定义:

定义4(有效,valid)是一个C-net,绑定序列σ =是C的有效序列,当且仅当:

  • (首是开始活动,尾是结束活动,中间是除了开始活动和结束活动的其他活动)
  • (结束时不留未定约束在网中,即结束时状态应为空)
  • 对于σ的任何前缀。(这里原书应该有错,σ'应该是从a1ak-1,这个充要条件的意思是由σ'对应的状态集推出的下一个活动ak,其输入绑定与ak的状态应当存在于σ'对应的状态集中,即ak的发生需要对应的状态满足(就比如Petri网中变迁的触发需要其前集都有托肯,即处于使能状态),到这个条件我们没有看到活动的发生需要消耗对应的输入绑定的未定约束,即对应的状态)。

我们记V(C)为网C的所有有效序列的集合。

有了有效序列的概念后,我们要求一个C-net只能允许有效序列,不能存在非有效序列(invalid sequence),这就引出因果网的合理性(soundness)的概念了,和工作流网是一样的道理,我们要求我们的流程模型是合理的,即每一个流程案例都要有始有终,并且流程案例结束后不能留信息在流程中(不能影响其他流程案例的执行),同时流程中给出的每个结构都是可以发生,并且不能有诸如死锁、活锁结构的存在,这保证每个活动都可以被发生,每个流程案例都可以结束。下面给出因果网的合理性的形式化定义:

定义5(因果网的合理性,soundness of C-nets) 一个C-net是合理的,如果a)对于任何活动及其输入绑定,至少存在一个有效序列和A中的一个输出绑定,使得,且b)对任意活动及其输出绑定,至少存在一个有效序列和A中的一个输入绑定,使得(即要求网中的每个结构都是可以发生的,都有存在对应的有效序列使它们可以发生,并且只能发生在有效序列中)。

因果网和工作流网的比较

有的因果网,会不存在合理的工作流网,可以只产生因果网的有效序列而不产生非有效序列,如下面一个因果网例子

因果网特别适合于流程挖掘,因为其固有的声明表示性(有效性上面是要求网的整个序列,而不是关注局部的触发规则)和表达性(有的因果网没有对应的合理的工作流网,所以表达性更强,即别的流程模型无法表达的内容),同时不需要额外的元素来复杂化流程(如库所、条件之类的)。

过程挖掘(Process Mining)3——控制流表示式的流程建模语言(6):因果网(Casual Net)相关推荐

  1. [过程挖掘 Process Mining] Demo scenario 演示场景(一)

    [过程挖掘 Process Mining] Demo scenario 演示场景 文章目录 [过程挖掘 Process Mining] Demo scenario 演示场景 我们首先来看一个采购过程的 ...

  2. 过程挖掘(Process Mining)5——事件日志(Event Logs)(1):数据源与事件日志

    为何有过程挖掘5没有4?过程挖掘4讲数据挖掘的内容,实际上我们在流程分析时,数据挖掘也是重要的工具,是必须掌握的:其次,很多技术用到的思想是相通的,流程发现.一致性检验等技术,都会用到数据挖掘中一些基 ...

  3. 【过程挖掘算法4】Alpha Miner及其系列算法

    Alpha算法是最早应用于过程挖掘的过程发现算法,在2002年被过程挖掘之父Wil van der Aalst提出,后续并被很多研究学者所完善,提出了一系列的扩展alpha算法,比如alpha+.Ts ...

  4. 因果推理之霍克斯过程 Hawkes process

    因果推理之霍克斯过程 Hawkes process | 梦家博客背景 在统计学和概率论中,点过程 (Point process) 或点场 (Point field) 是随机位于数学空间(如实线或欧氏空 ...

  5. 论文:Object-Centric process Mining Dealing With Divergence and Convergence in Event Data翻译

      由于论文读完了之后好多概念还是不懂,并且在看论文的试验,对于好多地方仍然是一头雾水,于是下定决心去读论文的参考文献,这刚刚翻译完一篇文章,还没来得及细读. 论文:Object-Centric pr ...

  6. 论文:An Event Data Extraction Approach from SAP ERP for Process Mining翻译

      这几天由于上课比较多,加上稍微多打了一阵子游戏晚上,导致进度比较慢,现在刚读完论文打算去跑一下代码复现.总感觉这一周干的事情不多,每天上午浑浑噩噩的. 下载链接:An Event Data Ext ...

  7. Flutter Android 打包保姆式全流程 2023 版

    大家好,我是 17. Flutter 打包的文章一共有两篇 Flutter Android 打包保姆式全流程 2023 版 Flutter IOS 新建打包发布全流程 2023 版 本篇介绍 Andr ...

  8. AI:2020年6月22日北京智源大会演讲分享之09:40-10:10Mari 教授《基于显式上下文表征的语言处理》、10:10-10:40周明教授《多语言及多模态任务中的预训练模型》

    AI:2020年6月22日北京智源大会演讲分享之09:40-10:10Mari 教授<基于显式上下文表征的语言处理>.10:10-10:40周明教授<多语言及多模态任务中的预训练模型 ...

  9. ETDM:基于显式时间差分建模的视频超分辨率(CVPR 2022)

    关注公众号,发现CV技术之美 作者单位:快手.大连理工.港理工.北大.鹏城实验室 论文:https://arxiv.org/pdf/2204.07114.pdf 笔者言: 之前的循环VSR方法大多将相 ...

最新文章

  1. 小型职工工作量c语言,计算机c语言职工工作量统计系统.doc
  2. Oracle执行计划相关(待补充)
  3. 【Netty】NIO 缓冲区 ( Buffer ) 组件
  4. 关于单CPU,多CPU上的原子操作
  5. 谷歌联合创始人:AI发展速度让我吃惊,但未来难料
  6. PowerDesigner的数据类型
  7. 微博自媒体,一个新的生态
  8. 涌之势,智造未来, 戴尔科技集团携新一代信息技术解决方案赋能“新基建”
  9. 企业邮箱及邮件服务器架设
  10. 如何更改 Windows XP 中的 Windows 登录屏幕保护程序
  11. Python爬取某境外网站漫画,心血来潮,爬之
  12. 阿里拍卖全链路导购策略首次揭秘
  13. python实现pearson相关性检验
  14. 补肾常见中成药辩驳------右归丸、左归丸与桂附地黄丸、六味地黄丸
  15. XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】
  16. 【鼠标事件 MouseEvent】clientX clientY offsetX offsetX pageX screenX screenY
  17. matlab 动态图只能显示等平面吗,matlab平面浓度图
  18. 周易六十四卦——蹇卦
  19. 【如何使用idea合并当前分支的代码到主分支】
  20. Win11安装虚拟机出现电脑蓝屏解决方案

热门文章

  1. 如何申请专利及流程是怎样的?
  2. 从定积分定义到代码,详解矩形法求解定积分
  3. linux普通用户时间乱码,Linux root用户与普通用户时间不一致
  4. java的注解跳过,java – 无法忽略lombok注释 – Sonarqube
  5. Python灰帽子--黑客与逆向工程师的Python编程之道 笔记,过程问题解决
  6. 二进制逆向工程师_怎么样成为一名逆向工程师?
  7. Altium Designer 18 如何导出 3D模型的PDF
  8. 软件观点 - 软件工厂方法
  9. Java实现微信扫码登录并实现认证授权
  10. 数据库表设计3:微信、QQ第三方多账号登陆