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