归思超,王佳星,洪 峰,曹 斌
(浙江工业大学 计算机科学与技术学院,浙江 杭州 310023)
业务流程管理技术作为企业主要的经营管理方式已成为主流发展趋势。如何快速、高效地建立业务流程模型以对市场需求的频繁变化做出响应,是现代企业成功与可持续化发展的保障。然而,流程建模是一项非常耗时且复杂的工作,因为此项工作除了要求建模人员熟悉各业务活动的执行过程以外,还要求他们具备专业的领域知识以及如何应对各种异常情况的能力[1]。目前,流程推荐技术基于已构建的流程模型片段,可自动为建模人员推荐建模片段后续可能的流程结构,因此该技术作为流程建模过程的重要辅助手段而备受关注。
然而,现有的大多数流程推荐方法均关注流程模型的图结构[1-5],而研究基于流程行为来进行流程推荐的并不多。流程行为指由任务节点集合构成的执行序列,即这些任务节点在流程模型中可能的执行路径。对于行为相同的两个流程,它们的图结构并不一定相同,即相同的两个流程图结构并不意味着其执行行为一致。因此,现有大多数基于图结构的流程推荐方法的准确性无法得到保证。
为了解决以上问题,本文基于流程行为对当前建模的流程片段进行流程推荐,从而辅助流程建模人员的建模过程。首先将当前正在建模的“参考流程”和流程库中所有流程转化为基于任务的流程结构树(Task-based Process Structure Tree, TPST),从而基于TPST来提取这些流程的独立路径。然后,通过计算“参考流程”的独立路径和流程库中独立路径之间的相似度,选取流程库中与“参考流程”最相似的前k个独立路径,并将这些独立路径中当前建模节点的下一节点作为推荐节点。若流程库中多条独立路径与“参考流程”的独立路径具有相同的相似度,本文通过衡量独立路径的权值,优先推荐权值大的独立路径上的节点。为方便用户利用流程推荐技术进行流程建模,本文基于所提方法实现了一个可视化的原型系统。在实验中,通过本文所提方法与现有方法在准确率和效率方面的评估比较,证明了本文所提方法能够满足实际应用场景的要求。
本文提出的基于行为的自动化流程建模推荐方法,主要用于计算出“参考流程”的下一节点的相关推荐节点集,从而可以快速制定一套完整的流程模型,目前为止对该内容的研究工作尚不多见,主要分为基于图结构的流程推荐方法和基于行为的流程推荐方法两类。
(1)基于图结构的流程推荐方法 Fradi等[6]研究开发了一个框架,通过指定每种方法的特征以及它们之间的差异来研究现有的三维物体相似度计算方法(基本是基于形状的方法),以查找与参考模型类似的对象。Fellmann等[7]研发了过程建模推荐系统,通过分析各个过程,进行流程建模。Dipankar Deb等[8]提出一种基于服务质量(Quality of Service, QoS)的改进业务流程模型重新设计的方法,该方法通过比较定量和定性的QoS值来选择最佳业务流程模型的路径,消除了不满足给定约束的设计,最终提供了一个改进的业务流程[8]。与这些流程建模方式相比,本文采用了独立路径解析与匹配的算法,和图的解析和匹配相比,在流程匹配和算法效率上都有较大优势。
(2)基于行为的流程推荐方法 Matsuda等[9]提出一种点过程建模方法,该方法基于点过程模型框架(一系列事件的统计模型),并以数据驱动的方式构建其模型,通过将在线活动回归模型拟合到实验数据来完成流程建模。Alfedaghi[10]提出一种基于流的方法,用于捕获业务流程建模中指定的流程,主要通过对IBM Blueworks案例的重新建模来研究所提出的方法。Jalali等[11]提出一种混合的业务流程建模方法,它基于声明性规则来处理必要的跨领域关注点和命令性业务流程模型。与这些流程建模方式相比,本文提出的采用独立路径匹配的算法更易执行。
与相关工作相比,本文采用独立路径解析和匹配的算法,除了在流程匹配算法的效率上比图的解析和匹配更高且更易执行之外,同时还构建了一个可视化系统,便于用户构建流程,可以快速制定出一套完整的流程方案。
本章将介绍一些基本概念,包括业务流程、基于任务节点的流程结构树、独立路径等,以更好地理解本文所提方法。
定义1业务流程。为了达到特定的目标,一个业务流程通常用于描述有哪些任务需要被执行,以及以怎么样的顺序来执行。一个业务流程可以用一个四元组P=(T,G,E,W)来进行建模,其中:T,G和E分别表示任务节点集合、网关节点集合以及边集合,W表示边的权值集合。一个流程模型包含4种基本的流程控制流模块:顺序、条件、并行以及循环模块[1],其中条件模块对应Xor-split、Xor-join网关节点,并行模块对应And-split、And-join网关节点,循环模块对应Loop-split、Loop-join网关节点。
以图1中的Process 1为例,Process 1的任务节点集合为{A,B,C,D,E},网关节点集合为{And-split,And-join,Xor-split,Xor-join},边集合为{start→A,A→And-split,And-split→Xor-split,And-split→D,Xor-split→B,Xor-split→C,B→Xor-join,C→Xor-join,D→And-join,Xor-join→And-join,And-join→E,E→end},边权值集合为{start→A:1,A→And-split:2,And-split→Xor-split:1,And-split→D:2,Xor-split→B:2,Xor-split→C:3,B→Xor-join:1,C→Xor-join:2,Xor-join→And-join:1,D→And-join:3,And-join→E:2,E→end:1}。abcdefghijk表示流程模型中的任务节点。Process 1共包含顺序、并行和选择3种不同的控制流模块。
定义2基于任务节点的流程结构树。一个流程模型可以转换为对应的流程结构树(Process Structure Tree,PST),PST中每一个叶子节点对应流程模型中的一个任务节点,每一个中间节点对应流程模型的一个控制流结构块。为了将任务节点展现在树形结构中,本文引入了PST的变体,即基于任务的流程结构树(Task-based Process Structure Tree,TPST)。TPST的特征如下[12]:①TPST的叶节点对应流程模型中的任务节点,非叶子节点表示流程模型的控制流模块;②TPST中有Sequence、And、Xor和Loop 4种类型的网关节点,分别对应流程模型中的顺序、并行、选择和循环模块;③TPST是半有序的,即Sequence和Loop的孩子节点之间有顺序关系,而And和Xor的孩子节点之间是无序的。
图2是图1中两个流程模型转换而来的TPST。以TPST1为例,它包含3个非叶子节点:Sequence、And、Xor。其中:Sequence代表整个Process 1,表示Process 1整体是一个顺序执行的流程,先执行任务节点A,再执行并行结构块And,最后执行任务节点E;And下面有两个子节点:Xor和任务节点D将被同时执行;Xor这个结构块由任务节点B和C组成,其中的一个节点将被执行。
定义3独立路径。流程模型的独立路径是指从开始节点到结束节点的多次执行中,每次执行至少有一个任务节点是未被执行过的,即一条独立路径至少包含一条在其他独立路径中未有过的边[13-14]。
以图1的Process 1为例,其包含的两条独立路径,分别为“Start-A-B-D-E-End”、“Start-A-C-D-E-End”。
定义4最长公共子序列。令X和Y为两个序列,Z分别为X和Y的子序列,若Z是X和Y的最长公共子序列,则需要满足以下条件:对于任意一个X和Y的子序列Z′,|Z|≥|Z′|。
例如,X=(A,A,B,C,D),Y=(M,N,A,B,C,A,B,C,D),Z=(A,B,C,D),则Z是X和Y的最长公共子序列[16-18]。
本章基于第3节中描述的流程建模、独立路径、最长公共子序列等相关定义,提出了具体的流程建模推荐方法。给定一个正在建模的“参考流程”以及一个流程模型库,所提方法的主要思想是提取“参考流程”和流程库中所有流程模型的独立路径,并对这些独立路径间进行相似度计算,从而选出流程库中前k条与“参考流程”最相似的独立路径作为参考路径,然后选取这些独立路径中当前建模节点的下一节点作为推荐节点集,从而帮助建模人员进行快速建模。
本文所提的基于行为的自动化流程建模推荐方法整体框架如图3所示,共分为流程预处理、流程推荐以及用户界面3个模块。
(1)流程预处理模块 该模块的输入是一个流程模型库以及当前正在建模的“参考流程”,这些流程模型的存在方式多样,如业务流程建模符号(Business Process Model and Notation, BPMN)、事件驱动建模(Event-driven Process Chains,EPC)、Petri网等。该模块的功能是对所有输入流程进行解析并提取独立路径、计算独立路径权值,并将结果分别存储在路径表和独立路径权值表中。通过独立路径表和独立路径权值表,能够直接取出给定流程的独立路径及其对应的路径权值。
(2)流程推荐模块 整体的流程推荐首先计算“参考流程”的独立路径和流程模型库的独立路径间的相似度,再通过独立路径最大权值算法找到合适的候选节点集推荐给建模人员,目前项目最多支持k个节点候选集,最后由建模人员来决定选定哪个推荐节点进行建模,从而构建出一个完整的流程。流程推荐的具体步骤如下:
步骤1通过独立路径提取算法,从流程数据库集合T中获取独立路径集R和权重系数集M,本文接下来会对独立路径提取算法作详细介绍。
步骤2对参考模型P进行独立路径提取,也同样获得该独立路径的权值系数N。
步骤3对R中所有独立路径进行循环遍历,然后通过相似度匹配算法得到与p最相似的路径,从而获得相似路径中相应的推荐节点。
步骤4循环结束,将流程推荐节点依次排序,流程相似度最高的优先推荐,流程相似度相同则通过路径权值进行比较,权重较大者优先推荐,形成流程推荐节点集,并作为推荐结果提供给用户。
(3)用户界面 用户界面主要处理用户的输入输出,为用户提供交互功能,包括:“参考流程”的节点、边的创建和连接;当前所建流程模型的基本信息以及流程节点的推荐和选择,便于建模人员建模。
流程模型的一条独立路径代表了流程的一个执行路径,因此,一个流程的行为可以由其独立路径的集合来表示。本文引入了独立路径表及独立路径权值表,用于记录流程库中所有流程的独立路径及独立路径中每条边的权值,后续阶段基于该表进行相似度计算。独立路径表及独立路径权值表的定义如下。
定义5独立路径表。独立路径表是一个M×N的链表,其中每一行表示一条独立路径,共有M条独立路径,每一列表示一个节点,最长的独立路径包含N个节点,如图4所示。需要注意的是,一个流程模型会包含多条独立路径。
定义6独立路径权值表。独立路径权值表是一个M×(N-1)的链表,其中每一行表示一条独立路径,每一列表示独立路径中某一条边的权值Wi(W1,…,WN-1),其中N-1代表的是最长独立路径拥有的边数。
基于定义5和定义6,本文所采用的独立路径提取算法伪代码如算法1所示,输入是一个流程库,输出是流程库中所有流程的独立路径表。提取独立路径的算法主要通过对TPST进行广度优先搜索(Breadth First Search,BFS)处理,并逐个节点分析得到独立路径表。
算法1独立路径提取。
输入:流程库中的流程模型;
输出:独立路径表R。
1 For流程库中的每一个流程模型p
2 r←初始化一个独立路径集合;T←初始化一个非任务节点集合;t←将p转换成TPST;k←1;m←1;
3 For对t进行广度优先搜索(BFS)
4 If Pi所在层为第一层
5 If Pi是任务节点 r[k].add(Pi);
6 Else T[m]←Pi,记录T[m].type;
r[k]←T[m]; m++;
7 Else If Pi父节点是Xor类型
8 If Pi是其父节点的最后一个子节点
9 If Pi是任务节点 r[k]中Pi的父节点←Pi;
10 Else Pi←T[m];r[k]中Pi的父节点←T[m];m++;
11 Else If Pi是任务节点
r[k+1]=r[k];r[k+1]中Pi的父节点←Pi;k++;
12 Else r[k+1]= r[k]; 当前节点←T[m];
r[k+1]←T[m];m++;k++;
13 Else Pi父节点是And或者Loop类型
14 If Pi是其父节点的第一个子节点
15 If Pi是任务节点 将r[k]中Pi的父节点←Pi
16 Else Pi←T[m];r[k]中Pi父节点←T[m];m++;
17 Else If Pi是任务节点 将Pi插入到r[k]中其兄弟节点的后面;
18 Else Pi←T[m];T[m]插入到r[k]中其兄弟节点的后面;m++;
19 For r集合中每一条独立路径 R ← r[k]
20 返回R
代码第3~18行使用BFS将TPST解析为各条独立路径,首先判断首层节点是否是任务节点,若是,则将该节点直接放入相应的独立路径r[k]中;否则标记T[m].type,用T[m]替换并放入r[k]中。接着,访问第二层,如果当前访问节点的父节点为Xor,则将当前路径复制出一条新的路径r[k+1]=r[k],并用当前节点去替换其父节点,形成新的独立路径。因为Xor表示选择,有多个选择即表示有多条不同独立路径,所以要复制产生相应的多条独立路径集合。仅当当前访问节点的父节点为Xor,且该节点为其父节点的最后一个节点时,不需要复制新的独立路径,直接将该节点替换原r[k]路径中的其父节点即可。
如果当前节点的父节点为And或者Loop,说明当前节点只有一条独立路径,若该节点为任务节点且为其父节点的首个节点,则将其替换r[k]中的父节点。若该节点为任务节点但不为其父节点的第一个节点,则直接将其插入r[k]中当前父节点下前兄弟节点的后面,若当前节点为非任务节点但为其父节点的第一个节点,则利用T[m]对该节点进行替换,用T[m]替换r[k]中的其父节点。若当前节点为非任务节点且不为其父节点的第一个节点,则用T[m]对该节点进行替换,将T[m]插入r[k]中当前父节点下前兄弟节点的后面。接着按照访问第二层的方式,依次访问第1,第2…第n层,最后得到独立路径集合R。
以图2的TPST1和TPST2为例,可以得到TPST1的独立路径A-B-D-E,A-C-D-E和TPST2的独立路径A-B-C-E,A-B-D-E。以TPST1作为分析样例,首先进行BFS,得到A,放入r[1]中,下一节点为And,标记为T[1]放入r[1]中,第一层遍历得到A-T[1]-E。接着访问第二层,发现Xor和D,因为Xor和D的父节点为And,且Xor为第一个子节点,利用T[2]替换Xor取代原路径中的T[1],形成A-T[2]-E,接着将D插入得到A-T[2]-D-E,然后访问第三层,得到D和E,因为B为T[2]的第一个子节点,所以复制r[1],得到r[2]=r[1]=A-T[2]-D-E。然后用B替换T[2]得到A-B-D-E。因为C也是任务节点且父节点为Xor,所以将C直接替换r[1]中的T[2]得到A-C-D-E。
为了给“参考流程”中的当前建模节点C推荐一系列节点,首先提取“参考流程”的Y条独立路径,随后对“参考流程”中包含C的每一条独立路径Ri(1≤i≤Y)都与独立路径表(大小为M×N)中的每一条独立路径Rj(1≤j≤M)进行相似度计算,从而在Y×M种可能情况中得到独立路径表中前k条相似度最高的独立路径,然后在这k条独立路径中取C节点的下一节点作为推荐节点,因为独立路径表示的是流程的执行顺序,所以推荐参考流程中建模节点C的下一节点最佳组合即为所得到的最高匹配度的独立路径中节点C的下一节点。
独立路径间的相似度计算主要通过计算“参考流程”模型所得到的独立路径和独立路径表R中的各条独立路径进行相似度计算,并根据所得到的相似度高低进行排序,取相似度最大的前K条独立路径作为命中数据。给定两条独立路径P1和P2,它们的相似度计算通过以下公式来进行:
Sim(P1,P2)=(LCS(P1,P2)×2)/
(|P1|+|P2|),
(1)其中:Sim表示相似度,|LCS(P1,P2)|表示当前P1、P2所拥有的最长公共子序列。给定两条独立路径,计算相似度步骤如下:
步骤1分别从独立路径的头部开始寻找,直至末尾,找出独立路径中的各自最长公共子序列P1、P2。如果有两个或两个以上的循环结构有公共节点,将这些循环用同一个无关节点代替,得到无循环图。
步骤2对步骤1得到的最长公共子序列P1、P2进行处理,根据式(1)得到每个独立路径的相似度Sim。并对相似度进行降序排序,相似度结果较大者优先被选择。
在给“参考模型”推荐前k条独立路径时,需要对前k条路径按相似度高低进行排序,为了解决两条推荐独立路径的相似度相同时如何进行排序的问题,本文引入独立路径的边权值来对相似度相同的独立路径进行进一步排序。在提取独立路径并得到每条独立路径的权值后,将所有的独立路径权值放在了独立路径权表中,如图5所示。给前k条路径按相似度高低排序,如遇到某两条甚至多条推荐的独立路径的相似度相同的情况,根据独立路径的表进行权值计算。
如表1所示,独立路径表中有两条数据,分别为独立路径A-B-D-E-F-G、A-C-D-E-F-K,相应的权值分别为:5、4、5、1、2和6、3、2、3、1。“参考流程”为D-E-F,现在要获取F的下一推荐节点,独立路径表中A-B-D-E-F-G、A-C-D-E-F-K都符合,首先根据相似度计算得到的推荐路径集合为A-B-D-E-F-G、A-C-D-E-F-K,进而得到的推荐节点集合为G和K。但两个推荐路径的相似度相同,因此需要计算两条独立路径的权值,得到A-B-D-E-F-G中D-E-F权值为5+1=6,A-C-D-E-F-K中D-E-F权值为2+3=5,由此得到参考建模模型为D-E-F的下一最佳节点为G,K排在G之后作为第二推荐节点。
表1 推荐算法结果表
基于第3章所提方法,本文构建了基于行为的自动化流程建模可视化系统原型,如图6所示。可视化系统的页面主要分为上下两个模块。
(1)上部模块主体为流程构建器,用户可以自由添加流程节点,并根据需求配置多种流程节点类型,比如正方形,圆形等(图6主要配置了圆形和长方形节点)。流程构建器支持用户对各个节点进行新增、编辑、删除、拖曳等功能,并支持对各节点之间进行连接。当用户不小心误删或者有其他错误操作,流程构建器也支持用户撤销修改和反撤销修改。流程构建完成后,支持用户一键保存,无需其他任何多余操作。
(2)下部模块为数据的交互展示模块。当用户构建完成参考模型并选择最终节点后,点击“获取推荐节点”按钮,程序自动解析流程构建器上已构建的参考模型,并将数据返回后台进行分析匹配,最后得到相应的结果展现在推荐模块处,并支持限制展示的最大推荐节点数量。当用户选择了某一个展示的推荐节点作为命中时,流程构建器将自动根据用户所选择的结果进行自动构建下一流程节点,不需用户手动构建。如图6所示,当取B作为终止节点时,系统匹配完成后推荐D和Q作为推荐节点,展示在右下侧,点击选择按钮后,系统会自动构建出Q节点。
下面评估本文所提方法的性能,通过改变流程节点数量、流程库大小等方面来比较所提方法与现有的图匹配算法[1]在效率和准确率上的表现。图匹配算法基于最大公共子图和最小公共超图的图匹配策略,通过流程和流程模式(上游子图)的最大公共子图和最小公共超图进行流程的相似度计算,选取候选节点集作为推荐结果[1]。其采用的通过图匹配进行流程推荐的方式和本文采用的独立路径匹配的方式其本质是一致的,且现有的大多数流程推荐方法均关注流程模型的图结构,在实际生活中,其效率和准确度都有一定的认可度,因此本文采用与图匹配算法进行对比实验。本文所有的实验都基于以下环境:处理器Intel(R)Core(TM)i5-6200U,2.40 GHz;8 GB内存;Windows 7;64位操作系统。
本实验主要通过改变流程库中的流程模型或改变“参考流程”模型的方式来分阶段考察其对算法效率的影响。本文整理了某区域政府办公流程数据集作为实验流程资源库,并从该流程数据集中选择其中的20个流程,然后人工对每一个流程进行改造,如改变独立路径的数量,改变节点数量等方式,修改得到与之相关的另外4个流程,最后数据库会包含100个流程。这100个流程库的库所、变迁、边数的最小值、最大值和平均值如表2数据所示。
表2 数据的情况
“参考流程”则新建了4个结构流程模型,这4个结构流程模型分别只包含Sequence,Xor,And,And+Xor中的一种流程结构,通过对其进行插入、删除、移动等操作来改变参考模型的任务节点数,独立路径数等,便于进行实验评估。
本节进行了参考流程P与流程库(表2)中流程模型的相似度计算,比较了本文所提方法与图匹配方法在效率方面的表现。其中参考流程P只包含Sequence结构,图7表示通过固定参考流程模型P的节点数为100,依次变化流程库中流程的数量N=20、40、60、80、100来观察数据变化;图8通过固定流程库中流程数量N(R1,…,Rn)为100,变化参考流程模型P的节点数,分别取20、40、60、80、100来观察数据变化;图9固定流程库中流程的数量N=100,变化参考流程模型P的独立路径数量,参考流程模型P的独立路径个数分别取5、10、15、20、25来观察数据变化。
通过对比,发现当固定参考流程模型P的节点数时,随着流程库中流程的增加,匹配时间先是缓慢增加,当流程数超过60时,匹配时间迅速上升,说明数据库流程数超过一定值时,对匹配时间的影响变得更大。而图匹配的算法所需时间较为稳定,一直呈一次函数式增长,因为N越大,图匹配算法需要解析的图越多。当固定流程库中流程的数量N=100个流程时,P节点数超过20后,匹配时间变化极小,对匹配时间的影响变得很小。而图匹配算法所需时间一直变化不大,这是因为当N固定时,整体图的分解和匹配基本固定,P的数量变化并不会造成太大的影响。
当变化P的独立路径数时,匹配所需时间呈线性函数式的增加,这是因为每多一条独立路径,FOR循环遍历的次数相应增加,从而导致最长公共子序列获取、相似度和最大路径权值计算的次数相应增加,影响匹配所需时间。而图匹配方式耗时增加是因为随着独立路径的改变,每一种独立路径都代表了不同的图,自然更加耗时。整体上说,图匹配算法所需要时间比独立路径匹配算法高很多,因为图匹配方式需要先用图挖掘算法对流程库进行处理,得到频繁子图;然后分解子图得到模式表,并将其存储于数据库中;最后通过图比较当前流程片段和模式表中的上游子图,推荐出最合适的活动节点。图匹配的挖掘都是基于图形的,而独立路径算法是基于数组的,自然在所需时间上,本文提出的独立路径匹配算法更有优势。
本文实验数据结果和图结构匹配算法进行分析比较,由图7~图9可以得出,本文提出的基于行为的流程建模方法的效率优于图结构的流程推荐方法。
本节主要比较本文所提方法与图匹配方法在准确率方面的表现,本文的流程推荐节点是通过获得推荐流程得到的,由此得到最佳推荐流程就相当于得到了最佳流程推荐节点。本文对算法准确率的评估使用归一化折损累积增益(Normalized Discounted Cumulative Gain, NDCG)[18],如式(2)所示,给相关流程的排序结果计算出得分:
(2)
其中:N(n)表示某个给定“参考流程”和其n个推荐流程的NDCG值;r(n)是排在第n个位置的推荐流程的权重,由用户自定义;I(n)表示某个给定流程模型与其n个推荐流程的归一化折损累积增益(Ideal Discounted Cumulative Gain,IDCG)值。在查询一个给定流程模型的推荐流程时,与流程数据库的不同流程匹配得到的推荐流程可能不同,即使推荐流程相同,其推荐顺序也不同,为了评估本文流程推荐算法的准确率,本文首先给定一个流程模型相关推荐流程的基准排序,即标准的IDCG(该基准排序结果N(n)通过式(2)计算得到),然后将流程数据库中的各个流程模型与同一个给定流程进行匹配,计算得出其前n个推荐流程节点所对应的NDCG值,并采用式(3)将NDCG与IDCG进行比较得到算法的准确率[19]。
(3)
本文从流程数据集中选择一个“参考流程”,然后对该流程进行一些改造,分别通过改变独立路径的数量和改变节点数量两种方式进行两组实验,修改得到与之相关的另外5个流程,然后再选取与“参考流程”无关的55个流程,这55个流程和与参考流程相关的5个流程共同组成一个新的流程数据库,数据库中不匹配的流程模型作为匹配流程模型的干扰数据。然后取n=5,表示最多获得5个推荐节点,即最多获得5个推荐流程。r(n)由用户自定义决定,本文分别取0.3、0.25、0.2、0.15、0.1这5个等级的权重,第一步通过人为排序,获得前5个最佳推荐结果,然后流程匹配算法进行流程节点推荐,将获得的结果与本文人为排序的结果进行比较,以此来评估准确率。如图10和图11所示,图10表示的是固定参考模型流程,通过改变数据库流程的节点数量方式进行准确率评估。图11则表示固定参考模型流程,通过改变流程数据库流程的独立路径数量进行准确率评估。
通过图10和图11的准确率可以得出,虽然10组匹配推荐中只有一次是100%完全推荐成功的,但是本文的独立路径匹配算法准确率最低保持在75%,计算得出平均准确率达到83.5%。而图匹配算法的平均准确率为83.1%,但是其最低的匹配准确率为71%,这是因为本文提出的独立路径匹配算法在算法上不会因为图形过于复杂而导致更大的差异性。整体上两者之间的差异在可接受的范围之内,因此可以得出本文的流程推荐算法在准确度上是符合实际要求的。
本文基于流程的行为语义提出了一个新的流程推荐方法,利用流程模型独立路径和路径权值对“参考模型”和流程库中的每一个流程模型进行相似度计算,从而对“参考模型”的下一个建模节点推荐k个最合适的节点。本文实现了所提方法并通过与现有方法在效率和准确率两方面的比较,表明所提方法可以很好地支持实际应用场景。在未来的工作中,拟考虑如下几个方面的工作:①如何提高流程匹配的成功率和匹配效率;②如何使推荐流程更加智能化,单个节点推荐模式如何改进为流程片段或完整流程推荐模式;③基于本文对流程推荐的思想,如何进一步推荐与具体实际应用场景的结合,如流程之间的差别度计算、流程元素之间的映射等。