一種混合極性Reed-Muller邏輯電路的最佳極性搜索方法
【技術領域】
[0001] 本發明涉及Reed-Muller邏輯電路的最佳極性搜索領域,尤其涉及一種混合極性 Reed-MulIer邏輯電路的最佳極性搜索方法。
【背景技術】
[0002] 任意邏輯函數均有Boolean邏輯和Reed-Muller (RM)邏輯兩種函數實現形式,前 者是基于AND/0R/N0T的形式,而后者是基于AND/X0R或XN0R/0R的形式。研宄表明,在功 耗、面積、速度和可測試性等方面,對于部分電路(如算術電路、奇偶校驗電路和通信電路 等)而言,RM邏輯實現形式比傳統的Boolean邏輯實現形式具有較大的優勢。尤其是在XOR 門的功耗和面積得到大幅優化之后,RM邏輯電路更具有吸引力。
[0003] RM 邏輯表達式主要有固定極性 Reed-Muller (fixed polarity Reed-Muller, FPRM)和混合極性Reed_Muller(mixed polarity Reed_Muller,MPRM)兩種表達形式。對于 η個輸入變量的邏輯函數而言,FPRM邏輯電路有2n個不同的極性,而MPRM邏輯電路則有3 n 個不同的極性。可以看出,FPRM邏輯電路的極性搜索空間是MPRM邏輯電路的真子集。相 關研宄已表明,MPRM邏輯電路的功耗和面積性能要優于FPRM邏輯電路。
[0004] MPRM邏輯電路中的各個變量既可以以原變量或反變量的形式出現,又可以以原變 量和反變量的形式同時出現,故每個變量都有三種表示形式。因此,對于一個十進制的極性 而言,可以用三進制的形式進行表示。例如,一個3輸入變量的MPRM表達式的極性表示方 式,以及極性與各變量出現形式的關系如下:^ W 2+?1+,其中m3= 2,表 示第3個變量的極性為2,變量可以以原變量和反變量的形式同時出現;m2= 0,表示第2個 變量的極性為〇,變量只能以原變量的形式出現;Hi1= 1,表示第1個變量的極性為1,變量 只能以反變量的形式出現。
[0005] 極性是RM邏輯電路的關鍵因素,直接決定著電路表達式的繁簡,進而影響電路的 功耗、面積以及速度等方面的性能。RM邏輯電路的極性優化為在特定的極性空間中搜索最 佳極性,在此極性下電路的某一性能最好。因此,搜索最佳極性已成為電路綜合優化中最重 要的技術之一。目前,遺傳算法在MPRM邏輯電路的最佳極性搜索中得到了廣泛的應用。傳 統基于遺傳算法的MPRM邏輯電路的最佳極性搜索方法中,每一代的極性集都由幾十甚至 上百個極性按隨機的順序組合而成,同時極性集通常都不是完全集。因此,基于格雷碼順 序的極性轉換已不再適用,但如果直接按照隨機順序進行極性轉換,則會造成計算時間的 嚴重浪費。同時,遺傳算法本身存在局部尋優能力弱、易早熟和收斂速度慢等缺點,并且,交 叉、變異等遺傳操作具有一定的隨機性,很難保證群體中的優良個體不被破壞。
[0006] 綜上所述,傳統基于遺傳算法的MPRM邏輯電路的最佳極性搜索方法存在以下一 些問題:
[0007] (1)對于MPRM電路的極性不完全集,傳統適用于極性完全集的格雷碼順序已不再 適用,無法再對最佳極性搜索方法進行優化。
[0008] (2)遺傳算法中每一代極性集都由幾十甚至上百個極性按隨機的順序組合而成, 直接按照隨機順序進行極性轉換,會造成計算時間上的極大浪費,嚴重降低搜索最佳極性 的效率。
[0009] (3)交叉和變異等遺傳操作的隨機性容易破壞群體中的優良個體,導致遺傳算法 出現收斂速度慢或無法收斂等問題,最終造成搜索不到最佳極性。
【發明內容】
[0010] 為解決上述問題,本發明提供了一種混合極性Reed-Muller邏輯電路的最佳極性 搜索方法。本方法采用精英保留策略,利用改進的遺傳算法求解每一代待評估極性集的最 佳極性轉換順序,然后根據此極性轉換順序對MPRM邏輯電路進行極性轉換,并根據適應度 函數對極性進行評估,可以有效縮短MPRM邏輯電路最佳極性搜索時間,大大提高極性搜索 的效率,避免遺傳算子對群體中優良個體的破壞。
[0011] 本發明提出的用于求解每一代待評估極性集的最佳極性轉換順序的改進遺傳算 法與標準遺傳算法的區別在于:
[0012] (1)利用改進的最近鄰算法生成部分初始種群,這樣可以利用改進的最近鄰算法 來指導整個進化過程的進化方向,彌補隨機搜索的盲目性,縮小遺傳算法的搜索空間,提高 運行效率。
[0013] (2)隨機生成剩余部分初始種群,以保持群體多樣性,避免過早收斂。
[0014] (3)采用精英保留策略以保證每一代的優良個體不被交叉和變異等遺傳操作破 壞。
[0015] 其中,所述改進的最近鄰算法是在傳統最近鄰算法的基礎上,對最近鄰算法得到 的極性轉換順序執行多次移位、換位和倒位操作。其中,所述移位操作是將極性轉換順序中 第i個極性移動到第j個極性之后的位置上,若移位后極性轉換順序的相鄰極性不同位數 之和小于移位前相鄰極性不同位數之和,則執行移位操作,否則,不執行移位操作;所述換 位操作是將極性轉換順序中第i個極性與第j個極性的位置進行交換,若換位后極性轉換 順序的相鄰極性不同位數之和小于換位前相鄰極性不同位數之和,則執行換位操作,否則, 不執行換位操作;所述倒位操作是將極性轉換順序中從第i個極性到第j個極性之間的極 性的順序前后顛倒,若倒位后極性轉換順序的相鄰極性不同位數之和小于倒位前相鄰極性 不同位數之和,則執行倒位操作,否則,不執行倒位操作。
[0016] 具體來說,本發明提供了一種MPRM邏輯電路的最佳極性搜索方法,該方法包括:
[0017] 步驟1,隨機生成初始種群,其中,所述初始種群個體均為十進制的極性;
[0018] 步驟2,將初始種群中十進制的極性轉換成三進制的形式;
[0019] 步驟3,根據每個極性的三進制的形式,分別計算出當前種群極性集中不同極性之 間的不同位數,并存儲在不同位數矩陣中;
[0020] 步驟4,利用改進的遺傳算法求解當前種群極性集的最佳極性轉換順序;
[0021] 步驟5 :按照步驟4得到的最佳極性轉換順序對當前種群極性集進行極性轉換;
[0022] 步驟6 :根據每個極性對應的MPRM表達式和適應度函數,分別求出每個極性的適 應度值,執行精英保留策略;
[0023] 步驟7 :若當前進化代數小于最大進化代數,則執行步驟8至步驟9 ;否則,輸出最 佳極性;
[0024] 步驟8 :執行選擇、交叉和變異操作,生成子代;所述選擇操作采用輪盤賭策略,所 述交叉操作采用單點交叉方法,所述變異操作采用基本位變異;
[0025] 步驟9 :依次執行步驟3至步驟6 ;
[0026] 其中,步驟4包括:
[0027] 步驟41 :利用改進的最鄰近算法生成所述改進的遺傳算法的初始種群的80%個 個體,隨機生成剩余初始種群的20%個個體,兩者共同組成改進的遺傳算法的初始種群;
[0028] 步驟42 :將當前種群的個體中相鄰極性間的不同位數之和的倒數作為改進的遺 傳算法的適應度函數,計算每個個體的適應度值,執行精英保留策略;
[0029] 步驟43 :若當前進化代數小于最大進化代數,則執行步驟44和步驟42 ;否則,輸 出最佳極性轉換順序;
[0030] 步驟44:執行選擇、交叉和變異操作,生成子代,其中,所述選擇操作采用輪盤賭 策略,所述交叉操作采用多點交叉方法,所述變異操作采用雙點逆轉變異方法;
[0031] 其中,步驟41所述的改進的最鄰近算法是在最鄰近算法的基礎上,對最鄰近算法 得到的極性轉換順序執行多次移位、換位和倒位操作;其中,所述移位操作是將極性轉換順 序中第i個極性移動到第j個極性之后的位置上,若移位后極性轉換順序的相鄰極性不同 位數之和小于移位前相鄰極性不同位數之和,則執行移位操作,否則,不執行移位操作;所 述換位操作是將極性轉換順序中第i個極性與第j個極性的位置進行交換,若換位后極性 轉換順序的相鄰極性不同位數之和小于換位前相鄰極性不同位數之和,則執行換位操作, 否則,不執行換位操作;所述倒位操作是將極性轉換順序中從第i個極性到第j個極性之間 的極性的順序前后顛倒,若倒位后極性轉換順序的相鄰極性不同位數之和小于倒位前相鄰 極性