亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種并行變鄰域搜索方法

文檔序號:6377176閱讀:434來源:國知局
專利名稱:一種并行變鄰域搜索方法
技術(shù)領域
本發(fā)明涉及啟發(fā)式算法領域,具體涉及ー種并行變鄰域捜索方法。
背景技術(shù)
變鄰域搜索算法(Variable Neighborhood Search, VNS),是一種軌跡式元啟發(fā)式算法,由Hansen和Mladenovic于1997年首次提出。變鄰域搜索算法包含了動態(tài)變化的鄰域結(jié)構(gòu),算法較通用,自由度大,可針對特殊問題設計多種變型,主要用于求解組合優(yōu)化問題和全局優(yōu)化問題。組合優(yōu)化問題的求解方法可以分為兩類ー類是精確算法,這類算法對解空間進行完整搜索,可以保證找到小規(guī)模問題的最優(yōu)解;另ー類是啟發(fā)式算法,這類算法放棄了對解空間搜索的完整性,因此不能保證最終解的全局最優(yōu)性。由于組合優(yōu)化問題中大量存在 著NP-Hard問題,因此精確捜索算法在問題規(guī)模較大時往往難以實現(xiàn),而啟發(fā)式算法盡管不能證明解的最優(yōu)性,但在很多情況下卻能夠以合理的計算代價找出較好的近似最優(yōu)解,因此變鄰域捜索算法是解決組合優(yōu)化問題的主要算法。變鄰域捜索算法的基本思想是在搜索過程中,基于已找到的局部最優(yōu)解,系統(tǒng)地改變其鄰域結(jié)構(gòu),以此來拓展搜索范圍,進而找到另ー個局部最優(yōu)解。變鄰域捜索算法包括了局部搜索(Local Search)、擾動(Shaking)和鄰域變換三個過程,利用局部搜索尋■找局部最優(yōu)解,提高搜索精度,采用擾動過程跳出局部最優(yōu)解的范圍,尋找新的局部最優(yōu)解,使得局部最優(yōu)解向全局最優(yōu)解靠攏,鄰域變換提供了一種迭代方式和停止準則。變鄰域捜索算法的基本步驟步驟一、選定ー個初始解為Xtl,設定初始參數(shù)——鄰域結(jié)構(gòu)個數(shù)和算法總迭代次數(shù),其中鄰域結(jié)構(gòu)個數(shù)為K_,算法總迭代次數(shù)為Tmax,設定鄰域結(jié)構(gòu)集合為Nk(k = 1,...,Kmax);設置當前最優(yōu)解Xbest為Xbest = X0,當前解Xcm為Xcm = X0,選定的鄰域結(jié)構(gòu)編號k =I,迭代搜索次數(shù)t = O。步驟ニ、進行迭代運算,當t > Tfflax吋,輸出計算結(jié)果,停止運算;否則,在Xcm的k鄰域Nk中隨機選取解Xshake,并對解Xshake進行局部捜索,得到局部最優(yōu)解Xltrcal ;若f (Xlocal)<f (Xbest),則 X
best -^-Iocal -^cur -^-Iocal ^
1,即更新局部最優(yōu)解;否則,設置k = k modK_+l,t = t+1,重復所述進行迭代運算的步驟。其中,函數(shù)f為實際應用中的評估函數(shù)。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供ー種并行變鄰域搜索方法,該方法與目前的變鄰域捜索算法相比,能夠有效擴展求解空間,増大逃離局部最優(yōu)的可能性,進而獲得更好的全
局最優(yōu)解。為了解決上述問題,本發(fā)明實施例提供了一種變鄰域捜索方法,其特征在于,該變鄰域搜索方法是并行變鄰域搜索方法,包括如下步驟步驟101、配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合,該數(shù)據(jù)集合中存儲有多個歷史局部最優(yōu)解;步驟102、為多個所述實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合和迭代次數(shù)閾值;步驟103、針對每ー個實例,從所述鄰域結(jié)構(gòu)集合中為該實例選取ー個鄰域結(jié)構(gòu)作為當前鄰域結(jié)構(gòu),該實例的當前解基于該當前鄰域結(jié)構(gòu)進行迭代搜索,得到局部最優(yōu)解;判斷該局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則將該實例的當前解和當前最優(yōu)解均更新為該局部最優(yōu)解,如果該實例的當前最優(yōu)解優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解,則用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;若該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到所述迭代次數(shù)閾值后,從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代搜索次數(shù)加1,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,直到迭代搜索次數(shù)達到所述總迭代次數(shù);步驟104、所有實例的迭代搜索次數(shù)都達到所述總迭代次數(shù)后,選取所述數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解??蛇x地,所述步驟101還包括對所述數(shù)據(jù)集合中的歷史最優(yōu)解按照大小進行排序。可選地,所述步驟103還包括為該實例設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并設置該實例的迭代搜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)??蛇x地,所述步驟103還包括用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解之后,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加1,直到迭代搜索次數(shù)達到所述總迭代次數(shù)。可選地,所述步驟103中還包括若該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)沒有達到所述迭代次數(shù)閾值時,將該實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索,直到迭代搜索次數(shù)達到所述總迭代次數(shù)??蛇x地,所述步驟103還包括當多個實例需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新吋,則從該多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替該最差的歷史最優(yōu)解。可選地,多個所述實例中,至少有ー個實例是基于所述數(shù)據(jù)集合中存儲的最優(yōu)的歷史最優(yōu)解進行迭代搜索。本發(fā)明實施例還提供了一種變鄰域捜索裝置,包括配置模塊、迭代捜索模塊、判斷模塊、更新模塊和全局最優(yōu)解確定模塊,其中所述配置模塊設置成配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合,該數(shù)據(jù)集合中存儲有多個歷史最優(yōu)解;還為多個所述實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合和迭代次數(shù)閾值;所述迭代捜索模塊設置成針對每ー個實例,從所述鄰域結(jié)構(gòu)集合中為該實例選取ー個鄰域結(jié)構(gòu)作為當前鄰域結(jié)構(gòu),將該實例的當前解基于該當前鄰域結(jié)構(gòu)進行迭代搜索,得到局部最優(yōu)解;還從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代搜索次數(shù)加1,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索;所述判斷模塊設置成針對每ー個實例,所述迭代捜索模塊得到該實例的局部最優(yōu)解后,判斷該實例迭代搜索得到的局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則通知所述更新模塊用該實例的局部最優(yōu)解代替該當前最優(yōu)解;還判斷該實例的當前最優(yōu)解是否優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解,若是,則通知所述更新模塊用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;還判斷該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解后,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到所述迭代次數(shù)閾值后,通知所述迭代捜索模塊從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代搜索次數(shù)加1,基于該當前鄰域 結(jié)構(gòu)重新進行迭代捜索;判斷某ー實例的迭代搜索次數(shù)達到所述總迭代次數(shù)后,通知所述迭代捜索模塊針對該實例停止捜索;判斷所有實例的迭代搜索次數(shù)都達到所述總迭代次數(shù)后,通知所述全局最優(yōu)解確定模塊確定全局最優(yōu)解;所述更新模塊設置成用實例迭代捜索得到的局部最優(yōu)解代替該實例的當前最優(yōu)解;用該實例的當前最優(yōu)解代替所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解;所述全局最優(yōu)解確定模塊設置成選取所述數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解。 可選地,所述配置模塊還設置成為每個實例均設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并設置該實例的迭代搜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)??蛇x地,所述配置模塊為每個實例設置的初始解均不同??蛇x地,所述迭代搜索模塊還設置成在所述更新模塊用實例的當前最優(yōu)解代替最差的歷史最優(yōu)解之后,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加I??蛇x地,所述判斷模塊還設置成判斷實例迭代捜索得到的局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解時,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)沒有達到所述迭代次數(shù)閾值時,通知所述迭代捜索模塊將該實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代捜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索;所述迭代搜索模塊還設置成將實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代捜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索??蛇x地,所述判斷模塊還設置成當判斷多個實例需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新時,通知所述更新模塊從該多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替所述數(shù)據(jù)集合中最差的歷史最優(yōu)解;所述更新模塊還設置成從需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新的多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替所述數(shù)據(jù)集合中最差的歷史最優(yōu)解。本發(fā)明實施例的并行變鄰域搜索方法能夠有效擴展求解空間,増大逃離局部最優(yōu)的可能性,進而獲得更好的全局最優(yōu)解。


