專利名稱:一種利用基于關(guān)聯(lián)規(guī)則的遺傳算法進(jìn)行儀表設(shè)計的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于遺傳算法領(lǐng)域,特別地,涉及一種利用基于關(guān)聯(lián)規(guī)則的遺傳算 法進(jìn)行儀表設(shè)計的方法。技術(shù)背景儀表設(shè)計專家系統(tǒng)是一套利用已有的專家知識,借助計算機(jī)的計算能力, 并針對用戶的特定需求進(jìn)行儀表設(shè)計的系統(tǒng)。通過在知識庫中存儲儀表設(shè)計所 需要的元器件屬性特征,儀表構(gòu)成的基本規(guī)則等知識要素,并結(jié)合用戶提出的 儀表功能、元器件需求以及功耗價格的要求,通過推理計算得出一個可供用戶 使用的儀表設(shè)計方案。在儀表設(shè)計的過程中,由于儀表的組成元件數(shù)量以及每 個元器件的型號種類繁多,如果采用枚舉法進(jìn)行全部元器件組合的枚舉,并評 估每一個組合是否符合客戶需求是一項計算量極其巨大的工作,引入了遺傳算 法來進(jìn)行滿足用戶需求的可行解的求取。但是在實際應(yīng)用中,仍然存在推理時 間過長,收斂速度過慢的問題。本發(fā)明在遺傳算法中加入了基于關(guān)聯(lián)規(guī)則的概 率變異,能夠加快對最優(yōu)解求取的速度。目前常用的遺傳算法優(yōu)化方法有-1. 免疫遺傳算法,利用先驗知識在遺傳算法的推理過程中進(jìn)行免疫接種和免 疫選擇,從而加快算法的收斂速度。但是免疫遺傳算法是在對隨機(jī)交叉、變異 的基礎(chǔ)上產(chǎn)生的個體,以及這些個體接種后的產(chǎn)生的新個體進(jìn)行適應(yīng)度計算, 再進(jìn)行比較,當(dāng)適應(yīng)度計算函數(shù)較為復(fù)雜時,多次計算適應(yīng)度將影響運(yùn)行速度。2. 靜態(tài)繁殖理論,在變異過程中,若子代比父代適應(yīng)值更低,則保留父代。 這種方法雖然能保留更多的高適應(yīng)值個體,但是限制了變異性,容易將求取過 程限制在某個局部最優(yōu)解。3. 機(jī)器學(xué)習(xí)方法,首先在知識庫中尋找是否有匹配解,有就直接作為結(jié)果, 沒有則將這一解加入到初始種群。這種方法沒有改變算法本身的特征,不能對 算法起到加速收斂的作用。發(fā)明內(nèi)容本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種利用基于關(guān)聯(lián)規(guī)則的遺 傳算法進(jìn)行儀表設(shè)計的方法。本發(fā)明是通過挖掘已有知識庫中的元器件關(guān)聯(lián)屬 性,并在遺傳算法中的變異繁殖步驟中利用這些關(guān)聯(lián)采取有針對性的遺傳變異, 從而提高遺傳算法的收斂速度。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案步驟如下1) 生成初始群體在本儀表設(shè)計系統(tǒng)中,初始生成的個體總數(shù)為N個;2) 計算適應(yīng)度,并裁減適應(yīng)度排在最末的p。/。的個體;3) 以平均概率隨機(jī)選取母體,如果母體不違反任何約束,則平均概率隨機(jī) 選取另一個體進(jìn)行交叉產(chǎn)生兩個子女;如果母體有違反任一約束,則進(jìn)行變異 繁殖,隨機(jī)選取變異的節(jié)點后,按照下文所述概率進(jìn)行節(jié)點變異;4) 當(dāng)個體總數(shù)為N-l個時,以平均概率隨機(jī)選取母體進(jìn)行單親繁殖,變異 概率同步驟3中的變異;5) 判斷是否收斂,若不收斂,則轉(zhuǎn)入步驟2。如果收斂,或者繁殖超過N 代,則終止;6) 將最優(yōu)解提供作為解,并將此解添加到知識庫;7) 定時重新進(jìn)行關(guān)聯(lián)規(guī)則挖掘,產(chǎn)生新的關(guān)聯(lián)規(guī)則。 其中步驟3、 4中的概率求解過程如下首先系統(tǒng)利用關(guān)聯(lián)規(guī)則挖掘手段從知識庫中已有的儀表設(shè)計方案中獲得不 同元器件之間的關(guān)聯(lián)規(guī)則,形成一個關(guān)聯(lián)規(guī)則庫。關(guān)聯(lián)規(guī)則記錄的關(guān)聯(lián)規(guī)則表 述形式如下[Cim=>Cjn, S%, C°/。],其中三個參數(shù)按順序分別表示這一關(guān)聯(lián)規(guī)則 是元器件C^和Cjn之間的關(guān)聯(lián)規(guī)則、本條關(guān)聯(lián)規(guī)則的支持度、本條關(guān)聯(lián)規(guī)則的置 信度,&表示該元器件元器件是每一個遺傳算法中個體的第j個節(jié)點中的元器件類型里Cj的第n個可選元器件,Cj中共有N個可選元器件;當(dāng)遺傳算法運(yùn)算中需要計算個體某節(jié)點j上的元件變異到某個元件Cjn的概 率時,首先取出元器件類型Cj中所有的元器件Cjp Cj2...,然后取出當(dāng)前個體除 節(jié)點j以外的所有節(jié)點上的元器件,分別和Cjp印...等組成[(^=>(^]這樣的元器 件對,然后從關(guān)聯(lián)規(guī)則庫中取得所有可以匹配這些[(^=>(^]對的關(guān)聯(lián)規(guī)則,對每 一個Cjn有多條關(guān)聯(lián)規(guī)則的情況,只保留置信度最大的那條;由此得到一組包含節(jié)點j上可用的不同的元器件的關(guān)聯(lián)規(guī)則的置信度記為 kin,每一個元器件只有一條關(guān)聯(lián)規(guī)則,并且可能并非每一個可用元器件都有一條關(guān)聯(lián)規(guī)則。對于Cj中N個可選元器件中沒有出現(xiàn)在關(guān)聯(lián)規(guī)則中的Cjn,記錄k ;n = ;則變異時節(jié)點j變異為某一個Cjn的概率為^^'" — ^ 7 。JC=1本發(fā)明具有的有益效果是能夠避免遺傳算法中變異時的無選擇性,通過 利用已有的知識進(jìn)行最優(yōu)的變異方向指導(dǎo),加速遺傳算法求取最優(yōu)解的收斂速度。
圖l是本發(fā)明的系統(tǒng)框架圖; 圖2是的發(fā)明的方法流程圖。
具體實施方式
圖l是方法具體實施的系統(tǒng)框架圖,分解如下1) 由專家給出儀表設(shè)計的約束、可行解建議等加入知識庫,成為設(shè)計系統(tǒng)的 基本知識,并在基本知識中,對已有的可行解進(jìn)行一定程度的關(guān)聯(lián)規(guī)則挖掘。2) 基本知識就位后,系統(tǒng)便允許用戶根據(jù)自己的需求進(jìn)行儀表參數(shù)配置,然 后提交系統(tǒng)進(jìn)行推理。推理的過程中知識庫提供初始可行解和約束的知識,關(guān) 聯(lián)規(guī)則挖掘模塊則給予關(guān)聯(lián)規(guī)則的知識。3) 獲得可行解時,將可行解加入數(shù)據(jù)庫作為新的知識。4) 系統(tǒng)根據(jù)新加入的可行解和原有的可行解建議定時地進(jìn)行關(guān)聯(lián)規(guī)則挖掘 并更新關(guān)聯(lián)規(guī)則。圖2是可行解求取方法流程圖。 方法中關(guān)聯(lián)規(guī)則的求取方法定義如下 1) 在系統(tǒng)中,有k個不同類型的元器件集d,C2,.Ck。每一個元器件集由一定數(shù)量的該型元件組成,記為CHcu,Ci2,.Ci醒(i)),其中iG[l,k], num(i) 表示Ci中元器件的個數(shù)。62) 遺傳算法中的個體e,由不同類型元器件組成,eiEdXC2X.,XCm,個體的 集合記為E={ei,e2..en },有Q X C2X.. X Cm。3) 約束是一個關(guān)于ei的函數(shù),記為fj(ei), ei符合約束r』則巧(&)=0,反之則 巧(。=1。 一組約束集記為11={1^2..1^, w是約束的個數(shù)。W4) 可行解Si是滿足所有約束的個體,SiEE,且1>70,) = 0,其中rjER??尚薪饧洖镾={Sl,s2..sp},有S^E。5) 取兩個元件Cim和Cjn,其中CimECj, iE[l,k], m E [ 1 ,num(i)] , Cj。ECj, jE[l,k], ne[l,num(j)], count(S)是可行解集合的元素個數(shù),count(Cim)表示可行解 集中包含元器件cim的可行解個數(shù),count(Cjn)表示可行解集中包含元器件cjn的可行解個數(shù),COUnt(CimUCjn)表示可行解集中同時包含元器件Cim和Cjn的可行解個數(shù)。6) 以S為樣本空間,支持度可由式(l)得置信度可由式(2)得7" COM/7"5")(1)c麵《c,'加uc力)" 謹(jǐn),j7厄是最小支持度閾值,Ec是最小置信度閾值。如果support(Ci^X^^Es且 confidence (cim=>cjn)> E。則認(rèn)為Cim-〉Cjn是有效的關(guān)聯(lián)規(guī)則。8)定義8與元器件Ciy有效關(guān)聯(lián)的全部關(guān)聯(lián)規(guī)則的集合記為Aiy={(Cax=>Ciy) I c eLJCa, aE[l,k], support(Cax:〉Ciy)〉Es, confidence (Cax=>Ciy)>Ec},其中ci;yeCi,。 4= LM'^是與元器件組Ci中所有型號元器件有效關(guān)聯(lián)的全部關(guān)聯(lián)規(guī)則的集合。^:IJ4是全部的有效關(guān)聯(lián)規(guī)則集合。方法中獲取關(guān)聯(lián)規(guī)則后,具體求解步驟如下1) 采用隨機(jī)方式生成初始群體。在本儀表設(shè)計系統(tǒng)中,初始生成的個體總數(shù) 為N個。2) 利用元器件屬性以及規(guī)則計算每一個個體的適應(yīng)度,并裁減適應(yīng)度排在最 末的pn/。的個體。3) 以平均概率隨機(jī)選取母體,如果母體不違反任何約束,則平均概率隨機(jī)選 取另一個體進(jìn)行交叉產(chǎn)生兩個子女。如果母體有違反任一約束,則進(jìn)行變異繁殖,隨即選取變異的節(jié)點后,按照下文所述的概率進(jìn)行節(jié)點變異。4) 當(dāng)個體總數(shù)為N-l個時,以平均概率隨機(jī)選取母體進(jìn)行單親繁殖,變異概率同步驟3中的變異。5) 根據(jù)設(shè)定的收斂閾值判斷是否收斂,若超過該閾值則不收斂,轉(zhuǎn)入步驟2。 如果收斂,或者繁殖超過N代,則終止。6) 將最優(yōu)解提供作為解,并將此解添加到知識庫。7) 定時重新進(jìn)行關(guān)聯(lián)規(guī)則挖掘,產(chǎn)生新的關(guān)聯(lián)規(guī)則。本方法的關(guān)鍵是在于步驟3和4中,單親繁殖時,選定某個體第j個節(jié)點進(jìn) 行變異時,節(jié)點j變異的概率按以下步驟求得,而不是按隨機(jī)概率進(jìn)行變異1) 若Aj不為空,在Aj中取出置信度最大的關(guān)聯(lián)規(guī)則記為((^-X:jn)。若為空,轉(zhuǎn)入6)。2) 檢查第i個節(jié)點是否是cim,進(jìn)入3)。3) 若是Cim,記錄概率pjn-confidence (cim=>cjn)°/。,并在Aj中去除Ajn,當(dāng)Aj 為空時,轉(zhuǎn)入6),否則轉(zhuǎn)入4)。若不是則Cim轉(zhuǎn)入5)。4) 取Aj中置信度最大的規(guī)則(((^=>^),轉(zhuǎn)入2)。5) 取Aj中次于前一個取出的關(guān)聯(lián)規(guī)則的置信度的規(guī)則(Cim-X^),轉(zhuǎn)入2)。若前一次取到的規(guī)則已經(jīng)是置信度最小的,則轉(zhuǎn)入6)。6) 剩余的Cj中每個可用元器件均記錄平均概率pjn= 。在得到一組記錄概率{^,&2.^0 1(0 }后,推理過程中個體ei的第j個DNA節(jié)點定向變異為Ci。的概率為f^'"—""^V^
權(quán)利要求
1. 一種利用基于關(guān)聯(lián)規(guī)則的遺傳算法進(jìn)行儀表設(shè)計的方法,其特征在于,該方法包括以下步驟(1)生成初始群體在本儀表設(shè)計系統(tǒng)中,初始生成的個體總數(shù)為N個。(2)計算適應(yīng)度,并裁減適應(yīng)度排在最末的p%的個體。(3)以平均概率隨機(jī)選取母體,如果母體不違反任何約束,則平均概率隨機(jī)選取另一個體進(jìn)行交叉產(chǎn)生兩個子女;如果母體有違反任一約束,則進(jìn)行變異繁殖,隨機(jī)選取變異的節(jié)點后,按照變異概率進(jìn)行節(jié)點變異。(4)當(dāng)個體總數(shù)為N-1個時,以平均概率隨機(jī)選取母體進(jìn)行單親繁殖,其變異概率與步驟(3)相同;(5)判斷是否收斂,若不收斂,則轉(zhuǎn)入步驟(2);如果收斂,或者繁殖超過N代,則終止。(6)將最優(yōu)解提供作為解,并將此解添加到知識庫。(7)定時重新進(jìn)行關(guān)聯(lián)規(guī)則挖掘,產(chǎn)生新的關(guān)聯(lián)規(guī)則。
2. 根據(jù)權(quán)利要求1所述的利用基于關(guān)聯(lián)規(guī)則的遺傳算法進(jìn)行儀表設(shè)計的方法,其 特征在于,所述步驟(3、 4)中的變異概率由如下方式求得首先系統(tǒng)利用關(guān)聯(lián)規(guī)則挖掘手段從知識庫中己有的儀表設(shè)計方案中獲得不 同元器件之間的關(guān)聯(lián)規(guī)則,形成一個關(guān)聯(lián)規(guī)則庫。關(guān)聯(lián)規(guī)則記錄的關(guān)聯(lián)規(guī)則表述形式如下[Cim=>Cjn, S, k],其中三個參數(shù)按順序分別表示這一關(guān)聯(lián)規(guī)則是元 器件Cim和Cjn之間的關(guān)聯(lián)規(guī)則、本條關(guān)聯(lián)規(guī)則的支持度、本條關(guān)聯(lián)規(guī)則的置信度, Cjn表示該元器件元器件是每一個遺傳算法中個體的第j個節(jié)點中的元器件類型里Cj的第n個可選元器件,Cj中共有N個可選元器件;當(dāng)遺傳算法運(yùn)算中需要計算個體某節(jié)點j上的元件變異到某個元件^的概 率時,首先取出元器件類型Cj中所有的元器件印,Cj2…,然后取出當(dāng)前個體除 節(jié)點j以外的所有節(jié)點上的元器件,分別和Cjp化...等組成[(^->(^]這樣的元器 件對,然后從關(guān)聯(lián)規(guī)則庫中取得所有可以匹配這些[Cx廣〉CjJ對的關(guān)聯(lián)規(guī)則,對每 一個Cjn有多條關(guān)聯(lián)規(guī)則的情況,只保留置信度最大的那條;由此得到一組包含節(jié)點j上可用的不同的元器件的關(guān)聯(lián)規(guī)則的置信度記為 kjn,每一個元器件只有一條關(guān)聯(lián)規(guī)則,并且可能并非每一個可用元器件都有一條關(guān)聯(lián)規(guī)則。對于C」中N個可選元器件中沒有出現(xiàn)在關(guān)聯(lián)規(guī)則中的Cjn,記錄k,n=l;則變異時節(jié)點j變異為某一個&的概率為。<formula>formula see original document page 3</formula>
全文摘要
本發(fā)明公開了一種利用基于關(guān)聯(lián)規(guī)則的遺傳算法進(jìn)行儀表設(shè)計的方法。本發(fā)明是通過挖掘已有知識庫中的元器件關(guān)聯(lián)屬性,并在遺傳算法中的變異繁殖步驟中利用這些關(guān)聯(lián)采取有針對性的遺傳變異,從而提高遺傳算法的收斂速度。本發(fā)明利用已有的專家知識以及將運(yùn)算結(jié)果加入知識庫,不斷的擴(kuò)大知識庫的容量,使得在知識庫中的儀表設(shè)計可行解進(jìn)行關(guān)聯(lián)規(guī)則挖掘的結(jié)果更加的可靠。本發(fā)明同時在對遺傳算法最優(yōu)解的求取過程中,按照關(guān)聯(lián)規(guī)則的置信度進(jìn)行有選擇的變異,能夠加快算法的收斂速度,從提高在實際運(yùn)用中儀表設(shè)計系統(tǒng)計算最優(yōu)儀表方案的速度,解決批量設(shè)計儀表方案時的用戶長時間等待的問題。
文檔編號G06N3/12GK101276436SQ20081006139
公開日2008年10月1日 申請日期2008年4月25日 優(yōu)先權(quán)日2008年4月25日
發(fā)明者壽黎但, 胡天磊, 鋮 臧, 剛 陳, 珂 陳 申請人:浙江大學(xué)