智慧演算法-禁忌搜尋演算法(2)
theme: Chinese-red
一起養成寫作習慣!這是我參與「掘金日新計劃 · 4 月更文挑戰」的第15天,點選檢視活動詳情。
1. 禁忌搜尋演算法
本文主要介紹禁忌搜尋演算法中關鍵步驟的選取。
首先簡單回顧一下禁忌搜尋演算法的大體思路:一群兔子向要到達最高的山峰,他們從出發點(初始解)開始探索,每找一步,他們相互告知,在目前所到的最高處座上記號(禁忌),然後再商量下一步往哪裡找,短時間內他們不會重複再去探索已經做了記號的地方(記號就相當於被禁忌了),就這樣他們重複剛才的方式繼續探索,最終找到最高峰。
該演算法中”禁忌“是指:禁止重複前面的工作,相當於某個解被關進“小黑屋
”了,需要等一段時間(禁忌長度)才能放出來,從而為了跳出區域性最優點。
禁忌搜尋演算法基本介紹及例項詳解請參考智慧演算法-禁忌搜尋演算法 - 掘金 (juejin.cn)
2. 關鍵步驟
2.1 禁忌物件的選取
禁忌物件是指禁忌表中被禁的那些變化元素,禁忌物件主要可以選擇一下幾種: - 解的簡單變化:同樣的解在一定禁忌長度內(期限)不能再出現。如$ABCDE$上一輪出現,在禁忌長度內就不能再出現$ABCDE$這個解。 - 解向量分量的變化:同樣的解的變化方式不能連續出現。如解$ABCDE$通過交換$BC$得到解$ACBDE$,即交換$BC$分量的操作不能連續出現。 - 目標值變化:相同的目標值在一定禁忌長度內不能出現。如將 $X1$ 代入目標函式得到100,將 $X2$ 代入目標函式也得到100,將 $X3$ 代入目標函式也得到100,因為得到的目標值都一樣,則$X1$,$X2$,$X3$在禁忌長度內需要被禁忌。
注意:解的簡單變化比解的分量變化和目標值變化的受禁範圍要小,可能造成計算時間的增加,但也給予了較大的搜尋範圍; 解分量的變化和目標值變化的禁忌範圍大,減少了計算時間,可能導致陷在區域性最優點(搜尋的不全)。
2.2 禁忌長度的選取
禁忌長度是指禁忌的步數,通俗來講就是關進小黑屋的期限,也就是在多少輪迭代中不能再用這個解。禁忌長度的選取主要有以下三種方式: 1. $t$可以為常數,易於實現;(t固定不變了) 2. $t$在$[tmin,tmax]$範圍內,t是可以變化的數,tmin和tmax是確定的。$tmin$和$tmax$需要根據問題的規模確定,t的大小主要依據實際問題、實驗和設計者的經驗。(t在上下限之間變化) 3. $tmin$和$tmax$的動態選擇。(上下限的大小動態調整) 禁忌長度對解的影響: - 禁忌長度過短,一旦陷入區域性最優點,出現迴圈無法跳出(想象一下禁忌長度為0,就反覆選擇同一個最優解) - 禁忌長度過長,造成計算時間較大,也可能造成計算無法繼續下去(相當於都被禁忌了,下一步迭代沒有解可以選了)。
2.3 候選集合的確定
每一輪迭代都要進行新的探索,那將要探索的地方是哪裡呢?將要探索的地方也就是候選解集。候選集主要有以下幾個方式來確定: 1. 從鄰域中選擇若干目標值最佳的鄰居入選; 2. 在鄰域中的一部分鄰居中選擇若干目標值最佳的狀態入選; 3. 隨機選取。
2.4 評價函式
每一輪迭代探索了很多新的地方,那這些地方的好壞怎麼判斷呢?需要用評價函式來計算這個解的好壞,起到了一個“評價”的作用。評價函式選擇方式從大的角度來說主要分為兩種: 1. 直接評價函式,通過目標函式的運算得到評價函式; 2. 間接評價函式,構造其他評價函式替代目標函式,應反映目標函式的特性,減少計算複雜性。
- 【深度學習】TensorFlow線性迴歸案例演示(3)
- 【機器學習】LSTM神經網路實現中國人口預測(2)
- 【資料處理】北京市租房案例實戰(5)
- 【資料處理】Pandas庫:畫圖與檔案讀取
- 【資料處理】Pandas庫:陣列運算
- 【資料處理】北京市租房案例實戰(3)
- 【PaddleDetection深度學習】中國交通標誌影象分類任務
- 【資料處理】北京市租房案例實戰(4)
- 【資料處理】北京市租房案例實戰(2)
- 【資料處理】Seaborn-NBA資料分析案例(4)
- 【深度學習】工業安全生產環境違規使用手機的識別
- 【資料處理】北京市租房案例實戰(1)
- 【資料處理】Seaborn-NBA資料分析案例(2)
- 【Numpy】資料處理-Numpy庫基本介紹
- 【Numpy資料處理】ndarray介紹
- 【深度學習】醫學影像目標檢測-瘧原蟲識別問題
- Linux作業系統-基本使用(1)
- 智慧演算法-粒子群演算法(3)
- 智慧演算法-粒子群演算法(2)
- 智慧演算法-禁忌搜尋演算法(2)