圖I為本發(fā)明實施例的方法流程示意圖;圖2為本發(fā)明實施例的變鄰域搜索裝置示意圖。
具體實施例方式下面將結(jié)合附圖及實施例對本發(fā)明的技術(shù)方案進行更詳細的說明。需要說明的是,如果不沖突,本發(fā)明實施例以及實施例中的·各個特征可以相互結(jié)合,均在本發(fā)明的保護范圍之內(nèi)。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。本發(fā)明實施例的一種并行變鄰域捜索方法,如圖I所示,主要包括如下步驟步驟101、配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合,該數(shù)據(jù)集合中存儲有多個歷史最優(yōu)解。其中,歷史最優(yōu)解是多個所述實例在迭代搜索過程中找到的。步驟102、為多個所述實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合和迭代次數(shù)閾值;其中,所述迭代次數(shù)閾值為方法允許最優(yōu)解不更新的最大迭代次數(shù)。步驟103、針對每ー個實例,從所述鄰域結(jié)構(gòu)集合中為該實例選取ー個鄰域結(jié)構(gòu)作為當前鄰域結(jié)構(gòu),該實例的當前解基于該當前鄰域結(jié)構(gòu)進行迭代搜索,得到局部最優(yōu)解;判斷該局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則將該實例的當前解和當前最優(yōu)解更新為該局部最優(yōu)解,如果該實例的當前最優(yōu)解優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解,則用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;若該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到所述迭代次數(shù)閾值后,從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加I,直到該實例的迭代搜索次數(shù)達到所述總迭代次數(shù);各個實例都具備單獨的求解能力,而當單個實例陷入局部時,通過與共享的數(shù)據(jù)集合的信息交換,實現(xiàn)了實例間的交互,從而能夠有效擴展求解空間,增大實例逃離局部最優(yōu)的可能性。步驟104、所有實例的迭代搜索次數(shù)都達到所述總迭代次數(shù)后,選取所述數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解??蛇x地,所述步驟101還包括對所述數(shù)據(jù)集合中的歷史最優(yōu)解按照大小進行排序;可選地,所述步驟103還包括為每個實例均設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并設置該實例的迭代搜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)??蛇x地,每個實例的初始解均不同。可選地,設置該實例的迭代搜索次數(shù)為1,設置該實例的當前最優(yōu)解未更新前已迭代次數(shù)為O??蛇x地,所述步驟103還包括用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解之后,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加1,直到迭代搜索次數(shù)達到所述總迭代次數(shù)??蛇x地,所述步驟103還包括若該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)沒有達到所述迭代次數(shù)閾值時,將該實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索,直到迭代搜索次數(shù)達到所述總迭代次數(shù)??蛇x地,所述步驟103還包括當多個實例需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新吋,則從該多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替該最差的歷史最優(yōu)解。可選地,多個所述實例中,至少有ー個實例是基于所述數(shù)據(jù)集合中存儲的最優(yōu)的歷史最優(yōu)解進行迭代搜索。上述實例中為多個實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)和鄰域結(jié)構(gòu)集合, 基于所設置的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)和鄰域結(jié)構(gòu)集合進行并行迭代搜索,并在各自的迭代搜索過程中對數(shù)據(jù)進行更新,并通過共享的數(shù)據(jù)集合完成各實例間信息的交互,從而能夠有效擴展求解空間,増大逃離局部最優(yōu)的可能性,進而獲得更好的全局最優(yōu)解。本發(fā)明實施例的一種變鄰域捜索裝置,如圖2所示,包括配置模塊201、迭代搜索模塊202、判斷模塊203、更新模塊204和全局最優(yōu)解確定模塊205,其中所述配置模塊201設置成配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合,該數(shù)據(jù)集合中存儲有多個歷史最優(yōu)解;還為多個所述實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合和迭代次數(shù)閾值;其中,歷史最優(yōu)解是多個所述實例在迭代搜索過程中找到的。所述迭代捜索模塊202設置成針對每ー個實例,從所述鄰域結(jié)構(gòu)集合中為該實例選取ー個鄰域結(jié)構(gòu)作為當前鄰域結(jié)構(gòu),將該實例的當前解基于該當前鄰域結(jié)構(gòu)進行迭代捜索,得到局部最優(yōu)解;從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代搜索次數(shù)加1,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索。所述判斷模塊203設置成針對每ー個實例,所述迭代捜索模塊202得到該實例的局部最優(yōu)解后,判斷該實例迭代搜索得到的局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則通知所述更新模塊204用該實例的局部最優(yōu)解代替該當前最優(yōu)解;還判斷該實例的當前最優(yōu)解是否優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解,若是,則通知所述更新模塊204用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;還判斷該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解后,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到所述迭代次數(shù)閾值后,通知所述迭代捜索模塊202從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加I ;判斷某一實例的迭代搜索次數(shù)達到所述總迭代次數(shù)后,通知所述迭代捜索模塊202針對該實例停止迭代搜索;判斷所有實例的迭代搜索次數(shù)都達到所述總迭代次數(shù)后,通知所述全局最優(yōu)解確定模塊205確定全局最優(yōu)解。其中,迭代次數(shù)閾值為允許最優(yōu)解不更新的最大迭代次數(shù)。所述更新模塊204設置成用實例迭代捜索得到的局部最優(yōu)解代替該實例的當前最優(yōu)解;用該實例的當前最優(yōu)解代替所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解;
所述全局最優(yōu)解確定模塊205設置成選取所述數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解??蛇x地,所述配置模塊201還設置成為每個實例均設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并設置該實例的迭代搜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)??蛇x地,所述配置模塊201將該實例的迭代搜索次數(shù)設置為1,將該實例的當前最優(yōu)解未更新前已迭代次數(shù)設置為O??蛇x地,所述配置模塊201為每個實例設置的初始解均不同??蛇x地,所述迭代捜索模塊202還設置成在所述更新模塊204用實例的當前最優(yōu)解代替最差的歷史最優(yōu)解之后,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加I。 可選地,所述判斷模塊203還設置成判斷實例迭代捜索得到的局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解時,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)沒有達到所述迭代次數(shù)閾值時,通知所述迭代捜索模塊202將該實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索;所述迭代捜索模塊202還設置成將實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索。可選地,所述判斷模塊203還設置成當判斷多個實例需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新時,通知所述更新模塊204從該多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替所述數(shù)據(jù)集合中最差的歷史最優(yōu)解;所述更新模塊204還設置成從需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新的多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替所述數(shù)據(jù)集合中最差的歷史最優(yōu)解??蛇x地,多個所述實例中,至少有ー個實例是基于所述數(shù)據(jù)集合中存儲的最優(yōu)的歷史最優(yōu)解進行迭代搜索。下面用本發(fā)明的一個應用示例進ー步加以說明。步驟一、配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合D ;設定實例個數(shù)、為所有的實例設定相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合等初始參數(shù)。其中,數(shù)據(jù)集合中存儲有多個歷史最優(yōu)解;實例個數(shù)為M,鄰域結(jié)構(gòu)個數(shù)為K_,總迭代次數(shù)為Tniax,鄰域結(jié)構(gòu)集合為Nk(k =
I, ,Kmaxノ ;步驟ニ、為每個實例均設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并為每個實例均從所述鄰域結(jié)構(gòu)集合中選定ー個鄰域結(jié)構(gòu),還為每個實例均設置迭代捜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)。假設m為多個實例中的任意ー個,為實例m(m = 1,. . .,M)設定的初始解為氣設該實例的當前最優(yōu)解)4est為x#st = Xgit,當前解父『為xぽr =X^ic ,為實例m選定的鄰域結(jié)構(gòu)編號為km= 1,實例m的迭代搜索次數(shù)為tm= 1,實例m在其當前最優(yōu)解未更新前已迭代次數(shù)im = O。迭代搜索次數(shù)即已經(jīng)迭代過的總次數(shù)。
步驟三、初始化數(shù)據(jù)集合D及迭代次數(shù)閾值Iter。其中,迭代次數(shù)閾值Iter為算法允許最優(yōu)解不更新的最大迭代次數(shù)。步驟四、對于實例m(m = I,. . .,M),執(zhí)行以下操作當tm > Tmax時,實例m停止運算;當t.不大于Tmax吋,在X,的km鄰域Nkm中隨機選取解X^iake,并對解X$ake
進行局部迭代搜索,得到局部最優(yōu)解Xgcal;若f(x#al) < /(X^est),fjX^est = Xjfal,=X1rScal,如果Xiest優(yōu)于集合D中的最差解,則將集合D中的最差解更新為x#st,km =Lim = O ;若辦ぽ3丨)不小于f(Xばst),且im > Iter,則從集合D中隨機選擇ー個歷史最優(yōu)解,賦予XT * km = I, im = 0 ;否則,k = k mod Kmax+1, im = im+l, t = t+1,重復步驟四;對其他實例均執(zhí)行與實例m相同的操作,在此不再贅述。步驟五、所有實例的迭代搜索次數(shù)都達到所述總迭代次數(shù)后,數(shù)據(jù)集合D中的最優(yōu)解即為算法找到的全局最優(yōu)解。本領域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用ー個或多個集成電路來實現(xiàn)。相應地,上述實施例中的各模塊/単元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種變鄰域搜索方法,其特征在于,該變鄰域搜索方法是并行變鄰域搜索方法,包括如下步驟 步驟101、配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合,該數(shù)據(jù)集合中存儲有多個歷史局部最優(yōu)解; 步驟102、為多個所述實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合和迭代次數(shù)閾值; 步驟103、針對每ー個實例,從所述鄰域結(jié)構(gòu)集合中為該實例選取ー個鄰域結(jié)構(gòu)作為當前鄰域結(jié)構(gòu),該實例的當前解基于該當前鄰域結(jié)構(gòu)進行迭代搜索,得到局部最優(yōu)解;判斷該局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則將該實例的當前解和當前最優(yōu)解均更 新為該局部最優(yōu)解,如果該實例的當前最優(yōu)解優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解,則用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;若該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到所述迭代次數(shù)閾值后,從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代搜索次數(shù)加1,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,直到迭代搜索次數(shù)達到所述總迭代次數(shù);步驟104、所有實例的迭代搜索次數(shù)都達到所述總迭代次數(shù)后,選取所述數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解。
2.如權(quán)利要求I所述的變鄰域搜索方法,其特征在于,所述步驟101還包括 對所述數(shù)據(jù)集合中的歷史最優(yōu)解按照大小進行排序。
3.如權(quán)利要求I所述的變鄰域搜索方法,其特征在于,所述步驟103還包括 為該實例設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并設置該實例的迭代搜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)。
4.如權(quán)利要求I所述的變鄰域搜索方法,其特征在于,所述步驟103還包括 用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解之后,基于該當前鄰域結(jié)構(gòu)重新進行迭代搜索,將該實例的迭代搜索次數(shù)加1,直到迭代搜索次數(shù)達到所述總迭代次數(shù)。
5.如權(quán)利要求1-4中任一項所述的變鄰域捜索方法,其特征在干,所述步驟103中還包括 若該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)沒有達到所述迭代次數(shù)閾值時,將該實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索,直到迭代搜索次數(shù)達到所述總迭代次數(shù)。
6.如權(quán)利要求5所述的變鄰域搜索方法,其特征在于,所述步驟103還包括 當多個實例需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新吋,則從該多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替該最差的歷史最優(yōu)解。
7.如權(quán)利要求I所述的變鄰域搜索方法,其特征在于,多個所述實例中,至少有ー個實例是基于所述數(shù)據(jù)集合中存儲的最優(yōu)的歷史最優(yōu)解進行迭代搜索。
8.一種變鄰域捜索裝置,其特征在于,包括配置模塊、迭代捜索模塊、判斷模塊、更新模塊和全局最優(yōu)解確定模塊,其中 所述配置模塊設置成配置多個實例及供多個所述實例共享的ー個數(shù)據(jù)集合,該數(shù)據(jù)集合中存儲有多個歷史最優(yōu)解;還為多個所述實例設置相同的鄰域結(jié)構(gòu)個數(shù)、總迭代次數(shù)、鄰域結(jié)構(gòu)集合和迭代次數(shù)閾值; 所述迭代捜索模塊設置成針對每ー個實例,從所述鄰域結(jié)構(gòu)集合中為該實例選取ー個鄰域結(jié)構(gòu)作為當前鄰域結(jié)構(gòu),將該實例的當前解基于該當前鄰域結(jié)構(gòu)進行迭代搜索,得到局部最優(yōu)解;還從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代搜索次數(shù)加1,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索; 所述判斷模塊設置成針對每ー個實例,所述迭代捜索模塊得到該實例的局部最優(yōu)解后,判斷該實例迭代搜索得到的局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則通知所述更新模塊用該實例的局部最優(yōu)解代替該當前最優(yōu)解;還判斷該實例的當前最優(yōu)解是否優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu) 解 ,若是,則通知所述更新模塊用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;還判斷該局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解后,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到所述迭代次數(shù)閾值后,通知所述迭代搜索模塊從所述數(shù)據(jù)集合中隨機選取一個歷史最優(yōu)解作為該實例的當前解,將該實例的迭代捜索次數(shù)加1,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索;判斷某ー實例的迭代搜索次數(shù)達到所述總迭代次數(shù)后,通知所述迭代捜索模塊針對該實例停止捜索;判斷所有實例的迭代捜索次數(shù)都達到所述總迭代次數(shù)后,通知所述全局最優(yōu)解確定模塊確定全局最優(yōu)解; 所述更新模塊設置成用實例迭代捜索得到的局部最優(yōu)解代替該實例的當前最優(yōu)解;用該實例的當前最優(yōu)解代替所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解; 所述全局最優(yōu)解確定模塊設置成選取所述數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解。
9.如權(quán)利要求8所述的變鄰域搜索裝置,其特征在于,所述配置模塊還設置成 為每個實例均設置ー個初始解、設置該實例的當前最優(yōu)解和當前解均等于該初始解,并設置該實例的迭代搜索次數(shù)和該實例的當前最優(yōu)解未更新前已迭代次數(shù)。
10.如權(quán)利要求9所述的變鄰域搜索裝置,其特征在于,所述配置模塊為每個實例設置的初始解均不同。
11.如權(quán)利要求8中任一項所述的變鄰域捜索裝置,其特征在于 所述迭代搜索模塊還設置成在所述更新模塊用實例的當前最優(yōu)解代替最差的歷史最優(yōu)解之后,基于該當前鄰域結(jié)構(gòu)重新進行迭代捜索,將該實例的迭代搜索次數(shù)加I。
12.如權(quán)利要求8-11中任一項所述的變鄰域捜索裝置,其特征在于 所述判斷模塊還設置成判斷實例迭代捜索得到的局部最優(yōu)解不優(yōu)于該實例的當前最優(yōu)解時,判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)沒有達到所述迭代次數(shù)閾值吋,通知所述迭代捜索模塊將該實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索; 所述迭代搜索模塊還設置成將實例的當前最優(yōu)解未更新前已迭代次數(shù)加1,迭代搜索次數(shù)加I后,從所述鄰域結(jié)構(gòu)集合中選取新的鄰域結(jié)構(gòu)繼續(xù)進行迭代捜索。
13.如權(quán)利要求8-11中任一項所述的變鄰域捜索裝置,其特征在于 所述判斷模塊還設置成當判斷多個實例需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新時,通知所述更新模塊從該多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替所述數(shù)據(jù)集合中最差的歷史最優(yōu)解; 所述更新模塊還設置成從需要同時對所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解進行更新的多個實例的當前最優(yōu)解中選擇最優(yōu)的ー個來代替所述數(shù)據(jù)集合中最差的歷史最優(yōu)解。
全文摘要
一種變鄰域搜索方法和裝置,方法包括,配置多個實例及多個實例共享的數(shù)據(jù)集合;針對每一個實例,從鄰域結(jié)構(gòu)集合中為該實例選取一個鄰域結(jié)構(gòu),該實例的當前解基于當前鄰域結(jié)構(gòu)進行迭代搜索,得到局部最優(yōu)解;判斷該局部最優(yōu)解是否優(yōu)于該實例的當前最優(yōu)解,若是,則將該實例的當前解和當前最優(yōu)解更新為該局部最優(yōu)解,如果該實例的當前最優(yōu)解優(yōu)于所述數(shù)據(jù)集合中存儲的最差的歷史最優(yōu)解,則用該實例的當前最優(yōu)解代替該最差的歷史最優(yōu)解;否則判斷該實例在其當前最優(yōu)解未更新前已迭代次數(shù)達到迭代次數(shù)閾值后,從數(shù)據(jù)集合中隨機選取歷史最優(yōu)解作為該實例的當前解;所有實例的迭代搜索次數(shù)都達到總迭代次數(shù)后,選取數(shù)據(jù)集合中最優(yōu)的解作為全局最優(yōu)解。
文檔編號G06F17/30GK102855328SQ20121034824
公開日2013年1月2日 申請日期2012年9月18日 優(yōu)先權(quán)日2012年9月18日
發(fā)明者張俊, 顏秉珩, 崔贏, 張現(xiàn)忠 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1