![](/images/contact.png)
0 引 言
面對激烈的市場競爭和市場環(huán)境的快速變化,現(xiàn)代企業(yè)必須能夠隨時對核心業(yè)務(wù)過程做出適當(dāng)?shù)恼{(diào)整以適應(yīng)新的需要。這不但需要管理者能夠掌握外部環(huán)境的變化,也需要管理者能夠?qū)ζ髽I(yè)業(yè)務(wù)過程的實際情況有清晰的了解。傳統(tǒng)的過程分析手段,如調(diào)查、訪談、建模分析和模擬等,費時費力,而且受用戶的主觀性影響很大,容易出現(xiàn)偏差,因此越來越難以滿足用戶的需要。
過程挖掘是一種自動化的過程分析技術(shù),通過對業(yè)務(wù)過程日志的挖掘,自動生成業(yè)務(wù)過程的執(zhí)行流模型,從而幫助用戶更好地理解業(yè)務(wù)過程的內(nèi)在執(zhí)行邏輯[1]。由于其分析的依據(jù)――業(yè)務(wù)過程日志是企業(yè)在實際業(yè)務(wù)運行過程中生成的客觀記錄,因此該技術(shù)客觀性強、費用低、速度快,有效地彌補了傳統(tǒng)過程分析手段的各種缺陷,并已經(jīng)在政府公共工程、醫(yī)院和供應(yīng)鏈管理等實際領(lǐng)域中取得了一定的成功應(yīng)用[2-4]。
對包含錯誤、隱含任務(wù)[5]等的不完整日志的挖掘是過程挖掘面臨的難題之一。因為實際中用于挖掘的日志主要來源于企業(yè)的信息系統(tǒng)的自動生成,因此日志中包含錯誤的情況并不常見,不完整日志問題基本上都是由于包含隱含任務(wù)造成的?,F(xiàn)有的大多數(shù)過程挖掘算法在處理包含隱含任務(wù)的日志時都無法得到正確的結(jié)果。少數(shù)幾種能夠處理隱含任務(wù)的算法,如基因算法[6]、α#算法[7]等,但只能挖掘部分類型的隱含任務(wù),未能完全解決隱含任務(wù)的挖掘問題。
針對這一問題,本文嘗試提出一種基于α算法[8]和結(jié)構(gòu)化工作流網(wǎng)[9]的過程挖掘算法,該算法能夠比較全面地挖掘結(jié)構(gòu)化工作流網(wǎng)模型中的各類隱含任務(wù)。通過理論分析和實驗驗證,該算法的正確性得到了證明。
?。?問題說明
過程挖掘通過對日志信息的分析來構(gòu)造過程模型。為了保證挖掘算法能夠最大限度地適用于各種形式的日志,絕大多數(shù)挖掘算法僅要求日志中包含下列3項內(nèi)容:①事件所屬的工作實例;②執(zhí)行事件的業(yè)務(wù)單元(任務(wù)標(biāo)識);③事件發(fā)生的順序(處理時間)。因此,在分析過程挖掘算法時,為了簡便起見,通常直接將日志寫成諸如ABCDE,ABCDF,ACBDE,ACBDF的形式,其中每個字母代表一個任務(wù),每個逗號隔開的字母序列代表一條日志實例。對該日志實例用算法進行過程挖掘,就可以得到如圖1(a)所示的結(jié)構(gòu)化工作流網(wǎng)過程模型。
在現(xiàn)實中,由于很多信息系統(tǒng)只對進行實際業(yè)務(wù)操作的業(yè)務(wù)單元活動進行記錄,以及系統(tǒng)采用的過程建模工具本身的特性等各種原因,一些過程任務(wù)往往沒有被記錄在日志中。這種過程任務(wù)就是所謂的“隱含任務(wù)”?,F(xiàn)有的大多數(shù)算法無法正確處理包含隱含任務(wù)的日志。例如,假設(shè)圖1(a)中過程的任務(wù)D是一個隱含任務(wù),則得到的日志是ABCE,ABCF,ACBE,ACBF。用α算法挖掘?qū)⒌玫饺鐖D1(b)所示的模型,它不是一個合法的結(jié)構(gòu)化工作流網(wǎng)模型,而且相比原始模型,其結(jié)構(gòu)復(fù)雜,不容易為用戶所理解。
現(xiàn)有少數(shù)算法能夠挖掘部分類型的隱含任務(wù),但都無法完全挖掘所有類型的隱含任務(wù)。例如,圖2給出了α #算法能夠挖掘的幾種隱含任務(wù),其中黑色方塊表示隱含任務(wù)。但它無法挖掘圖1(a)類型的隱含任務(wù)。
因此,本文在綜合現(xiàn)有各種隱含任務(wù)挖掘方法的基礎(chǔ)上,結(jié)合結(jié)構(gòu)化工作流網(wǎng)本身的特性,提出了一種基于算法和結(jié)構(gòu)化工作流網(wǎng)的過程挖掘算法,該算法能夠比較全面地挖掘結(jié)構(gòu)化工作流網(wǎng)模型中的各類隱含任務(wù)。
2 結(jié)構(gòu)化工作流網(wǎng)中的隱含任務(wù)
?。玻?結(jié)構(gòu)化工作流網(wǎng)
過程挖掘通過深入分析過程日志來構(gòu)造出過程模型。顯然,算法所使用的建模語言決定了算法能夠成功挖掘的過程及其日志的特性。目前,絕大多數(shù)過程挖掘算法都采用工作流網(wǎng)[10]或者其子集作為建模語言,它是Petri網(wǎng)的一個子集,具體定義如下:
定義1(工作流網(wǎng)) 工作流網(wǎng)N為五元組(P,T,F,i,o)。其中,P為全體庫所集合,T為全體變遷集合,F為全體邊集合,i為輸入庫所,o為輸出庫所。Mo ={i}為工作流網(wǎng)的初始配置。
結(jié)構(gòu)化工作流網(wǎng)是工作流網(wǎng)的各類子集中研究最多最深入的一種,其特點是不包含非自由選擇結(jié)構(gòu),結(jié)構(gòu)相對簡單,但仍能滿足大多數(shù)實際應(yīng)用的需要。其定義如下:
定義2(結(jié)構(gòu)化工作流網(wǎng)) 工作流網(wǎng)N=(P,T,F,i,o)是一個結(jié)構(gòu)化工作流網(wǎng),當(dāng)且僅當(dāng):
?。ǎ保θ我鉂M足(p,t)∈F的p和t,有:|p・|>1→|・t|=1;
(2)對任意滿足(p,t)∈F的p和t,有:|・t|>1→|p・|=1;
?。ǎ常㏄中不存在隱含庫所[9]。
2.2 隱含任務(wù)定義
隱含任務(wù)就是在過程中存在并且被執(zhí)行,但是始終不會被記錄在過程日志中的任務(wù)。
定義3(隱含任務(wù)) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o),W=T*是其對應(yīng)的日志。則稱t∈T是隱含任務(wù),當(dāng)且僅當(dāng)不存在日志實例L∈W,使t∈L。N的全部隱含任務(wù)的集合記為H。
隱含任務(wù)問題的本質(zhì)是日志中的信息缺失。顯然,只有那些導(dǎo)致模型結(jié)構(gòu)出現(xiàn)缺陷的隱含任務(wù)才有可能被發(fā)現(xiàn),其他隱含任務(wù)在不引入其他知識的條件下是無法通過日志分析的方法來發(fā)現(xiàn)的。例如,圖4中的幾種隱含任務(wù)都不會導(dǎo)致挖掘模型出現(xiàn)結(jié)構(gòu)缺陷,都是無法被發(fā)現(xiàn)的。因此,本文只討論會導(dǎo)致結(jié)構(gòu)化工作流網(wǎng)的結(jié)構(gòu)出現(xiàn)缺陷的那些隱含任務(wù)。
?。玻?隱含任務(wù)分類
按照在模型中的位置及其特點,可以將結(jié)構(gòu)化工作流網(wǎng)中的隱含任務(wù)分成起始/結(jié)束點型、隱含路徑型、結(jié)構(gòu)轉(zhuǎn)換點型和子分支點型四大類。
起始/結(jié)束點型對應(yīng)于α #算法中的SIDE類型[7],是由出現(xiàn)在模型起始位置的與-分支點和出現(xiàn)在模型結(jié)束位置的與-匯合點形成的隱含任務(wù),如圖2(a)和(b)所示。其定義如下:
定義4(起始/結(jié)束點型隱含任務(wù)) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o)。當(dāng)隱含任務(wù)t∈H滿足下列條件之一時,稱其為起始/結(jié)束點型隱含任務(wù):
隱含路徑型對應(yīng)于α #算法中的SKIP和REDO類型,是單獨組成過程中的某條執(zhí)行路徑分支的隱藏任務(wù),如圖2(c)和(d)所示。其定義如下:
定義5(隱含路徑型隱含任務(wù)) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o)。稱隱含任務(wù)t∈H為隱含路徑型隱含任務(wù),當(dāng)?堝a,b∈T-H,a・?勱・t,t・?奐・b。
結(jié)構(gòu)轉(zhuǎn)換點型是由選擇結(jié)構(gòu)和并行結(jié)構(gòu)之間的轉(zhuǎn)換點形成的隱含任務(wù)。圖5是結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)的幾種情況,其中左邊是原始過程,右邊是用α算法挖掘?qū)?yīng)的日志得到的模型。其定義如下:
定義6(結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o)。當(dāng)隱含任務(wù)t∈H滿足下列條件之一時,稱其為結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù):
子分支點型是由選擇分支里的并行分支點形成的隱含任務(wù)。圖6是結(jié)構(gòu)轉(zhuǎn)換點的幾種情況,其中左邊是原始過程,右邊是用α算法挖掘?qū)?yīng)的日志得到的模型。其定義如下:
定義7(子分支點型隱含任務(wù)) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o)。稱隱含任務(wù)t∈H為子分支點型隱含任務(wù),當(dāng)其滿足下列條件之一:
?。?隱含任務(wù)的發(fā)現(xiàn)
在上一節(jié)中定義了幾種隱含任務(wù),它們的共同特點是會導(dǎo)致結(jié)構(gòu)化工作流網(wǎng)的結(jié)構(gòu)出現(xiàn)缺陷。因此,通過檢測挖掘模型中的結(jié)構(gòu)缺陷,就能夠發(fā)現(xiàn)這些隱含任務(wù)的存在,并加以彌補。本文采用α+[9]算法中次序關(guān)系作為檢測模型結(jié)構(gòu)缺陷的工具,其定義如下:
定義8(次序關(guān)系) N=(P,T,F,i,o)是合理工作流網(wǎng),W是N的一個日志,即W∈T*,a,b∈T,則有:
-a>Wb 當(dāng)且僅當(dāng)?堝σ=t1t2…tn,i∈{1,…,n-1}:σ∈W∧ti=a∧ti+1=b;
?。璦ΔWb 當(dāng)且僅當(dāng)?堝σ=t1t2…tn,i∈{1,…,n-2}:σ∈W∧ti=ti+2a=a∧ti+1=b;;
?。璦◇Wb 當(dāng)且僅當(dāng)aΔWb∨bΔWa;
?。璦→Wb 當(dāng)且僅當(dāng)a>Wb∧(b≯Wa∨a◇Wb);
?。璦#Wb 當(dāng)且僅當(dāng)aW≯b∧b≮Wa;
根據(jù)次序關(guān)系,就可以針對各類隱含任務(wù)的不同特點,分別找出它們的發(fā)現(xiàn)方法。因為α #算法中已經(jīng)給出了起始/結(jié)束型和隱含路徑型的隱含任務(wù)的檢測方法,因此本文只討論結(jié)構(gòu)轉(zhuǎn)換點型和子分支點型隱含任務(wù)的發(fā)現(xiàn)方法。
3.1 結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)的發(fā)現(xiàn)
結(jié)構(gòu)化工作流網(wǎng)中的結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)可以根據(jù)下面的定理發(fā)現(xiàn):
定理1 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o),W是其滿足→W和ΔW關(guān)系完備性的日志。則N中存在結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù),當(dāng)且僅當(dāng)下列條件之一被滿足:
?。ǎ保?堝a,b,c,d∈T,a#W b,d||W c,a→W c,a→W d,b→W c,a→W d;
?。ǎ玻?堝a,b,c,d∈T,a#W b,d||W c,a→W c,a→W d,b→W c,a→W d;
?。ǎ常?堝a,b,c,d∈T,a#W b,d||W c,a→W c,a→W d,b→W c,a→W d。
根據(jù)結(jié)構(gòu)化工作流網(wǎng)的定義和圖5,很容易證明該定理的正確性。詳細證明從略。
?。常?子分支點型隱含任務(wù)的發(fā)現(xiàn)
結(jié)構(gòu)化工作流網(wǎng)中的子分支點型隱含任務(wù)可以根據(jù)下面的定理發(fā)現(xiàn):
定理2 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o),W是其滿足→W 和ΔW 關(guān)系完備性的日志。則N中存在子分支點型隱含任務(wù),當(dāng)且僅當(dāng)下列條件之一被滿足:
?。ǎ保?堝a,b,c,d∈T,a→W b,a→W c,a→W b,b#W d,c#W d,b||Wc;
?。?)?堝a,b,c,d∈T,a→W d,b→W d,c→W d,a#W c,b#W c,a||W b。
根據(jù)結(jié)構(gòu)化工作流網(wǎng)的定義和圖6,很容易證明該定理的正確性。詳細證明從略。
3.3 隱含任務(wù)的檢測順序
由于過程可能同時存在多種類型的隱含任務(wù),一種隱含任務(wù)的存在可能會對另一種隱含的發(fā)現(xiàn)造成影響。因此各隱含任務(wù)的檢測必須符合一定的順序。
由于起始/結(jié)束點型隱含任務(wù)存在于模型的兩端,其他類型隱含任務(wù)的發(fā)現(xiàn)可能會依賴于它的正確發(fā)現(xiàn),因此應(yīng)該先進行起始/結(jié)束點型隱含任務(wù)的檢測。
結(jié)構(gòu)轉(zhuǎn)換點型的隱含任務(wù)本身是選擇結(jié)構(gòu)或者并行結(jié)構(gòu)的起始點或者結(jié)束點,而子分支點型隱含任務(wù)的檢測依賴于選擇結(jié)構(gòu)的起始點或結(jié)束點的存在。因此,結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)的檢測必須先于子分支點型隱含任務(wù)。
隱含路徑型隱含任務(wù)的正確檢測依賴于選擇結(jié)構(gòu)或者并行結(jié)構(gòu)的正確結(jié)束,因此應(yīng)該最后進行。
?。?基于結(jié)構(gòu)化工作流網(wǎng)的挖掘算法
4.1 子分支點型隱含任務(wù)發(fā)現(xiàn)算法
根據(jù)前面的討論,子分支點型隱含任務(wù)的發(fā)現(xiàn)算法Find Sub Branch IT如下:
定義9(Find Sub Branch IT算法) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o),W是其滿足→W和ΔW關(guān)系完備性的日志,RW是從W得到的所有次序關(guān)系集合。則子分支點型隱含任務(wù)的發(fā)現(xiàn)算法是:
?。ǎ保裕祝剑簦?堝σ∈W,t∈σ}
?。ǎ玻兀保剑ǎ幔?,B)|a∈TW∧B?奐TW∧(?坌b∈B∶a→Wb)∧(?坌b1,b2∈B∶b1||W b2)∧(?堝c∈TW∶a→Wc∧(?坌b∈B∶c#Wb))}
?。ǎ常?={(A,{b}|A?奐TW∧b∈TW∧(?坌a∈A∶ c#Wa)∧(?坌a1,a2∈A∶a1||W a2)∧(?堝c∈TW∶c→Wb∧(?坌a∈A∶ c#Wa))}
(4)X=X1∪X2
?。ǎ叮㏕Y={ty|?堝y∈Y}
?。ǎ罚㏑1={a→Wty|?堝y∈Y,y=(A,B),a∈A}
(8)R2={ty→Wb|?堝y∈Y,y=(A,B),b∈B}
?。ǎ梗㏑Y=R1∪R2
?。ǎ保埃㏕W=TW∪TY
(11)RW=RW∪RY
?。矗?結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)發(fā)現(xiàn)算法
根據(jù)前面的討論,結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)的發(fā)現(xiàn)算法Find Branch Connector IT如下:
定義9(Find Branch Connector IT算法) 已知結(jié)構(gòu)化工作流網(wǎng)N = (P,T,F(xiàn),i,0),W是其滿足和關(guān)系完備性的日志,RW是從得到的所有次序關(guān)系集合。則結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)的發(fā)現(xiàn)算法是:
(1)TW={t|?堝σ∈W,t∈σ}
?。ǎ玻兀保剑ˋ,B)|A∈TW∧B?奐TW∧(?坌a∈A,b∈B∶a→Wb)∧(?坌a1,a2∈A∶a1||W a2)∧(?坌b1,b2∈B∶b1||Wb2)}
?。ǎ常?={(A,B)|A?奐TW∧B∈TW∧(?坌a∈A,b∈B∶a→Wb)∧(?坌a1,a2∈A∶a1||W a2)∧(?坌b1,b2∈B∶b1#Wb2)}
?。?)X3={(A,B)|A?奐TW∧B∈TW∧(?坌a∈A,b∈B∶a→Wb)∧(?坌a1,a2∈A∶a1||W a2)∧(?坌b1,b2∈B∶b1#Wb2)}
?。?)X=X1∪X2∪X3
?。?)TY={ty|?堝y∈Y}
?。?)R1={a→Wty|?堝y∈Y,y=(A,B),a∈A}
?。?)R2={ty→Wb|?堝y∈Y,y=(A,B),b∈B}
(10)RY=R1∪R2
?。ǎ?)TW=TW∪TY
?。ǎ?)RW=RW∪RY
?。矗? 基于結(jié)構(gòu)化工作流網(wǎng)的隱含任務(wù)挖掘算法
最終得到的基于結(jié)構(gòu)化工作流網(wǎng)的隱含任務(wù)發(fā)現(xiàn)算法如下:
定義10(基于結(jié)構(gòu)化工作流網(wǎng)的隱含任務(wù)發(fā)現(xiàn)算法) 已知結(jié)構(gòu)化工作流網(wǎng)N=(P,T,F,i,o),W是其滿足→W和ΔW關(guān)系完備性的日志。則基于結(jié)構(gòu)化工作流網(wǎng)的隱含任務(wù)發(fā)現(xiàn)算法是:
?。ǎ保裕祝剑簦?堝σ∈W,t∈σ}
?。ǎ玻?gòu)造RW
?。ǎ常ǎ裕?,RW)=ConSideIT(TW,RW)
?。ǎ矗ǎ裕祝遥祝剑疲椋睿洌樱酰猓拢颍幔睿悖瑁桑裕ǎ裕?,RW)
(5)(TW,RW)=FindBranchConnectorIT(TW,RW)
?。ǎ叮ǎ裕?,RW)=ConIT(TW,RW)
?。ǎ罚㎞=α(TW,RW)
其中,Find Sub Branch IT和Find Branch Connector IT分別是前面定義的子分支點型和結(jié)構(gòu)轉(zhuǎn)換點型隱含任務(wù)發(fā)現(xiàn)算法,ConSideIT和ConIT分別是α#算法中定義的起始/結(jié)束點型和隱含路徑型隱含任務(wù)發(fā)現(xiàn)算法,α(TW,RW)是使用α算法構(gòu)造過程模型。
5 實驗評估
本文使用Java語言在ProM平臺[11]上實現(xiàn)了提出的基于結(jié)構(gòu)化工作流網(wǎng)的隱含任務(wù)發(fā)現(xiàn)算法,并對其進行了實驗驗證。實驗使用了18個手工構(gòu)造的過程實例進行。圖7顯示了實驗中所使用的一個實例,其中,圖7(a)是原始模型,圖7(b)是使用α#算法挖掘的結(jié)果。使用本文提出的算法,挖掘出的模型與圖7(a)中的模型完全相同。對其他實例的實驗也得到了類似的結(jié)果,從而證明了算法的正確性。
6 結(jié) 論
現(xiàn)有的過程挖掘算法大多無法正確挖掘包含隱含任務(wù)的過程日志,少數(shù)幾種能夠挖掘隱含任務(wù)的算法也不夠完善,往往導(dǎo)致挖掘出來的過程模型過分復(fù)雜,難以分析和理解。針對這一缺陷,本文通過深入分析研究結(jié)構(gòu)化工作流網(wǎng)過程模型中可能出現(xiàn)的各類隱含任務(wù)及其特點,提出了一種基于結(jié)構(gòu)化工作流網(wǎng)的挖掘算法,可以較好地挖掘包含隱含任務(wù)的結(jié)構(gòu)化工作流網(wǎng)過程日志,因此能夠更好地幫助用戶分析和理解過程執(zhí)行流結(jié)構(gòu)。作為一種自動化的建模工具,該算法適用于需要應(yīng)用過程分析和建模的各類場合。本文通過實驗評估驗證了算法的可行性和有效性。接下來的研究方向是在現(xiàn)有算法的基礎(chǔ)上繼續(xù)深入擴展其適用的建模語言范圍,從而進一步提高算法的實用性。