【正文】
是要恰當?shù)貥嬙煲粋€能量函數(shù),使得 HNN網(wǎng)絡中的 n個神經(jīng)元能夠求得問題的解,并使其能量處于最低狀態(tài)。為此,構造能量函數(shù)需考慮以下兩個問題; (1)能量函數(shù)要具有適合于 PM的穩(wěn)定狀態(tài) (約束條件 )。 (2)能量函數(shù)要有利于表達在 TSP所有合法旅行路線中最短路線的解 (目標函數(shù) )。 網(wǎng)絡能量函數(shù)的構成 1 ) 第 x 行的所有元素 xi u 按順序兩兩相乘之和 xj n x n i j xi u u ? ? ? ? ? ? 1 1 1 應為 0 。 2 ) n 個行的所有元素按順序兩兩相乘之和 yi n x n i n i j xi u u ? ? ? ? ? ? ? ? 1 1 1 1 也應為 0 。 3 ) 將第 2 )項前乘系數(shù) A/2 ,則可作為網(wǎng)絡能量函數(shù)的第一項 xj n x n i n i j xi A u u ? ? ? ? ? ? ? ? 1 1 1 1 2 同理,對應于第( 2 )個約束條件,可得能量函數(shù)的第二項 yi n i n x n x y xi B u u ? ? ? ? ? ? ? ? 1 1 1 1 2 式中, B/2 為系數(shù)。 應于第( 3 )個約束條件,換位矩陣中所有為“ 1 ”元素之和應等于 N 01 1??? ?? ?nnxnixiu 由此可得網(wǎng)絡能量函數(shù)的第三項 21 12???????? ?? ?nxnixinCu 式中,取平方值是為了使這項符合能量的表達形式,同時也體現(xiàn)了對不符合約束條件時的一種懲罰; C/2 為系數(shù) 約束條件時的一種懲罰; C/2 為系數(shù)。 第( 4 )項為優(yōu)化目標,即優(yōu)化要求其表達式為 由前三個約束條件可知,這兩項至少有一項為 0 ,順序訪 問 X 、 Y 兩城市所有可能途徑(長度)可表示為 , 1 , 1x y x i y i x y x i y id v v d v v??和, 1 , 1 , 1 , 1( ) ( )x y x i y i x y x i y i x y x i y i y id v v d v v d v v v? ? ? ?? ? ???N 個城市兩兩之間所有可能的訪問路徑的長度可表示為 ),(111 1 1??? ? ??? ? ?iyiyxinxnynixyd uuu 當這項最小時,則它就表示訪問 N 個城市的最短距離。由此得到網(wǎng)絡能量函數(shù)的第四項 ? ? ?? ? ????nxnyniyiyxixyidD1 1 11)1,(2uuu 式中, D/ 2 為系數(shù)。 能量函數(shù)表達式 網(wǎng)絡能量函數(shù)的最后表達式 21 1111 1 111 1)(222? ?? ? ? ? ? ?? ???? ?? ??? ??????nxnixinxninijninxnxyyixixjxinCBAEuuuuu ),(2111 1 1??? ? ??? ? ? ?iyiyxinxnynixyvdDuu E 達到極小時,由網(wǎng)絡狀iju 構成的換位矩陣表達了最佳旅行路徑。 網(wǎng)絡加權及閾值 第三步 : 確定網(wǎng)絡神經(jīng)元之間的連接權及神經(jīng)元輸出的 閾 值。設網(wǎng)絡 ),( ix 神經(jīng)元與 ? ?jy , 神經(jīng)元之間的連接權為yixi,? ,神經(jīng)元 ),( ix 輸出的 閾 值為xiI ,則有 ),()1()1(,11 ??????????ijijxyxyijijxyyjxiDdCBA??????? CNIxi? ??????)(0)(1jijiij? 求解 TSP網(wǎng)絡的迭代方程 第四步 : 求解 TS P 網(wǎng)絡的迭代方程 )(1 1111? ???? ???????????nxnyxynxyyyinjjxixixiixinCBARudtducuuu? ?????NyyiyxyidD11)1,( uu)]tanh(1[21)(0uuuxixixixi??? ?u 計算步驟 ( 1 ) 初始化:給定一個0u 值(例如 0?u )。 按下式取網(wǎng)絡各神經(jīng)元的初始狀態(tài): uxixiuu ???00 式中,)1ln(21000?? Nuu,其中 N 為網(wǎng)絡神經(jīng)元個數(shù);uxi?為( 1 , +1 )區(qū)間的隨機值。 ( 2 ) 求出各神經(jīng)元的輸出 ???????? ))(tanh(121)(000ututuxixi (3) . 求0ttxidtdu?。 (4) . 求下一時刻的狀態(tài)量 i. tdtdututtuttxixixi??????000)()( (5) . 返回步驟( 2 ) ( 1)網(wǎng)絡參數(shù)的選擇 網(wǎng)絡參數(shù) A, B, C, D, u0等對網(wǎng)絡的變化相當敏感,原則上不能隨意改變, Hopfield和 Tank給出的參數(shù)值為: A= B= D= 500, C= 200,u0= 。 這種選擇是考慮了以下兩點后的折中: ① D值較小時,容易獲得合法路徑; D值較大時,可增加路徑長度的權重,從而使合法路徑趨于最優(yōu); ② u0是放大器的增益,太小時閾值函數(shù)接近于符號函數(shù),不能獲得較好的解;太大時, S型閾值函數(shù)過于平坦,神經(jīng)元狀態(tài)不易于收斂到 0和 1,從而使獲得合法路徑的概率下降。 除了以上兩點外,考慮網(wǎng)絡參數(shù)對收斂速度的影響。實際上選擇為 A= B= D= . C= , u0= 。這樣的選擇使能量函數(shù)數(shù)量級差異減小,從而使能量的數(shù)值也減小。程序中是以 ?E為收斂判據(jù),因而這種選擇加快了程序收斂的速度。 ( 2)網(wǎng)絡初始狀態(tài)的選擇 對于網(wǎng)絡初始狀態(tài) u0的選擇問題,常采用隨機擾動的方法。即給初始值 u0增加一個小的擾動 δ (3)閾值函數(shù)的處理 雙曲正切函數(shù)閾值函數(shù)的計算包括二次指數(shù)計算、二次除法計算、三次加法計算,運算量很大,并且在每次迭代中都要調(diào)用N2次,這祥的運算嚴重彤響了網(wǎng)絡的收斂速度。為此把該函數(shù)離散化,即在函數(shù)值變化敏感區(qū)域預先計算好足夠多的離散函數(shù)值,形成表格存入計算機。這樣在迭代過程中就無需經(jīng)常計算函數(shù)值,而代之以查表值 (只需一次乘法和一次加法 ),可大大提高計算速度。 (4)神經(jīng)元的狀態(tài)值需取為模擬量 由于在迭代過程中,城市位置的選取可能有很多種選擇,采用模擬值來處理單元的狀態(tài)是必然的。利用連續(xù)網(wǎng)絡的模擬特性進行中間處理,可以在一次處理中同時考慮多條路徑。這樣可大量減少迭代次數(shù),使計算具有一定的并行特征。 用上述方法對 10個城市的 TSP做 100次仿真試驗,發(fā)現(xiàn)在 1000步迭代計算以內(nèi)有 15次收斂到有效路徑的解 (可行解 ), 45次收斂到對應于無效路徑的解 (不滿足約束條件 ),還有 40次未達到收斂,試驗中所用常數(shù)為 a=b=d=500, c= 200, u0= , I= 1000。說明上述方法存在問題,即經(jīng)常收斂到無效解,而且對常數(shù) a,b等的選擇較敏感,而這些常數(shù)的選擇又沒有可遵循的規(guī)律。針對上述問題,學者們做了許多研究來分析上述問題產(chǎn)生的原因和解決方法。