一种基于流程挖掘的决策支持方法及装置的制造方法
【专利摘要】本发明公开了一种基于流程挖掘的决策支持方法及装置。本发明首先从数据库中导出工作流日志文件并设置为XML格式;其次获得工作流日志文的信息,并列出提取到的所有活动序列,再对所有活动序列进行剔除和均值化归并处理;对处理后的无冗余活动序列进行扫描遍历,通过循环活动建立循环结构;接着使用自定义的TRPN模型为每条活动序列建模,每条活动序列得到工作流分支模型;扫描两个分支模型中活动节点并进行判断,对得到的工作流模型通过线性规划的方法进行优化,并对资源分配方法进行验证。本发明能够有效构建出工作流程中的各种结构,有效地对工作流中的资源进行分配,并进行形式化验证,保证了模型与方法的准确性和正确性。
【专利说明】
一种基于流程挖掘的决策支持方法及装置
技术领域
[0001] 本发明属于软件工程管理领域,尤其涉及一种基于流程挖掘的决策支持方法及装 置。本发明用于对企业中工作流进行有效的管理,可以对工作流日志文件进行建模和资源 优化。通过统筹活动信息和约束条件,实现对流程中的资源进行优化配置。并通过对比资源 配置前后角色平均忙碌率、角色加权忙碌率等工作流性能衡量参数来验证优化结果。
【背景技术】
[0002] 工作流挖掘最早是被用于软件工程管理领域,在早期的系统设计中,业务分析师 和管理人员对业务的认知是软件设计者的需求及分析的主要来源,这样就会使其存在有一 定的主观性,同时,在实际运行过程中可能出现的意外状况无法有效的处理,也会影响软件 的使用效率。而在有些情况下,工作流的精确建模是相对比较困难的,因为有些要素只能在 工作流运行时才能确定。因而在工作流建模时候不能过分的苛求工作流模型的完美,要使 得工作流先运行起来,在数据库或日志中积累其运行数据,根据其运行数据对工作流进行 挖掘、优化,促使工作流模型不断地精确化。基于流程挖掘的决策支持方法在工作流管理的 领域的应用,其主要的思想是利用数据挖掘的技术从工作流日志中重新构造工作流模型, 并利用决策支持方法优化工作流模型从而达到流程分析与流程优化的目的。目前存在的大 多数管理软件中,如ERP、SCM、CRM及WFMS都可以生成工作流日志,代替掉了早期的人工记 录。这些日志记录的是流程运行的真实情况,分析已运行后的工作流日志,从中发现工作流 运行的模式、运行情况,以及对于工作流的运行绩效进行一定的考评及更正工作流中存在 的弊病都有很大的帮助,基于流程挖掘的决策支持方法就是在此背影下产生的。基于流程 挖掘的决策支持方法可帮助开发者分析工作流设计框架与具体执行的不同点,同时在构建 工作流模型过程中帮助在任务间构建准确的控制结构、数据流结构和高效的资源分配方 案。
【发明内容】
[0003] 本发明的目的是针对现有技术的不足,提供一种基于流程挖掘的决策支持方法及 装置。
[0004] 本发明解决其技术问题所采用的技术方案如下:
[0005] 步骤(1)从数据库中导出工作流日志文件,并将工作流日志文件设置为XML格式;
[0006] 步骤(2)扫描工作流日志文件并从中获得完整的日志信息,包括每个工作流活动 所属的实例ID、活动名称、活动节点状态、活动参与角色、活动开始时间、结束时间及活动执 行时所需的成本开销,并将日志信息导入文本文件中;
[0007] 步骤(3)扫描文本文件并列出提取到的所有活动序列。即便是相同的活动序列也 要分别单独列出,在此提取过程中同时统计各活动序列中每个活动节点的成本开销与执行 时间的属性信息;
[0008] 所述的相同的活动序列是指活动序列中所有的活动名称依次相同;
[0009] 所述的执行时间的属性信息为活动开始时间和结束时间的差值;
[0010] 步骤(4)根据步骤(3)统计得到的活动序列,首先剔除掉不完整的活动序列,其次 对所有相同的活动序列通过均值化进行归并,将活动序列中各活动节点的活动信息均予以 "均值化"处理,并将处理后的活动信息附加到归并后活动序列中对应的活动节点;
[0011] 所述的不完整的活动序列是指该活动序列没有执行到活动终点;
[0012] 步骤(5)根据在步骤(4)中得到的无冗余活动序列,对每条活动序列进行扫描遍 历,根据循环结构的特点,查找每条活动序列中的循环活动,并在原活动序列基础上通过循 环活动建立循环结构;
[0013] 步骤(6)、通过步骤(5)找出工作流日志文件中提取得到的活动序列中可能存在的 循环结构,接着使用自定义的TRPN(时间资源petri网)模型为每条活动序列建模,每条活动 序列得到工作流分支模型;
[0014] 步骤(7)扫描两个分支模型中活动节点,判断活动节点(或几个相邻活动节点组成 的结构)前后相邻的活动节点(或几个相邻活动节点组成的结构)是否相同,并判断以及活 动节点(或几个相邻活动节点组成的结构)出现的次数,从而确定两条分支模型之间是否存 在控制结构,根据控制结构依次合并各条分支模型,并对涉及活动信息进行均值化处理;
[0015] 所述的控制结构即选择(OR)、并行(AND)、循环结构,
[0016] 步骤(8)不断重复步骤(7),直至剩下唯一一条从开始节点到结束节点的、且完整 的工作流模型为止;
[0017] 步骤(9)对得到的工作流模型通过线性规划的方法进行优化,从而优化资源分配, 并对优化后的资源分配方法进行验证。
[0018] 步骤(9.1)根据分析与计算步骤2得到的样本日志文件,利用时间约束和成本约束 来优化流程执行过程中的资源分配,找到一种最优或者是接近最优的分配方案。
[0019 ]首先,根据样本日志中的η个角色η所具有的相关属性给出目标函数
N+表示正整数;该函数的含义是在满足约束条件的前提下,使现有的角色尽可能多的参与 到流程的执行过程中。
[0020] 其次,对每个活动中的成本开销和闲置时间开销均设置一个上限约束。根据该上 限约束、成本开销信息公式与平均闲置时间公式得出约束关系式;每个任务执行时的成本 和时间都必须在一定的范围之下,即满足M(Hioney)和T(time)的约束。从而实现对现有的角 色成员数目进行重新配置。
[0021] 所述的成本开销信息公式是对角色中成员的数目、成本开销和发生频率三者的乘 积求和,用来计算某个执行活动active的平均成本开销,如下:
[0022]
[0023] f (η)表示角色η在其所发生活动中的相对发生频率,m(ri)表示角色η在参与工 作流执行过程中需要的成本开销。
[0024] 平均闲置时间公式是对执行该活动的所有角色内全部闲置成员的空闲时间求和, 用来计算角色成员在执行活动过程中产生的平均闲置时间信息:
[0025] 其中t(n)表示角色
D Γι在工作流执行过程中参与活动的平均时间开销。
[0026] 步骤(9.2)根据步骤(9.1)中所产生的目标函数,求解得到目标函数的最优解,此 时获得每个活动中对应角色所应分配的人员数目,计算得到角色的加权忙碌率:所有成员 的忙碌率总和与成员个数的比值。
[0027] 首先计算角色的平均忙碌率,角色的平均忙碌率反映了该活动角色在执行工作流 活动过程中的忙碌程度,因为参与活动的角色基本都存在两张状态:忙碌状态和闲置状态, 在很多情况下,活动角色的忙碌率值越高,说明其被利用率也就越高,而这也是企业生产中 所追求的,定义的公式如下:
[0028]
[0029] 某一活动角色ri的平均忙碌率ABR(ri)可以由该角色在活动中的平均忙碌时间ABT (η)以及该活动中所有角色的平均忙碌时间总和得到,表示该活动中包含的活 动角色的数目。
[0030] 其次计算角色加权忙碌率,角色加权平均忙碌率将实例中所有资源的权重考虑在 内,更加真实地反映了工作流日志中所有参与工作流执行活动的所有角色的平均忙碌率, 公式如下:
[0031]
[0032]在工作流日志中,假设存在多个角色ri,r2,. ..,rn,每个角色^的平均忙碌率为 ABR(ri),且对应含有num(ri)个活动成员,那么可以求得此日志文件中角色加权忙碌率。 [0033] -种基于流程挖掘的决策支持方法使用的装置,包括日志信息获取模块、活动序 列提取模块、简单活动序列提取模块、循环结构分析模块、工作流分支模型构建模块、工作 流分支模型合并模块及决策支持模块。
[0034]日志信息获取模块负责从数据库中导出完整日志信息,并将结果导入到文本文件 中去;
[0035] 活动序列提取模块负责从文本文件所得到的日志信息中获取工作流执行过程中 的所有活动序列,以及每条活动序列中各活动的属性信息。在获取活动序列时,我们根据各 个活动间的序列关系来判断它们在活动序列中的相对顺序;
[0036] 简单活动序列提取模块负责从前面所得到的所有活动序列中"剔除"掉那些重复 的以及不完整的活动序列,这里所说的"剔除"是指对重复的活动序列进行合并,并对序列 中每个活动节点信息按平均值赋值;
[0037] 循环结构分析模块负责分析发现所有简单活动序列中存在的循环结构;
[0038]工作流分支模型构建模块负责通过自定义的TRPN模型为简单活动序列进行建模, 建模过程中主要考虑两方面因素:各活动间的逻辑顺序以及各活动的属性信息。
[0039] 工作流分支模型合并模块负责对前面得到的工作流分支模型进行组合归并,同样 对于相同活动节点在合并过程中要进行"均值化"处理。分支模型的合并是一个迭代过程, 在该过程中,需要同时考虑参与合并的分支模型之间可能存在的选择(OR)、并行(AND)等关 系,直到最后剩下一条工作流模型为止,而这条模型就是我们要求的工作流模型;
[0040] 决策支持模块负责对挖掘得到的工作流模型进行资源优化,通过条件约束建立各 资源之间的约束关系,利用线性规划方法优化分配工作流中的资源,并进行正确性验证。 [0041 ] 本发明所述的TRPN(时间资源petri网)具体如下:一个TRPN是一个七元组(P,T,F, Mo,efd,lfd,A),其中:
[0042] #(卩,1',卩,]\1(),6沉,1沉)是一个丁?1
[0043] ·Α是T中所有变迀的属性信息的集合,集合中每个元素 aeA均是一个六元组结构 {λ,ε,flag,C1tP, γ }:
[0044] ·λ表示变迀t所在的序列编号;
[0045] ·ε表示变迀t在变迀序列中的名称;
[0046] #f lag用来标识变迀t当前的状态,包括start (开始)和complete (完成)两个值; [0047] #c用来记录触发当前变迀t需要的成本开销,ceQ'(f是正有理数的集合;
[0048] ·φ用来记录执行当前变迀t需要的时间开销,teQ'if是正有理数的集合;
[0049] · γ表示执行当前变迀t的成员所从属的角色;
[0050] 在变迀集合T中,对任意t e T,使得t e 〇时,存在σ e f是一条工作流路径,即〇是一 个变迀序列;对Τ*的幂集P(T*),Wep(T*)是工作流流程日志,即沙上疒。
[0051] 本发明有益效果如下:
[0052]本发明利用数据挖掘的技术从工作流日志中重新构造工作流模型,并利用决策支 持方法优化工作流模型从而达到流程分析与流程优化的目的。日志记录的是流程运行的真 实情况,本发明可帮助开发者分析工作流设计框架与具体执行的不同点,同时在构建工作 流模型过程中帮助在任务间构建准确的控制结构、数据流结构和高效的资源分配方案。
[0053] 本发明提供的挖掘工作流模型的方法可有效构建出工作流程中的顺序结构、选择 结构、循环结构和并行结构,以及有效地对工作流中的资源进行分配,并进行了形式化验 证,保证了模型与方法的准确性和正确性。
【具体实施方式】
[0054] 本发明所提供的基于流程挖掘的决策支持方法的【具体实施方式】如下:
[0055] (1)从数据库中导出工作流日志,设该日志中第k条活动序列为〇k,每个日志都包 含若干条活动序列,使用node_arr[k][n]存放工作流日志文件中顺序出现的第k条活动序 列中第η个活动实体的成本、时间开销及角色信息;
[0056] (2)扫描日志文件得到日志中所有的活动序列Ok e σ,k e [ I,K],K表示总的活动序 列数;
[0057] (3)扫描得到的所有活动序列〇ke〇,删除"缺陷"活动序列,并对完整活动序列进 行去"冗余化"处理,即对多条相同的活动序列,仅保留一条,并且该条活动序列上所有活动 的属性信息均由先前多条相同活动序列的属性信息"求均值"得来,因此得到简单序列集合 σ',使用count[k]记录第k条活动序列中活动的数目;
[0058] (4)挖掘每条活动序列中存在的循环序列,并实现从任一活动序列〇1'e 〇'到工作 流模型mi(g卩TRPN模型)的转换,这些工作流模型构成一个工作流模型集合M。
[0059] (5)对eM,合并工作流模型集合M中的模型分支,并将合并后的模型存入M 中,进行下一步的合并操作,直到M中仅剩下一条从开始节点到完成节点的、完整的工作流 模型为止。合并过程包含两方面:
[0060] (5.1)模型形式的合并,根据活动节点之间的序列关系,判断存在的选择(0R)、并 行(AND)等结构,并对所涉及活动序列在形式上进行合并;
[0061] (5.2)模型数据的合并,在对模型进行形式上的合并过程中,需要同时对每个活动 的属性信息进行分析计算,对于那些参与合并的活动,其属性信息赋为平均值;
[0062] (6)经过步骤(5),取得一个带有附加属性信息的工作流模型,记为m,则m就是我们 从工作流日志文件中挖掘得到的TRPN工作流模型;
[0063] (7)在得到工作流模型基础上,给出基于条件约束的资源分配方法。利用线性规划 的方法,优化了工作流中的资源分配。
[0064] (7.1)利用给出的工作流约束条件(如时间约束、成本约束等),为挖掘得到的工作 流模型m建立约束关系等式,首先,根据样本日志中的η个角色 Γι所具有的相关属性给出目 标函数:
,该函数的含义是在满足约束条件的前提下,使现有的角色尽 可能多的参与到流程的执行过程中。其次,对每个活动中的成本开销和闲置时间开销均设 置一个上限约束。根据该上限约束和成本开销信息公式、平均闲置时间公式可以得出如下 约束关系式,可以用来实现对现有角色成员数目进行重新配置。
[0065]
[0066]
[0067] (7.2)根据(7.1)中所产生的目标函数,利用线性规划方法求解关系约束关系式中 的最优解,此时获得每个活动中对应角色所应分配的人员数目,给出工作流中的资源数量 分配方案,不仅优化了分配工作流中的资源,而且显著提高角色的忙碌率、工作流的加权忙 碌率以及工作流的整体执行效率;
[0068] (8)给予实验分析,验证所用方法的正确性和有效性。
【主权项】
1. 一种基于流程挖掘的决策支持方法,其特征在于包括如下步骤: 步骤(1)从数据库中导出工作流日志文件,并将工作流日志文件设置为XML格式; 步骤(2)扫描工作流日志文件并从中获得完整的日志信息,包括每个工作流活动所属 的实例ID、活动名称、活动节点状态、活动参与角色、活动开始时间、结束时间及活动执行时 所需的成本开销,并将日志信息导入文本文件中; 步骤(3)扫描文本文件并列出提取到的所有活动序列;即便是相同的活动序列也要分 别单独列出,在此提取过程中同时统计各活动序列中每个活动节点的成本开销与执行时间 的属性信息; 所述的相同的活动序列是指活动序列中所有的活动名称依次相同; 所述的执行时间的属性信息为活动开始时间和结束时间的差值; 步骤(4)根据步骤(3)统计得到的活动序列,首先剔除掉不完整的活动序列,其次对所 有相同的活动序列通过均值化进行归并,将活动序列中各活动节点的活动信息均予以"均 值化"处理,并将处理后的活动信息附加到归并后活动序列中对应的活动节点; 所述的不完整的活动序列是指该活动序列没有执行到活动终点; 步骤(5)根据在步骤(4)中得到的无冗余活动序列,对每条活动序列进行扫描遍历,根 据循环结构的特点,查找每条活动序列中的循环活动,并在原活动序列基础上通过循环活 动建立循环结构; 步骤(6)、通过步骤(5)找出工作流日志文件中提取得到的活动序列中可能存在的循环 结构,接着使用自定义的TRPN模型为每条活动序列建模,每条活动序列得到工作流分支模 型; 步骤(7)扫描两个分支模型中活动节点,判断活动节点前后相邻的活动节点是否相同, 并判断以及活动节点出现的次数,从而确定两条分支模型之间是否存在控制结构,根据控 制结构依次合并各条分支模型,并对涉及活动信息进行均值化处理; 所述的控制结构即选择、并行、循环结构, 步骤(8)不断重复步骤(7),直至剩下唯一一条从开始节点到结束节点的、且完整的工 作流模型为止; 步骤(9)对得到的工作流模型通过线性规划的方法进行优化,从而优化资源分配,并对 优化后的资源分配方法进行验证。2. 根据权利要求1所述的一种基于流程挖掘的决策支持方法,其特征在于根据分析与 计算步骤2得到的样本日志文件,利用时间约束和成本约束来优化流程执行过程中的资源 分配,找到一种最优或者是接近最优的分配方案,具体如下: 首先,根据样本日志中的η个角色η所具有的相关属性给出目标函数 N+表示正整数;该函数的含义是在满足约束条件的前提下,使现有的角色尽可能多的参与 到流程的执行过程中; 其次,对每个活动中的成本开销和闲置时间开销均设置一个上限约束;根据该上限约 束、成本开销信息公式与平均闲置时间公式得出约束关系式;每个任务执行时的成本和时 间都必须在一定的范围之下,即满足M(m 〇ney)和T(time)的约束;从而实现对现有的角色成 员数目进行重新配置; 所述的成本开销信息公式是对角色中成员的数目、成本开销和发生频率三者的乘积求 和,用来计算某个执行活动active的平均成本开销,如下:f(ri)表示角色ri在其所发生活动中的相对发生频率,m(ri)表示角色ri在参与工作流执 行过程中需要的成本开销; 平均闲置时间公式是对执行该活动的所有角色内全部闲置成员的空闲时间求和,用来 计算角色成员在执行活动过程中产生的平均闲置时间信息:其中t(ri)表示角色^在工 作流执行过程中参与活动的平均时间开销。3. 根据权利要求2所述的一种基于流程挖掘的决策支持方法,其特征在于根据步骤 (9.1)中所产生的目标函数,求解得到目标函数的最优解,此时获得每个活动中对应角色所 应分配的人员数目,计算得到角色的加权忙碌率:所有成员的忙碌率总和与成员个数的比 值,具体如下: 首先计算角色的平均忙碌率,角色的平均忙碌率反映了该活动角色在执行工作流活动 过程中的忙碌程度,因为参与活动的角色基本都存在两张状态:忙碌状态和闲置状态,在很 多情况下,活动角色的忙碌率值越高,说明其被利用率也就越高,而这也是企业生产中所追 求的,定义的公式如下:某一活动角色ri的平均忙碌率ABR(ri)可以由该角色在活动中的平均忙碌时间ABT(ri) 以及该活动中所有角色的平均忙碌时间总和得到,表示该活动中包含的活动角 色的数目; 其次计算角色加权忙碌率,角色加权平均忙碌率将实例中所有资源的权重考虑在内, 更加真实地反映了工作流日志中所有参与工作流执行活动的所有角色的平均忙碌率,公式 如下:在工作流日志中,假设存在多个角色n,r2, . . .,rn,每个角色ri的平均忙碌率为ABR (r〇,且对应含有num(ri)个活动成员,那么可以求得此日志文件中角色加权忙碌率。4. 根据权利要求1所述的一种基于流程挖掘的决策支持方法使用的装置,其特征在于 包括日志信息获取模块、活动序列提取模块、简单活动序列提取模块、循环结构分析模块、 工作流分支模型构建模块、工作流分支模型合并模块及决策支持模块; 日志信息获取模块负责从数据库中导出完整日志信息,并将结果导入到文本文件中 去; 活动序列提取模块负责从文本文件所得到的日志信息中获取工作流执行过程中的所 有活动序列,以及每条活动序列中各活动的属性信息;在获取活动序列时,根据各个活动间 的序列关系来判断它们在活动序列中的相对顺序; 简单活动序列提取模块负责从前面所得到的所有活动序列中"剔除"掉那些重复的以 及不完整的活动序列,所述的"剔除"是指对重复的活动序列进行合并,并对序列中每个活 动节点信息按平均值赋值; 循环结构分析模块负责分析发现所有简单活动序列中存在的循环结构; 工作流分支模型构建模块负责通过自定义的TRPN模型为简单活动序列进行建模,建模 过程考虑两方面因素:各活动间的逻辑顺序以及各活动的属性信息; 工作流分支模型合并模块负责对前面得到的工作流分支模型进行组合归并,同样对于 相同活动节点在合并过程中要进行"均值化"处理;分支模型的合并是一个迭代过程,在该 过程中,需要同时考虑参与合并的分支模型之间可能存在的关系,直到最后剩下一条工作 流模型为止,而这条模型就是我们要求的工作流模型; 决策支持模块负责对挖掘得到的工作流模型进行资源优化,通过条件约束建立各资源 之间的约束关系,利用线性规划方法优化分配工作流中的资源,并进行正确性验证。
【文档编号】G06Q10/06GK106056299SQ201610403589
【公开日】2016年10月26日
【申请日】2016年6月8日
【发明人】胡海洋, 胡华, 张强, 张笑菲
【申请人】杭州电子科技大学