干貨|迭代局部搜索算法(Iterated local search)探幽(附C++代碼及注釋)
迭代局部搜索
介紹
迭代局部搜索屬于探索性局部搜索方法的一種。它在局部搜索得到的局部最優(yōu)解上,加入了擾動(dòng),然后再重新進(jìn)行局部搜索
搜索過(guò)程
- 初始狀態(tài):best_solution(最優(yōu)解)、current_solution(當(dāng)前解)。
- 從初始解(best_solution)中進(jìn)行局部搜索,找到一個(gè)局部最優(yōu)解s1(best_solution)。
- 擾動(dòng)s1(best_solution),獲得新的解s2(current_solution)。
- 從新解s2(current_solution)中進(jìn)行局部搜索,再次找到一個(gè)局部最優(yōu)解s3(best_solution)。
- 基于判斷策略,對(duì)s3(current_solution)好壞進(jìn)行判斷。選擇是否接受s3(current_solution)作為新的best_solution。
- 直到達(dá)到邊界條件,不然跳回第二步一直循環(huán)搜索。
偽代碼
ILS偽代碼
示意圖
ILS示意圖

