1 Alpha算法的背景介绍
在过去的二十年中, Staffware、IBM MQSeries、COSA等工作流管理系统为结构化业务流程提供通用建模和实施功能。通过创建图形化的流程定义,即单独描述典型案例(工作流实例)生命周期的模型,可以配置这些系统以支持业务流程。除了纯工作流管理系统外,许多其他软件系统都采用了工作流技术。例如,考虑SAP、CRM软件等ERP(企业资源计划)系统,在应用工作流技术时会遇到许多问题。其中一个问题是,这些系统需要工作流设计,也就是说,必须构建一个详细的模型,准确地描述工作流程。为工作流建模绝非易事:它需要对工作流语言有深入的了解。因此,需要算法来对工作流进行建模,来构造一种可理解的流程模型语言,Alpha算法应运而生。
Alpha算法是最早应用于流程挖掘的流程发现算法,在2000年左右由“流程挖掘之父”Wil van der Aalst提出,后续并被很多研究学者所完善,提出了一系列的扩展Alpha算法,比如Alpha+,Alpha++,Alpha#等。接下来,我们将详细介绍这一经典算法。
2 算法基本原理
(1).定义次序关系
首先定义了四种基于日志的次序关系:紧邻,因果,并行,无关,详细介绍如下(其中x,y指的是日志中的活动):
比如,在示例日志L={<A,B,C,D>,<A,C,B,D>,<E,F>}中,其中的紧邻关系(也叫做直接跟随关系)为A>B, B>C, C>D,A>C, C>B, B>D, E>F。
(2).生成足迹矩阵
示例日志L对应的足迹矩阵如下表 所示。
(3).对应关系建模
根据上述足迹矩阵,按照下述关系建模Petri网。
(4).发现流程模型
根据上述对应关系,构造示例日志L对应的Petri网模型如下图所示。
3 Alpha算法的局限性
Alpha算法能够从日志中抽取基本次序关系从而根据活动间的关系构造过程模型,但是Alpha算法存在很多缺点,Alpha算法假设日志的直接跟随次序关系是完备的,这在实际过程中却很少见。Alpha算法存在如下缺点:
(1).不能处理冗余库所
日志L1=[<a, c, e, g>2,<a, e, c, g>3,<b, d,f, g>2,<b, f, d, g>4]在Alpha 算法下生成的Petri网如下图,p1和p2称为隐含库所(implicit places),移除它们并不会影响该Petri网的行为(行迹等价性)。这种问题不大,只是增加了发现Petri 网的复杂性,不过在模型很大时是很严重的。
(2).无法处理短循环
短循环分为活动长度为1和活动长度为2的短循环。例如,日志L2=[<a, c>2,<a, b, c >3,<a, b, b, c>2,<a, b, b, b, b, c>1]发现的错误模型和正确模型如下:
日志L3=[<a, b, d>3,<a, b, c, b, d >2,<a, b, c, b, c, b, d>1]发现的错误模型和正确模型如下:
发生错误的主要原因是Alpha 算法会错误地将短循环中的活动判断为并发而不是循环,并且算法没有考虑并发关系。Alpha+算法解决了这个问题。
(3).非自由选择流程结构导致的非局部依赖
日志L4=[<a, c, d>45,<b, c, e >42]发现模型没有下图的p1和p2库所,Alpha 算法无法得到这种非局部依赖,这导致发现的模型会运行不在日志中的更多行为。
(4).没有考虑关系频次/频率
Alpha算法仅考虑了日志间的紧邻关系,并未将日志间的紧邻关系频数或者频率作为参考,这样会导致发现的流程模型的不准确性。
4.总结
使用 Alpha算法的前提是保证日志中的活动直接跟随关系是完备的,用于挖掘不带短循环的SWF-net,SWF-net不含隐式库所,且不能包含如下两种子结构(即XOR-join和AND-join不能同时存在):
针对Alpha算法的不足,一系列Alpha算法的扩展版本相应而生,我们将在下一节介绍Alpha算法的扩展算法。