複製鏈接
請複製以下鏈接發送給好友

禁忌搜索

鎖定
禁忌搜索(Tabu Search,TS,又稱禁忌搜尋法)是一種現代啓發式算法,由美國科羅拉多大學教授Fred Glover在1986年左右提出的,是一個用來跳脱局部最優解的搜索方法。其先創立一個初始化的方案;基於此,算法“移動”到一相鄰的方案。經過許多連續的移動過程,提高解的質量。
中文名
禁忌搜索
外文名
Tabu Search
禁忌搜索示例
置換問題,如TSP
適用領域
電路設計和神經網絡等領域

禁忌搜索基本介紹

迄今為止,TS算法在組合優化、生產調度、機器學習、電路設計和神經網絡等領域取得了很大的成功,近年來又在函數全局優化方面得到較多的研究,並大有發展的趨勢。
針對局部鄰域搜索,為了實現全局優化,可嘗試的途徑有:以可控性概率接受劣解來逃逸局部極小,如模擬退火算法;擴大鄰域搜索結構,如TSP的2opt擴展到k-opt;多點並行搜索,如進化計算;變結構鄰域搜索( Mladenovic et al,1997);另外,就是採用TS的禁忌策略儘量避免迂迴搜索,它是一種確定性的局部極小突跳策略。
禁忌搜索是人工智能的一種體現,是局部鄰域搜索的一種擴展。禁忌搜索最重要的思想是標記對應已搜索的局部最優解的一些對象,並在進一步的迭代搜索中儘量避開這些對象(而不是絕對禁止循環),從而保證對不同的有效搜索途徑的探索。禁忌搜索涉及到鄰域(neighborhood)、禁忌表(tabu list)、禁忌長度(tabu length)、候選解(candidate)、藐視準則(aspiration criterion)等概念。 [1] 

禁忌搜索示例

組合優化是TS算法應用最多的領域。置換問題,如TSP、調度問題等,是一大批組合優化問題的典型代表,在此用它來解釋簡單的禁忌搜索算法的思想和操作。對於 n元素的置換問題,其所有排列狀態數為n!,當n較大時搜索空間的大小將是天文數字,而禁忌搜索則希望僅通過探索少數解來得到滿意的優化解。
首先,對置換問題定義一種鄰域搜索結構,如互換操作(SWAP),即隨機交換兩個點的位置,則每個狀態的鄰域解有Cn2=n(n一1)/2個。稱從一個狀態轉移到其鄰域中的另一個狀態為一次移動(move),顯然每次移動將導致適配值(反比於目標函數值)的變化。其次,我們採用一個存儲結構來區分移動的屬性,即是否為禁忌“對象”在以下示例中:考慮7元素的置換問題,並用每一狀態的相應21個鄰域解中最優的5次移動(對應最佳的5個適配值)作為候選解;為一定程度上防止迂迴搜索,每個被採納的移動在禁忌表中將滯留3步(即禁忌長度),即將移動在以下連續3步搜索中將被視為禁忌對象;需要指出的是,由於當前的禁忌對象對應狀態的適配值可能很好,因此在算法中設置判斷,若禁忌對象對應的適配值優於“ best so far”狀態,則無視其禁忌屬性而仍採納其為當前選擇,也就是通常所説的藐視準則(或稱特赦準則)。
簡單的禁忌搜索是在領域搜索的基礎上,通過設置禁忌表來禁忌一些已經歷的操作,並利用藐視準則來獎勵一些優良狀態,其中領域結構、候選解、禁忌長度、禁忌對象、藐視準則、終止準則等是影響禁忌搜索算法性能的關鍵。需要指出的是:
(1)由於TS是局部領域搜索的一種擴充,因此領域結構的設計很關鍵,它決定了當前解的領域解的產生形式和數目,以及各個解之間的關係。
(2)出於改善算法的優化時間性能的考慮,若領域結構決定了大量的領域解(尤其對大規模問題,如TSP的SWAP操作將產生Cn2個領域解),則可以僅嘗試部分互換的結果,而候選解也僅取其中的少量最佳狀態。
(3)禁忌長度是一個很重要的關鍵參數,它決定禁忌對象的任期,其大小直接進而影響整個算法的搜索進程和行為。同時,以上示例中,禁忌表中禁忌對象的替換是採用FIFO方式(不考慮藐視準則的作用),當然也可以採用其他方式,甚至是動態自適應的方式。
(4)藐視準則的設置是算法避免遺失優良狀態,激勵對優良狀態的局部搜索,進而實現全局優化的關鍵步驟。
(5)對於非禁忌候選狀態,算法無視它與當前狀態的適配值的優劣關係,僅考慮它們中間的最佳狀態為下一步決策,如此可實現對局部極小的突跳(是一種確定性策略)。
(6)為了使算法具有優良的優化性能或時間性能,必須設置一個合理的終止準則來結束整個搜索過程。
此外,在許多場合禁忌對象的被禁次數(frequency)也被用於指導搜索,以取得更大的搜索空間。禁忌次數越高,通常可認為出現循環搜索的概率越大。 [1] 

禁忌搜索算法流程

禁忌搜索算法

給以禁忌表H=
並選定一個初始解x;滿足停止規則時,停止計算,輸出結果;否則,在x的鄰域N(x)中選出滿足不受禁忌的候選集Can_N(x);在Can_N(x)中選一個評價值最佳的解x1,x=x1;更新歷史記錄H,重複STEP2。

禁忌搜索注意事項

不受禁忌的候選集包括兩種,一種是那些沒有被禁忌的元素,另一種是可以被解除禁忌的元素。 [2] 
參考資料
  • 1.    Fred Glover (1986). "Future Paths for Integer Programming and Links to Artificial Intelligence". Computers and Operations Research. 13 (5): 533–549. doi:10.1016/0305-0548(86)90048-1.
  • 2.    邢文訓.現代優化計算方法.北京:清華大學出版社,2005:58