初識禁忌搜尋演算法

2021-09-22 19:23:00 字數 709 閱讀 1976

一周前和實驗室師弟一起**的,在我的影響下他開始去坐畢設了...嘖嘖;現在等我同學過來找我,把那次的討論內容回憶一下。

寫一寫個人理解,語句比較混亂,只乙個入門,我並沒有深入研究過。

這是乙個啟發式搜尋演算法。

以解決tsp問題為例,假設abcde五個城市,各個城市間距離的無向圖。

1.假設以a開頭,abcde,這個假設是隨意的,因為tsp是環,沒有開頭,計算距離的時候需要加上環.

2.bcde兩兩交換,注意是相鄰交換,不是a(n,2),是bc,cd,de交換,算出所有的tsp距離,注意abcde距離需要加上ea的距離,假設算出的最短距離的序列為seq1。

3.將seq1加入禁忌表中,包括序號1,表示第乙個序列,序列,以及長度。

4.取seq1,abcde,相鄰交換bcde,這肯定和上一次有重複,但是不會完全重複,取最短路徑對應的序列加入禁忌表,成為seq2.

5.重複k次,禁忌表的長度為k,為什麼禁忌表中要儲存k次,不選k次中最小的一次,因為即便最小的一次可能是區域性最優,其他的非區域性最優通過相鄰交換可能得到全域性最優。

禁忌表的長度和禁忌長度不是乙個概念,都是為了保證演算法多樣性。

for 禁忌表的長度

for 禁忌長度

對每個序列,重複禁忌長度的次數,比如說禁忌長度為3,選擇3次中最小的替換禁忌表中的新東西。

完全是個人理解,不一定正確,我還沒有研究禁忌搜尋,只是做乙個記錄,請各位看官去其糟粕,取其精華。

禁忌搜尋演算法

禁忌搜尋 tabu search 演算法是一種亞啟發式 meta heuristic 隨機搜尋演算法,它從乙個初始可行解出發,選擇一系列的特定搜尋方向 移動 作為試探,選擇實現讓特定的目標函式值變化最多的移動。為了避免陷入區域性最優解,ts採用了一種靈活的 記憶 技術,對已經進行的優化過程進行記錄和...

禁忌搜尋演算法

對於優化問題相關演算法有如下分類 禁忌搜尋是由區域性搜尋演算法發展而來,爬山法是從通用區域性搜尋演算法改進而來。在介紹禁忌搜尋之前先來熟悉下爬山法和區域性搜尋演算法。在搜尋過程中,始終選擇當前點的鄰居中與離目標最近者的方向搜尋。1 隨機選擇乙個初始的可能解x0 d,xb x0,p n xb d是問題...

禁忌搜尋演算法求解TSP

本文的禁忌搜尋演算法是最經典禁忌搜尋演算法,可以在此基礎上進行修改和擴充套件 主函式 author chauncy xu date 2020年4月1日 clc clear all close all len side,city city num city size city,1 城市數目 gen 1...