国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

機(jī)器學(xué)習(xí)基礎(chǔ)—— 模擬退火(Simulated Annealing)

2019-11-10 20:26:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

http://blog.csdn.net/lanchunhui/article/details/51112227

機(jī)器學(xué)習(xí)基礎(chǔ)(四十五)—— 模擬退火(Simulated Annealing)

2016-04-10 12:36 207人閱讀 評(píng)論(0) 收藏 舉報(bào) 分類:

模擬退火算法是受物理學(xué)領(lǐng)域啟發(fā)而提出的一種優(yōu)化算法。所謂的退火是指將合金加熱后再慢慢冷卻的過(guò)程。大量的原子因?yàn)槭艿郊ぐl(fā)而向周圍跳躍,然后又逐漸穩(wěn)定到一個(gè)低能階的狀態(tài),所以這些原子能夠找到一個(gè)低能階的配置(configuration)。

退火算法以一個(gè)問(wèn)題的隨機(jī)解開始。它用一個(gè)變量來(lái)表示溫度,這一溫度開始時(shí)非常高,而后逐漸變低:

def annealing(..., T=10000., cool=0.95, ...): while T>0.1: ... T *= cool123456123456

退火算法的每一次迭代期間,算法會(huì)首先隨機(jī)地選擇某個(gè)數(shù)字,然后朝某個(gè)方向變化。算法最為關(guān)鍵的部分在于,如果新的變化帶來(lái)的新的成本更低,則新的題解就會(huì)成為當(dāng)前題解,這個(gè)爬山算法類似。不過(guò)如果成本值更高的話,則新的題解仍將可能成為當(dāng)前題解(這是不同于爬山算法的地方)。這也是避免出現(xiàn)局部最小值的一種改進(jìn)。

某些情況下,我們能夠得到一個(gè)更優(yōu)的解之前轉(zhuǎn)向一個(gè)更差的解是很有必要的。模擬算法之所以管用,不僅在于它總是會(huì)接受一個(gè)更優(yōu)的解,而且在退貨的開始階段會(huì)(以一定概率)接受表現(xiàn)較差的解。隨著退火過(guò)程(溫度減少)的不斷進(jìn)行,算法越來(lái)越不可能接受較差的解。知道最后節(jié)點(diǎn),它將只會(huì)接受更優(yōu)的解。更高成本的題解,其被接受的概率如下: 

p=e?(highcost-lowcost)T

T 溫度(表示接受較差解的意愿)開始非常高,指數(shù)部分接近于0,所以概率幾乎為1.隨著溫度的遞減,高成本和低成本值之間的差異越來(lái)越重要——差異越大,概率越低。因此此算法只傾向于稍差的解而不會(huì)是非常差的解。

def annealing(domains, costf, T=10000., cool=0.95, step=1): s0 = [random.randint(domains[i][0], domains[i][1]) for i in range(len(domains))] while T>0.1: i = random.randint(0, len(domains)-1) dir = random.randint(-step, step) s1 = s0[:] s1[i] += dir if s1[i] < domains[i][0]: s1[i] = domains[i][0] if s1[i] > domains[i][1]: s1[i] = domains[i][1] c1, c0 = costf(s1), costf(s0) if (c1 < c0 or random.random() < pow(math.e, -(c1-c0)/T)) s0 = s1 T *= 0.95 return s0
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹棱县| 麻栗坡县| 陇川县| 崇仁县| 宜昌市| 库尔勒市| 七台河市| 萨迦县| 娄底市| 临漳县| 桐梓县| 广河县| 景泰县| 东城区| 永清县| 宁武县| 顺平县| 清涧县| 汕头市| 沾化县| 武乡县| 安宁市| 江都市| 阆中市| 威宁| 石台县| 古蔺县| 浦江县| 克拉玛依市| 开江县| 皋兰县| 永德县| 航空| 山阴县| 赫章县| 全南县| 镇雄县| 福州市| 江川县| 江川县| 望谟县|