本發(fā)明屬于業(yè)務流程管理領域,涉及流程模型間的相似度計算方法,特別是一種基于匈牙利算法的工廠流程模型相似檢索方法。
背景技術:
隨著業(yè)務流程管理技術的發(fā)展,越來越多的流程模型創(chuàng)建,如產(chǎn)品制造工廠就擁有大量流程模型,包括生產(chǎn)管理流程、采購流程、供應商選擇/評價流程、物料管理流程、成品檢驗流程、不合格品管理流程、樣品作業(yè)流程、產(chǎn)品再加工流程等。這么多流程模型對制造工廠來說是一大筆寶貴的財富,對其進行有效地管理能為工廠帶來巨大的效益。檢索相似流程就是一種有意義的流程管理技術,指的是給定一個檢索流程模型,該流程模型將在工廠制造流程模型庫中找到它的相似流程。在對工廠制造流程模型庫中添加一個新的制造流程模型之前,要先在流程庫中檢索出新流程模型的相似流程并判斷這些相似流程是否與新流程模型重復了,這樣可以避免冗余。
隨著工廠制造流程庫規(guī)模的不斷擴大,現(xiàn)有檢索流程方法在效率和準確率方面的弊端日益突出。首先,現(xiàn)有流程檢索方法在尋找匹配節(jié)點的過程中包含多次計算圖編輯距離的步驟,導致流程檢索的時間消耗變得很大。其次,現(xiàn)有流程檢索方法均側(cè)重于特定的應用場景問題,僅對流程模型中表示實際業(yè)務的任務元素進行處理,而忽略或簡化了流程間非任務元素的匹配過程,因此這些方法尚未能在實際中得到有效地應用。最后,在一些流程檢索方法中,對非任務節(jié)點的相似度衡量標準存在問題,使得對兩個流程的相似度衡量存在問題,從而在某種程度上降低了流程檢索的質(zhì)量。
技術實現(xiàn)要素:
為了解決現(xiàn)有流程檢索方法中存在的問題,本發(fā)明首先重新定義了兩個petri網(wǎng)建模的流程模型的庫所之間的上下文環(huán)境相似度,不僅考慮庫所對周邊相同變遷個數(shù),而且考慮了庫所對之間相同的執(zhí)行路徑,這樣能在某種程度上提高兩個流程的相似度計算的準確性,從而改善流程檢索的質(zhì)量。其次,本發(fā)明采用匈牙利算法來找到兩個流程模型間的最佳庫所節(jié)點對組合,引入匈牙利算法,不僅能保證找到的兩個流程間的匹配庫所對組合是全局最優(yōu)的,而且耗時非常少,大大提高了流程檢索的效率。最后,本發(fā)明設計了一種適用于petri網(wǎng)建模的流程模型間相似度衡量標準,該衡量標準更加簡潔明了。
基于匈牙利算法的工廠制造流程模型相似檢索方法,包括以下步驟:
(1)輸入要對工廠制造流程庫進行檢索的檢索流程q,將q用petri網(wǎng)來建模并解析出q的變遷集合、庫所集合;
(2)取出工廠制造流程庫中的一個未處理過的流程模型c,用petri網(wǎng)來建模并解析出c的變遷集合、庫所集合;
(3)對q與c之間進行變遷節(jié)點的匹配,得到匹配變遷集合;
(4)基于匹配變遷集合,對q與c進行庫所節(jié)點的匹配;
(5)計算q與c之間的相似度并將其加入到相似度集合s中;
(6)判斷流程庫中是否還有未處理的工廠制造流程模型,若還有,則執(zhí)行步驟(2),否則,執(zhí)行步驟(7);
(7)在相似度集合s中選出前k個相似度最大的工廠制造流程模型,其中k是由用戶設置的。
進一步,在步驟(3)中,兩個工廠制造流程模型q和c間的變遷節(jié)點對應的標簽(即變遷節(jié)點的名稱)若相同,則它們能匹配,否則不能進行匹配。
進一步,步驟(4)具體包括:
(4.1)計算q與c中所有可能匹配的庫所對的相似度,得到一個初始庫所匹配表;
(4.2)用匈牙利算法找出最佳庫所匹配對的組合;
進一步,在步驟(4.1)中,兩個庫所p、p’間的相似度由以下公式來進行計算:
其中,·p表示邊流入庫所p的所有變遷的集合,稱之為庫所p的前集;p·則表示邊從庫所p流出的所有變遷的集合,稱之為庫所p的后集。|·p∩·p’|+|p·∩p·’|代表的是p、p’的周圍相同變遷個數(shù)?!×p·表示的是庫所p的前集與后集的笛卡爾積,且·p×p·中每一個元素代表的是通過庫所p的一個路徑,因此|(·p×p·)∩(·p’×p’·)|指的是庫所p與庫所p’的共同路徑個數(shù)。
進一步,在步驟(4.2)中,初始庫所匹配表記錄的是兩個工廠制造流程模型間所有庫所對組合的相似度,其實質(zhì)是一個全局的庫所相似度矩陣。在完成步驟(4.1)后,將初始庫所匹配表作為匈牙利算法的輸入。使用匈牙利算法可以找到兩個流程圖中庫所相似度之和最大的庫所匹配對組合。在有些情況下,庫所相似度之和最大的值同時存在多個,即相同的相似度之和但對應不同的庫所匹配對組合。此時,我們計算這些庫所對組合的圖編輯距離,選擇圖編輯距離最小的庫所對組合作為兩個流程圖間最終的庫所匹配對。
進一步,在步驟(5)中,兩個用petri網(wǎng)建模的工廠制造流程模型g1,g2用以下公式來計算相似度:
其中,m指的是經(jīng)過步驟(4.2)得到的兩個模型間的庫所匹配結果,p1,p2分別指的是g1、g2中的庫所集合。
附圖說明
圖1為本發(fā)明的總的流程圖
圖2為初始庫所匹配表
圖3為兩個模具制造流程模型的相似度計算實例圖
具體實施方式
實施例一
參考附圖1
(1)輸入要對工廠制造流程庫進行檢索的檢索流程q,將q用petri網(wǎng)來建模并解析出q的變遷集合、庫所集合;
(2)取出工廠制造流程庫中的一個未處理過的流程模型c,用petri網(wǎng)來建模并解析出c的變遷集合、庫所集合;
(3)對q與c之間進行變遷節(jié)點的匹配,得到匹配變遷集合;
(4)基于匹配變遷集合,對q與c進行庫所節(jié)點的匹配,該步驟由以下步驟組成:
(4.1)計算q與c中所有可能匹配的庫所對的相似度,得到一個初始庫所匹配表;
(4.2)用匈牙利算法找出最佳庫所匹配對的組合;
(5)計算q與c之間的相似度并將其加入到相似度集合s中;
(6)判斷流程庫中是否還有未處理的工廠制造流程模型,若還有,則執(zhí)行步驟(2),否則,執(zhí)行步驟(7);
(7)在相似度集合s中選出前k個相似度最大的工廠制造流程模型,其中k是由用戶設置的。
實施例二
參考附圖2,3
此處只展示本發(fā)明的核心部分,即計算兩個工廠制造流程模型間的相似度。圖3的最上邊部分是兩個流程模型process1、process2,它們代表的是兩個用petri網(wǎng)建模的模具制造廠的模具制造流程,其中a表示“材料準備”,b表示“打磨”,c表示“拋光”,d表示“切割”,e表示“組裝”,s和s’表示開始,e和e’表示結束,p1表示“主體材料已準備好”,p2表示“主體材料已完成”,p3表示“配件材料已準備好”,p4表示“配件材料已準備好”,p1’表示“開始打造主體材料”,p2’表示“主體材料打造完畢”,p3’表示“開始打造配件材料”,p4’表示“配件材料打造完畢”。
計算process1、process2的相似度的步驟如下:
(1)對process1、process2分別進行解析,得到process1的變遷集合為{a,b,c,d,e},庫所集合為{p1,p2,p3,p4},process2的變遷集合為{a,b,c,d,e},庫所集合為{p1,p2,p3,p4};
(2)對process1、process2進行變遷節(jié)點匹配,結果為{a-a,b-b,c-c,d-d,e-e},其中“-”表示匹配;
(3)對process1、process2進行庫所節(jié)點匹配,具體包括:
(3.1)計算process1、process2中所有可能匹配的庫所對的相似度,并得到一張初始庫所匹配表,該表如圖2所示;假設流程process1包含n個庫所,流程process2包含m個庫所,且m<n,則橫向虛線框中是流程process1的所有庫所(由pj’表示),右下角虛線框中每一列鏈表包含了流程process2的所有庫所,由pi表示;庫所匹配表剩余部分中,位置(i,j)上存儲的是process1的第j個庫所與process2的第i個庫所間的上下文環(huán)境相似度;
僅考慮對兩個流程虛線框中的庫所進行匹配,由于process1與process2包含的庫所數(shù)目一樣多,因此可將process2的庫所作為行,process1的庫所作為列,根據(jù)公式(1)分別計算所有庫所對的相似度,如:sim(p1,p1’)=3/5,sim(p4,p3’)=0,完成一個全局庫所匹配表的初始化;
(3.2)將初始庫所匹配表作為匈牙利算法的輸入,在此例中匈牙利算法的輸出只有一組:{(p1,p1’),(p2,p2’),(p3,p3’),(p4,p4’)};
(4)根據(jù)公式(2)對process1、process2進行相似度計算:sim(process1,process2)=0.8。