本發(fā)明屬于業(yè)務(wù)流程管理領(lǐng)域,涉及一種流程間的差別檢測方法,特別是一種基于特征的工廠制造流程差別檢測方法。
背景技術(shù):
業(yè)務(wù)流程管理技術(shù)涉及流程建模、流程間差別檢測、流程間相似度計(jì)算、流程重建等,能有效地提高公司的管理效率。由此,越來越多的流程模型被創(chuàng)建出來了。例如,服裝制造廠擁有載床生產(chǎn)流程、次品服裝入庫流程、客供品管理流程、記賬后發(fā)現(xiàn)采購面料質(zhì)量問題處理流程、樣衣打樣面輔料領(lǐng)用流程、生產(chǎn)退輔料處理流程、生產(chǎn)技術(shù)準(zhǔn)備業(yè)務(wù)流程、生產(chǎn)計(jì)劃流程、樣衣成本核算流程、設(shè)備科業(yè)務(wù)流程等。這些流程模型是工廠的重要資產(chǎn),有效地管理它們能給工廠帶來很大的效益。
現(xiàn)有流程差別檢測工作存在以下幾點(diǎn)不足:(1)將流程模型用流程結(jié)構(gòu)樹(pst,processstructuretree)來表示。pst采用思想是將流程分解為單入口單出口(sese,single-entry-single-exit)分片,把這些分片按照層次嵌套關(guān)系組裝一棵樹,樹中的每個葉子節(jié)點(diǎn)代表的是對應(yīng)流程模型中的邊。由于流程中的節(jié)點(diǎn)操作是最基本的操作,也是必不可少的,每次我們在進(jìn)行節(jié)點(diǎn)操作時都要從pst中的邊解析出節(jié)點(diǎn),這樣會浪費(fèi)時間。另外,節(jié)點(diǎn)操作不能很直觀地在pst上體現(xiàn)出來,如哪些節(jié)點(diǎn)被刪除或插入。(2)用自上而下的策略來尋找兩個流程對應(yīng)pst的最大共同子樹。若兩個pst的根節(jié)點(diǎn)不相同,則認(rèn)為這兩個模型是完全不一樣的。并且只找到最大共同子樹部分,其他相似的部分被忽略了,這在一定程度上會帶來額外的差別檢測開銷,如生成額外的差別操作。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中采用不合理的樹結(jié)構(gòu)來表示流程模型,無法找全兩個流程模型間的差別等缺點(diǎn),本發(fā)明提出了一種高效的、不遺漏差別的、不帶來額外差別開銷的基于特征的工廠制造流程間差別檢測算法。
基于特征的工廠制造流程差別檢測方法,包括以下步驟:
(1)輸入兩個待檢測差別的工廠制造流程模型;
(2)分別將兩個工廠制造流程模型轉(zhuǎn)化為其對應(yīng)的基于任務(wù)節(jié)點(diǎn)的流程結(jié)構(gòu)樹(taskbasedprocessstructuretree,tpst);
(3)對兩個tpst分別進(jìn)行分片,將每個分片用一個特征向量來表示并計(jì)算兩個tpst中所有可能匹配的分片對的相似度,得到初始分片匹配表f={(f1,f1’,sim1),(f2,f2’,sim2),…,(fi,fi’,simi)},其中相同類型的分片才有可能匹配;
(4)匹配分片、節(jié)點(diǎn),并將匹配結(jié)果加入匹配分片集合m和匹配節(jié)點(diǎn)集合n;
(5)判斷初始分片匹配表f是否為空,若不為空,則執(zhí)行步驟(4);否則,執(zhí)行步驟(6);
(6)生成兩個tpst之間的編輯序列;
進(jìn)一步,步驟(3)具體包括:
(3.1)將兩個tpst分別進(jìn)行分片,其中每個分片用一個由多個特征組成的特征向量來表示;
(3.2)給定來自兩個不同tpst的分片,計(jì)算它們對應(yīng)特征向量中最后一個特征之間的相似度;
(3.3)重寫兩個分片對應(yīng)的特征向量:將第一個分片對應(yīng)的特征向量的最后一個特征值替換為1,將第二個分片對應(yīng)的特征向量的最后一個特征值替換為(3.2)中得到的相似度;
(3.4)計(jì)算兩個分片之間的相似度,即它們對應(yīng)的特征向量之間的相似度,將這兩個分片及對應(yīng)的相似度寫入初始分片匹配表f;
(3.5)判斷兩個tpst中是否還有可能匹配但沒有計(jì)算相似度的分片對,若還有,則跳至步驟(3.2),否則,執(zhí)行步驟(4);
進(jìn)一步,步驟(3.1)中,分片對應(yīng)的特征向量為{type,sequencerate,looprate,xorrate,andrate,nodesequence}。每一個特征描述了分片的一個重要的特點(diǎn),其中type描述的是分片的類型:無序用0來表示,有序表示成1;sequencerate,looprate,xorrate,andrate分別表示順序、循環(huán)、選擇、并行四種類型的路由節(jié)點(diǎn)在該分片的子節(jié)點(diǎn)中的比率;nodesequence是一個字符串,依次記錄了根節(jié)點(diǎn)的類型(sequence、loop、xor、and)和從左到右的子節(jié)點(diǎn)的標(biāo)簽;
進(jìn)一步,步驟(3.2)中,兩個特征向量中最后一個特征,即兩個nodesequence:n1和n2之間的相似度用以下公式來計(jì)算:
在公式(1)中,mapnpdes指的是兩個nodesequence中匹配的節(jié)點(diǎn),|n1|和|n2|則是兩個nodesequence各自的長度。如果n1和n2所對應(yīng)的分片是無序的,則mapnpdes是n1和n2的交集;否則,n1和n2的最長共同子序列是mapnpdes。
進(jìn)一步,步驟(3.3)的做法是為了體現(xiàn)兩個特征離相同還有多少差距;
進(jìn)一步,步驟(3.4)中,兩個特征向量f1,f2的相似度用以下的公式來計(jì)算:
公式(2)用于計(jì)算兩個特征向量之間的距離,基于距離值的公式(3)則計(jì)算兩個特征向量之間的相似度。在公式(2)中,featurei表示的是特征向量中的第i個特征值,featurei1、featurei2分別指的是第一個、第二個流程模型中對應(yīng)特征向量第i個特征值;
進(jìn)一步,步驟(4)具體包括:
(4.1)在初始分片匹配表f中選出當(dāng)前使得增加兩個tpst結(jié)構(gòu)相似度最大的分片對(fa,fb);
(4.2)判斷匹配分片fa和fb得到整體結(jié)構(gòu)相似度是否比上一輪的整體結(jié)構(gòu)相似度大,若是,則執(zhí)行步驟(4.3);否則,則執(zhí)行步驟(6);
(4.3)在分片匹配集合m中加入(fa,fb)并在f中刪除包含已匹配分片的分片對,找出匹配分片對(fa,fb)中的匹配節(jié)點(diǎn)并加入匹配節(jié)點(diǎn)集合n;
進(jìn)一步,步驟(6)中的編輯序列是由一系列編輯操作組成的,包括刪除分片、插入分片、移動分片、刪除節(jié)點(diǎn)、插入節(jié)點(diǎn),具體包括:
(6.1)兩個tpst中不匹配的分片為刪除和插入分片;
(6.2)兩個匹配分片的父節(jié)點(diǎn)之間沒有匹配的話,則該分片對為移動分片;
(6.3)匹配分片對中的非匹配節(jié)點(diǎn)為刪除和插入節(jié)點(diǎn)。
本發(fā)明的技術(shù)構(gòu)思是:在檢測兩個工廠制造流程模型間的差別之前,先將流程模型轉(zhuǎn)換為其對應(yīng)的樹結(jié)構(gòu),能降低計(jì)算復(fù)雜度;在檢測兩個工廠制造流程模型間的差別時,采用分治策略對流程模型對應(yīng)的樹結(jié)構(gòu)進(jìn)行分片,并將每個分片用一個特征向量來表示,使得算法的設(shè)計(jì)更為靈活,提高檢測的效率。
本發(fā)明的優(yōu)點(diǎn)是:采用合理的樹結(jié)構(gòu)來表示流程模型,用特征向量來表示樹分片的方式更加靈活,用分治的策略來進(jìn)行差別檢測大大地提高了效率,解決了計(jì)算復(fù)雜度高的問題。
附圖說明
圖1為本發(fā)明的總的流程圖
圖2為兩個工廠輔料加工流程模型圖實(shí)例
圖3為圖2兩個流程模型對應(yīng)的tpst
圖4為圖3兩個tpst用特征向量表示的結(jié)果圖
圖5為圖4的分片匹配結(jié)果圖
具體實(shí)施方式
實(shí)施例一
參考附圖1
基于特征的工廠制造流程差別檢測方法,包括以下幾個步驟:
(1)輸入兩個待檢測差別的工廠制造流程模型;
(2)分別將兩個工廠制造流程模型轉(zhuǎn)化為其對應(yīng)的基于任務(wù)節(jié)點(diǎn)的流程結(jié)構(gòu)樹(taskbasedprocessstructuretree,tpst);
(3)對兩個tpst分別進(jìn)行分片,并計(jì)算兩個tpst中所有可能匹配的分片對的相似度,得到初始分片匹配表f={(f1,f1’,sim1),(f2,f2’,sim2),…,(fi,fi’,simi)},其中相同類型的分片才有可能匹配,具體包括:
(3.1)將兩個tpst分別進(jìn)行分片,其中每個分片用一個由多個特征組成的特征向量來表示;
(3.2)給定來自兩個不同tpst的分片,計(jì)算它們對應(yīng)特征向量中最后一個特征之間的相似度;
(3.3)重寫兩個分片對應(yīng)的特征向量:將第一個分片對應(yīng)的特征向量的最后一個特征值替換為1,將第二個分片對應(yīng)的特征向量的最后一個特征值替換為(3.2)中得到的相似度;
(3.4)計(jì)算兩個分片之間的相似度,即它們對應(yīng)的特征向量之間的相似度,將這兩個分片及對應(yīng)的相似度寫入初始分片匹配表f;
(3.5)判斷兩個tpst中是否還有可能匹配但沒有計(jì)算相似度的分片對,若還有,則跳至步驟(3.2),否則,執(zhí)行步驟(4);
(4)匹配分片、節(jié)點(diǎn),具體包括:
(4.1)在初始分片匹配表f中選出當(dāng)前使得增加兩個tpst結(jié)構(gòu)相似度最大的分片對(fa,fb);
(4.2)判斷匹配分片fa和fb得到整體結(jié)構(gòu)相似度是否比上一輪的整體結(jié)構(gòu)相似度大,若是,則執(zhí)行步驟(4.3);否則,則執(zhí)行步驟(6);
(4.3)在分片匹配集合m中加入(fa,fb)并在f中刪除包含已匹配分片的分片對,找出匹配分片對(fa,fb)中的匹配節(jié)點(diǎn)并加入匹配節(jié)點(diǎn)集合n;
(5)判斷初始分片匹配表f是否為空,若不是,則執(zhí)行步驟(4.1);否則,執(zhí)行步驟(6);
(6)生成兩個tpst之間的編輯序列,具體包括:
(6.1)兩個tpst中不匹配的分片為刪除和插入分片;
(6.2)兩個匹配分片的父節(jié)點(diǎn)之間沒有匹配的話,則該分片對為移動分片;
(6.3)匹配分片對中的非匹配節(jié)點(diǎn)為刪除和插入節(jié)點(diǎn);
實(shí)施例二
參考附圖2,3,4,5
圖2表示兩個工廠輔料加工流程模型圖實(shí)例:process1、process2。由于頁面的限制,使用字母來代表任務(wù)節(jié)點(diǎn)的意義:a表示“成品驗(yàn)收”,b表示“包裝”,e表示“配料加工”,f表示“剪裁”,g表示“表面處理”,h表示“分裝”,i表示“配送至包裝部門”,x表示“成品檢驗(yàn)”,y表示“上色”。
為了得到process1和process2的差別,我們需要進(jìn)行以下幾個步驟:
(1)輸入兩個待檢測差別的輔料加工流程模型:process1和process2,這兩個流程模型是用petri網(wǎng)建模的,如圖2所示;
(2)分別將process1和process2轉(zhuǎn)化為其對應(yīng)的基于任務(wù)節(jié)點(diǎn)的流程結(jié)構(gòu)樹(tpst):tpst1、tpst2,如圖3所示,每一個路由節(jié)點(diǎn)除了本身的類型(sequnece、xor、and、loop)之外還有自己的id,如tpst1中xor節(jié)點(diǎn)的id為b0;
(3)對兩個tpst1、tpst2分別進(jìn)行分片,并計(jì)算兩個tpst中所有可能匹配的分片對的相似度,得到初始分片匹配表f={(f1,f1’,sim1),(f2,f2’,sim2),…,(fi,fi’,simi)},其中相同類型的分片才有可能匹配,該步驟具體包括:
(3.1)將tpst1、tpst2分別進(jìn)行分片,其中每個分片用一個由多個特征組成的特征向量fv={type,sequencerate,looprate,xorrate,andrate,nodesequence}來表示:如圖3所示,tpst1分成f1-f4四個分片,其中f1和f4是無序分片,f2和f3是有序分片;tpst2分成g1-g4四個分片,其中g(shù)1和g4是無序分片,g2和g3是有序分片;每個分片用其對應(yīng)的特征向量表示,如圖4所示,每一個分片用一個圓形的節(jié)點(diǎn)表示,其對應(yīng)的特征向量與之用一條線進(jìn)行連接,如f1的特征向量為[0,1,0,0,0,“xor,sequence,sequence”];
(3.2)給定一個tpst1、tpst2的分片對,計(jì)算它們對應(yīng)特征向量中最后一個特征之間的相似度:以f3與g3為例,f3對應(yīng)特征向量中最后一個特征為“sequence,e,and,h,”g3對應(yīng)特征向量中最后一個特征為“sequence,e,and,i,則f3與g3對應(yīng)特征向量中最后一個特征向量之間的相似度為0.8;
(3.3)重寫這兩個分片對應(yīng)的特征向量:將tpst1的最后一個特征值替換為1,tpst2替換為(3.2)中得到的相似度,以f3與g3為例,f3的特征向量為[1,0,0,0,1/3,1],g3的特征向量為[1,0,0,0,1/3,0.75];
(3.4)計(jì)算這兩個分片之間的相似度,即它們對應(yīng)的特征向量之間的相似度,將這兩個分片及對應(yīng)的相似度寫入初始分片匹配表f:以f3與g3為例,它們的相似度為0.8,f={(f3,g3,0.8)};
(3.5)計(jì)算所有可能匹配的分片對及其相似度,得到初始分片匹配表,如圖5所示,其中“/”表示對應(yīng)的兩個分片類型不相同,不能進(jìn)行匹配;
(4)匹配分片、節(jié)點(diǎn):如圖5所示,首先f1與g1匹配起來能使得整體結(jié)構(gòu)相似度增加最多,則選擇匹配f1、g1并將它們加入分片匹配集合m={(f1,g1)},隨后將初始匹配表中f1所在列和g1所在行都刪除。在這對匹配分片對(f1,g1)中,匹配的節(jié)點(diǎn)為xor、sequence、sequence,由此匹配節(jié)點(diǎn)集合n為{b0-b2,p0-p2,p1-p3},其中“-”表示匹配關(guān)系;接著,f4和g4匹配可以使得第二輪的整體結(jié)構(gòu)相似度增加最多,將它們加入分片匹配集合m={(f1,g1),(f4,g4)},隨后將初始匹配表中f4所在列和g4所在行都刪除,找到f4和g4的匹配節(jié)點(diǎn)并加入n={b0-b2,p0-p2,p1-p3,b1-b3,f-f,g-g};最后,將f3和g3加入m,使得m={(f1,g1),(f4,g4),(f3,g3)},n={b0-b2,p0-p2,p1-p3,b1-b3,f-f,g-g,e-e},在n中不會出現(xiàn)重復(fù)的匹配節(jié)點(diǎn)對;
(6)生成兩個tpst之間的編輯序列,具體包括:
(6.1)tpst1中不匹配的分片為刪除分片,tpst2中不匹配的分片為插入分片:f2為刪除分片,g2為插入分片;
(6.2)兩個匹配分片的父節(jié)點(diǎn)之間沒有匹配的話,則該分片對為移動分片:此例中,匹配的分片對的父節(jié)點(diǎn)都是匹配的,所以都不需要進(jìn)行移動;
(6.3)匹配分片對中的非匹配節(jié)點(diǎn)為刪除和插入節(jié)點(diǎn):f3分片中的h節(jié)點(diǎn)為刪除節(jié)點(diǎn),g3分片中的i節(jié)點(diǎn)為插入節(jié)點(diǎn)。
由此,tpst1、tpst2之間的差別為:刪除分片f2,插入分片g2,刪除節(jié)點(diǎn)h,插入節(jié)點(diǎn)i。