北大公開課-人工智能基礎(chǔ) 27 局部搜索與群體智能優(yōu)化和進(jìn)化算法



模擬退火,有點類似于三維空間中的爬山法
目的在于在這個局部中,逼近全局最優(yōu)解。

模擬退火的算法,初始節(jié)點為隨機(jī)生成
對于當(dāng)前節(jié)點的后繼節(jié)點,也隨機(jī)生成
但是對于由后繼節(jié)點替換當(dāng)前節(jié)點的規(guī)則,既非用最大最小值替換(最陡峭版本爬山法),也非用隨機(jī)的后繼節(jié)點替換當(dāng)前節(jié)點(隨機(jī)爬山法),
而是以概率p來接受價值更高的后繼節(jié)點替換當(dāng)前節(jié)點,這個概率p,相當(dāng)于模擬退火算法的溫度
直到解具有比當(dāng)前閾值最低的值,或者迭代次數(shù)已經(jīng)到達(dá)設(shè)定值,兩個狀態(tài)之一的情況下
類似于凝固狀態(tài),則返回該節(jié)點作為solution

模擬退火算法邏輯說明
設(shè)定初始參數(shù)problem,定義為問題狀態(tài)
參數(shù)schedule ,相當(dāng)于時間t 到 溫度T的映射表
將問題的初始狀態(tài)定義為current 當(dāng)前節(jié)點
循環(huán):以時間t 從1到無窮大,進(jìn)行循環(huán)
? ? ? ? 當(dāng)使用schedule函數(shù),將時間t映射為溫度T的函數(shù)
? ? ? ? 如果溫度為0,則返回當(dāng)前的節(jié)點(這里的溫度是絕對溫度,如果溫度為絕對零度,那已經(jīng)是最小值),退火過程也肯定結(jié)束了
? ? ? ? 如果溫度不為0,則隨機(jī)選擇當(dāng)前的后繼節(jié)點最為當(dāng)前節(jié)點
? ? ? ? 用后繼節(jié)點的問題,減去當(dāng)前節(jié)點的溫度,記作能量值 E
? ? ? ? 如果這個能量值大于0, 則基于概率p,將next 后繼節(jié)點, 作為curren當(dāng)前節(jié)點,進(jìn)行下一輪迭代。


模仿自然選擇過程的遺傳算法

遺傳算法,是進(jìn)化算法的一類


用遺傳算法解決8皇后問題
相當(dāng)于將兩個不同解,互相雜交,各取沒有問題的一段互相雜交。

直至找到更優(yōu)的狀態(tài)解

遺傳算法的邏輯
初始設(shè)定兩個參數(shù), 種群 population,個體的集合
適應(yīng)性函數(shù) FITNESS-FN,用于度量個體適應(yīng)性的度量功能函數(shù)
循環(huán):
? ? 設(shè)置新的種群為空集合
? ? 以種群的規(guī)模,作為循環(huán)的次數(shù) (從1-種群規(guī)模進(jìn)行循環(huán))
? ? ? ?隨機(jī)以x,y切分種群,且進(jìn)行雜交運算,將mutate的xy子節(jié)點作為新的種群。

