本發(fā)明屬于業(yè)務流程管理領域,涉及流程模型間的差別檢測方法,特別是一種基于鄰接矩陣的工廠制造流程模型差別檢測方法。
背景技術:
隨著業(yè)務流程模型管理(businessprocessmanagement,bpm)技術的發(fā)展,越來越多的工廠開始創(chuàng)建自己的流程模型庫。如一個模具工廠就擁有大量的流程模型,包括模具制造、質(zhì)量檢查、調(diào)度安排、車間加工、過程監(jiān)控等流程。一個家電制造工廠涉及的流程模型有電視制造流程、冰箱制造流程、空調(diào)制造流程、電扇制造流程等。這些流程模型是工廠的重要資產(chǎn),有效地管理可以為工廠提高效率、增加利潤。流程模型差別檢測作為一種流程模型管理技術在業(yè)務流程領域越來越重要:給定兩個流程模型,通過比較得他們之間的差別,并將差別反饋給流程設計人員。流程分析人員可以通過該差別找到流程執(zhí)行效率低下的原因并對流程進行重新設計等其他操作來改進流程模型的執(zhí)行效率。傳統(tǒng)上,人為地對兩個流程模型進行比較并找出差別,然而該做法耗時長、效率低,差別的結(jié)果會因人而異。由此,迫切需要一種自動化的技術來檢測兩個流程模型間的差別。
技術實現(xiàn)要素:
為了能夠自動、高效、準確、快速地找出兩個工廠制造流程模型間的差別,本發(fā)明提出一種基于鄰接矩陣的差別檢測算法。將流程模型轉(zhuǎn)化成一個鄰接矩陣并將流程模型間的差別檢測轉(zhuǎn)換為其對應的鄰接矩陣之間的差別檢測,打破了只面向兩個相似流程進行差別檢測的局限性,將比較范圍擴大到所有的流程模型,大大提高了實際的可用性。
基于鄰接矩陣的工廠制造流程模型差別檢測方法,包括以下步驟:
(1)輸入兩個用petri網(wǎng)建模的工廠制造流程模型,將流程模型中的變遷、庫所節(jié)點和邊解析出來;
(2)元素匹配,即找出第一個流程模型中與第二個流程模型中的對等元素;
(3)選取其中的一組元素匹配方式,基于該匹配方式建立兩個流程模型對應的鄰接矩陣,將兩個鄰接矩陣相減,得到該匹配方式對應的差別矩陣;
(4)判斷是否還有其他的元素匹配方式,若有,則跳至步驟(3),否則執(zhí)行步驟(5);
(5)n種匹配方式對應n個差別矩陣,選擇其中的最優(yōu)差別矩陣來表示兩個流程模型的差別;
進一步,步驟(2)具體包括:
(2.1)變遷匹配,即找出兩個流程模型中變遷標簽相同的變遷節(jié)點對集合{(t1,t1’),(t2,t2’),…,(ti,ti’)},其中ti是第一個流程模型中的變遷節(jié)點,ti’是第二個流程模型中的變遷節(jié)點;
(2.2)庫所匹配,即找出兩個流程模型中對等的庫所節(jié)點對{(p1,p1’),(p2,p2’),…,(pi,pi’)}。一個庫所的上下文環(huán)境由它的入變遷集合和出變遷集合組成:{{入變遷集合},{出變遷集合}},即流入和流出該庫所的變遷集合;兩個庫所節(jié)點能否映射由它們的入變遷交集集合和出變遷交集集合決定;
進一步,所述的步驟(2.2)具體包括:
(2.2.1)計算兩個流程模型中所有可能匹配的庫所對(pi,pj)的入變遷交集集合和出變遷交集集合:{{入變遷交集集合},{出變遷交集集合}},其中pi是第一個流程模型的一個庫所節(jié)點,pj是第二個流程模型的一個庫所節(jié)點;
(2.2.2)對于入變遷交集集合和出變遷交集集合都不為空的庫所對,按入變遷交集數(shù)乘以出變遷交集數(shù)的值從大到小進行匹配,已匹配過的庫所節(jié)點不能再次進行匹配;
(2.2.3)對于入變遷交集集合和出變遷交集集合其中有一個為空的庫所對,按不為空的集合中變遷數(shù)目從大到小進行匹配,已匹配過的庫所節(jié)點不能再次進行匹配;
(2.2.4)將匹配的變遷對集合與庫所對集合進行并集操作,得到元素匹配集合;
(2.2.5)重復(2.2.2)至(2.2.4)找出n(n≥1)種元素匹配方式;
進一步,步驟(2.2.5)會得到n(n>=1)種元素匹配方式。這是因為在(2.2.2)中可能會存在相同的入變遷交集數(shù)目乘以出變遷交集數(shù)目對應多個庫所對的情況,此時選擇那個庫所對進行匹配是隨機的。同樣,在(2.2.3)中同樣可能出現(xiàn)存在相同的不為0的變遷交集數(shù)目對應多個庫所對的情況。雖然優(yōu)先選擇哪個庫所對進行匹配是隨機的,但是本發(fā)明會把所有的匹配情況都找出來。
進一步,在步驟(3)中,假設兩個工廠制造流程模型分別為p1(擁有n個庫所節(jié)點和m個變遷節(jié)點)和p2(擁有x個庫所節(jié)點和y個變遷節(jié)點),p1與p2的匹配庫所對數(shù)為a,匹配變遷數(shù)為b,則它們對應的鄰接矩陣是(n+x-a+m+y-b)×(n+x-a+m+y-b)的矩陣。n+x-a+m+y-b表示{匹配的庫所對集合}∪{兩個流程模型中未匹配的庫所集合}∪{匹配的變遷集合}∪{兩個流程模型中未匹配的變遷集合}。鄰接矩陣中的內(nèi)容a[i][j]表示第i個節(jié)點和第j個節(jié)點之間是否存在有向邊,若存在有向邊則a[i][j]=1,否則a[i][j]=0。為了得到p1與p2對應的鄰接矩陣a1,a2,需要分別填充鄰接矩陣中的內(nèi)容a1[i][j]和a2[i][j]。將兩個流程模型對應的鄰接矩陣a1,a2相減,得到表示兩者差別的鄰接矩陣a,a中的元素共有-1、0、1三種情況,-1表示插入邊,即a2中對應兩個節(jié)點之間有邊而a1沒有,0表示a1、a2中對應兩個節(jié)點之間都有邊,1表示刪除邊,即a1種對應兩個節(jié)點之間有邊而a2沒有。
進一步,所述的步驟(5)具體包括:
(5.1)分別計算n個差別矩陣中的元素絕對值之和;
(5.2)選擇和最小的差別矩陣。
本發(fā)明的技術構(gòu)思是:在計算兩個工廠制造流程模型的差別之前,先找到流程模型間的匹配元素,保證匹配元素的準確性。由于該步驟是流程比較的首要步驟,因此該步驟的準確率直接影響后面的差別檢測準確率。在計算兩個流程模型的差別時,將流程模型轉(zhuǎn)換為對應的鄰接矩陣,這樣的方式適用于計算任意兩個流程模型之間的差別而非只適用于兩個相似流程模型,使得本發(fā)明的使用范圍更廣。
本發(fā)明的優(yōu)點是:打破了只面向兩個相似流程進行差別檢測的局限性,將比較范圍擴大到所有的流程模型,大大提高了實際的可用性。
附圖說明
圖1為本發(fā)明的總的流程圖
圖2為兩個工廠制造流程模型間庫所匹配案例圖
圖3為圖2中兩個工廠制造流程模型所有可能的匹配情況圖
圖4為圖2中兩個工廠制造流程模型間差別計算案例圖,圖4a~圖4d分別是基于匹配1~4的鄰接矩陣。
具體實施方式
實施例一
參考附圖1
基于鄰接矩陣的工廠制造流程模型差別檢測方法,包括以下幾個步驟:
(1)輸入兩個用petri網(wǎng)建模的工廠制造流程模型,將流程模型中的變遷、庫所節(jié)點和邊解析出來;
(2)元素匹配,即找出第一個流程模型中與第二個流程模型中的對等元素,具體包括:
(2.1)變遷匹配,即找出兩個流程模型中變遷標簽相同的變遷節(jié)點對集合{(t1,t1’),(t2,t2’),…,(ti,ti’)},其中ti是第一個流程模型中的變遷節(jié)點,ti’是第二個流程模型中的變遷節(jié)點;
(2.2)庫所匹配,即找出兩個流程模型中對等的庫所節(jié)點對{(p1,p1’),(p2,p2’),…,(pi,pi’)}。一個庫所的上下文環(huán)境由它的入變遷集合和出變遷集合組成:{{入變遷集合},{出變遷集合}},即流入和流出該庫所的變遷集合;兩個庫所節(jié)點能否映射由它們的入變遷交集集合和出變遷交集集合決定;找到匹配的庫所對需要執(zhí)行以下步驟:
(2.2.1)計算兩個流程模型中所有可能匹配的庫所對(pi,pj)的入變遷交集集合和出變遷交集集合:{{入變遷交集集合},{出變遷交集集合}},其中pi是第一個流程模型的一個庫所節(jié)點,pj是第二個流程模型的一個庫所節(jié)點;
(2.2.2)對于入變遷交集集合和出變遷交集集合都不為空的庫所對,按入變遷交集數(shù)乘以出變遷交集數(shù)的值從大到小進行匹配,已匹配過的庫所節(jié)點不能再次進行匹配;
(2.2.3)對于入變遷交集集合和出變遷交集集合其中有一個為空的庫所對,按不為空的集合中變遷數(shù)目從大到小進行匹配,已匹配過的庫所節(jié)點不能再次進行匹配;
(2.2.4)將匹配的變遷對集合與庫所對集合進行并集操作,得到元素匹配集合;
(2.2.5)重復(2.2.2)至(2.2.4)找出n(n≥1)種元素匹配方式;
(3)選取其中的一組元素匹配方式,基于該匹配方式建立兩個流程模型對應的鄰接矩陣,將兩個鄰接矩陣相減,得到該匹配方式對應的差別矩陣;
(4)判斷是否還有其他的元素匹配方式,若有,則跳至步驟(3),否則執(zhí)行步驟(5);
(5)n種匹配方式對應n個差別矩陣,選擇其中的最優(yōu)差別矩陣來表示兩個流程模型的差別,具體包括:
(5.1)分別計算n個差別矩陣中的元素絕對值之和;
(5.2)選擇和最小的差別矩陣。
實施例二
參考附圖2、3、4
圖2表示兩個工廠制造流程模型間庫所匹配案例圖。最上面是待計算差別的兩個用petri網(wǎng)建模的模具廠制造模具的流程模型:process1、process2。由于空間的限制,我們用字母和數(shù)字的組合來代表節(jié)點表示的意義:t1表示“材料準備”,t2表示“打磨”,t3表示“拋光”,t4表示“切割”,t5表示“組裝”,s和s’表示開始,e和e’表示結(jié)束,p1表示“主體材料已準備好”,p2表示“主體材料已完成”,p3表示“配件材料已準備好”,p4表示“配件材料已準備好”,p1’表示“開始打造主體材料”,p2’表示“主體材料打造完畢”,p3’表示“開始打造配件材料”,p4’表示“配件材料打造完畢”。
為了得到這兩個流程模型之間的差別,需要執(zhí)行以下幾個步驟:
(1)輸入process1、process2,將它們的變遷、庫所節(jié)點和邊解析出來,得到process1的變遷節(jié)點集合為{t1,t2,t3,t4,t5},庫所節(jié)點集合為{s,p1,p2,p3,p4,e},邊的集合為{s→t1,t1→p1,t1→p3,p1→t2,p1→t3,t2→p2,t3→p2,p2→t5,p3→t4,t4→p4,p4→t5,t5→e};process2的變遷節(jié)點集合為{t1,t2,t3,t4,t5},庫所節(jié)點集合為{s’,p1’,p2’,p3’,p4’,e’},邊的集合為{s’→t1,t1→p1’,t1→p3’,p1’→t2,p3’→t3,t2→p2’,t3→p4’,p2’→t5,p3’→t4,t4→p4’,p4’→t5,t5→e’};
(2)元素匹配,即找出process1中與process2中的對等元素,具體還包括:
(2.1)變遷匹配,即找出process1、process2中變遷標簽相同的變遷節(jié)點對集合,為{t1-t1,t2-t2,t3-t3,t4-t4,t5-t5},其中“-”表示匹配的關系;
(2.2)庫所匹配,即找出兩個流程模型中對等的庫所節(jié)點對{(p1,p1’),(p2,p2’),…,(pi,pi’)};一個庫所的上下文環(huán)境由它的入變遷集合和出變遷集合組成:{{入變遷集合},{出變遷集合}},即流入和流出該庫所的變遷集合;兩個庫所節(jié)點能否映射由它們的入變遷交集集合和出變遷交集集合決定;找到匹配的庫所對需要執(zhí)行以下步驟:
(2.2.1)計算process1、process2中所有可能匹配的庫所對(pi,pj)的入變遷交集集合和出變遷交集集合:{{入變遷交集集合},{出變遷交集集合}},其中pi是第一個流程模型的一個庫所節(jié)點,pj是第二個流程模型的一個庫所節(jié)點;如p1的上下文環(huán)境為{{t1},{t2,t3}},p1’的上下文環(huán)境為{{t1},{t2}},p1和p1’的入變遷交集集合為{t1},出變遷交集集合為{t2};為了兩個流程模型中所有可能匹配的庫所對,我們建立了一張表稱為初始庫所匹配表,如從上往下第二部分所示:第一列中,s、pi(1≤i≤4)、e代表的是process1中的所有庫所,初始匹配表中右邊部分則代表process2中所有的庫所與process1中的所有庫所初始匹配的結(jié)果;單元格中的內(nèi)容由兩部分組成:process1中的一個庫所與process2中的一個庫所的入變遷交集集合和出變遷交集集合;
(2.2.2)對于入變遷集合交集和出變遷集合交集都不為空的庫所對,按入變遷交集數(shù)目乘以出變遷數(shù)目的值從大到小進行匹配,已匹配過的庫所節(jié)點不能再次進行匹配:可以先得到p1與p3’進行匹配,然后刪除p1和p3’所出現(xiàn)過的所有單元格;接著得到p2和p4’進行匹配,再刪除p2和p4’所出現(xiàn)過的所有單元格,由此,該階段結(jié)束,因為此時不存在入變遷集合交集和出變遷集合交集都不為空的庫所對;
(2.2.3)對于入變遷交集集合和出變遷交集集合其中有一個為空的庫所對,按不為空的集合中變遷數(shù)目從大到小進行匹配,已匹配過的庫所節(jié)點不能再次進行匹配:可以先得到匹配的庫所對為p3-p1’、p4-p2’、s-s’、e-e’,至此,該階段結(jié)束;
(2.2.4)將匹配的變遷對集合與庫所對集合進行并集操作,得到所有的元素匹配集合:{t1-t1,t2-t2,t3-t3,t4-t4,t5-t5,p1-p3’,p2-p4’,p3-p1’,p4-p2’,s-s’,e-e’};
(2.2.5)重復(2.2.2)至(2.2.4)找出4種元素匹配方式,如圖3所示:匹配方式1({t1-t1,t2-t2,t3-t3,t4-t4,t5-t5,p1-p1’,p2-p2’,p3-p3’,p4-p4’,s-s’,e-e’})、匹配方式2({t1-t1,t2-t2,t3-t3,t4-t4,t5-t5,p1-p3’,p2-p2’,p3-p1’,p4-p4’,s-s’,e-e’})、匹配方式3({t1-t1,t2-t2,t3-t3,t4-t4,t5-t5,p1-p1’,p2-p4’,p3-p3’,p4-p2’,s-s’,e-e’})、匹配方式4({t1-t1,t2-t2,t3-t3,t4-t4,t5-t5,p1-p3’,p2-p4’,p3-p1’,p4-p2’,s-s’,e-e’});
(3)選取其中的一組元素匹配方式:匹配方式1,基于該匹配方式建立兩個流程模型對應的鄰接矩陣,將兩個鄰接矩陣相減,得到該匹配方式對應的差別矩陣,如圖4a所示;
(4)判斷是否還有其他的元素匹配方式,若有,則跳至步驟(3),否則執(zhí)行步驟(5):依次找到匹配方式2、匹配方式3、匹配方式4并得到對應的差別矩陣,如圖4b,圖4c,圖4d所示;
(5)4種匹配方式對應4個差別矩陣,選擇其中的最優(yōu)差別矩陣來表示兩個流程模型的差別,具體包括:
(5.1)計算4個差別矩陣中的元素絕對值之和分別為4、6、6、8;
(5.2)選擇和最小的差別矩陣,即選擇圖4a中的差別矩陣來表示process1和process2的差別。