04 最優化方法
推薦書籍:
《最優化方法》 李元科
基本概念:
目標函式 無約束優化 約束優化
迭代下降法
1)圖解法:
2)迭代下降法
導數是函式在一個點上變化率的描述 。 偏導數是函式在一點沿座標方向的變化率 ,方向導數是函式在一點沿任意方向的變化率 ,梯度則是函式在一個點上變化率最大的方向導數 。 函式在一個點上沿任意方向的方向導數等於函式在該點的梯度在該方向上的投影 。
方向導數:
梯度定義:
無約束優化 :
約束優化:
梯度下降法(看一階導數):
牛頓法(二階導數):
啟發式演算法:
遺傳演算法:模擬退火演算法:蟻群演算法:
模擬退火演算法:
參看:
http://www.cnblogs.com/ranjiewen/p/6084052.html
from random import randint
def flip(segs, pos):
return segs[:pos] + str(1-int(segs[pos])) + segs[pos+1:]
def flip_n(segs, n):
for i in range(n):
segs = flip(segs, randint(0, len(segs)-1))
return segs
def anneal(text, segs, iterations, cooling_rate):
temperature = float(len(segs))
while temperature > 0.5:
best_segs, best = segs, evaluate(text, segs)
for i in range(iterations):
guess = flip_n(segs, int(round(temperature,0)))
score = evaluate(text, guess)
if score < best:
best, best_segs = score, guess
score, segs = best, best_segs
temperature = temperature / cooling_rate
print(evaluate(text, segs), segment(text, segs))
print()
return segs
執行示例:
text = "doyouseethekittyseethedoggydoyoulikethekittylikethedoggy"
seg1 = "0000000000000001000000000010000000000000000100000000000"
anneal(text, seg1, 5000, 1.2)
相關文章
- 效能優化04-圖片優化優化
- 04 | 函式與優化方法:模型的自我學習(上)函式優化模型
- ListView最終優化方法,絕對流暢View優化
- 最優化之無約束優化優化
- 如何優化WindowsOS使SQLServer效能最優化優化WindowsSQLServer
- 數值最優化—優化問題的解(二)優化
- Sql優化方法SQL優化
- Oracle優化方法Oracle優化
- union 優化方法優化
- win10最詳細優化設定_win10怎麼優化最流暢Win10優化
- 非線性最優化最佳教材優化
- win10優化網路延遲操作方法_win10最詳細優化網路設定Win10優化
- 【NLP】常用優化方法優化
- MySQL 優化常用方法MySql優化
- Web 效能優化方法Web優化
- Oracle優化的方法Oracle優化
- 運籌優化(十七)--儲存論基礎及其最優化求解優化
- 運籌優化(十八)--對策論基礎及其最優化求解優化
- 運籌優化(十九)--決策論基礎及其最優化求解優化
- 運籌優化(十六)--排隊論基礎及其最優化求解優化
- 運籌優化(十三)--大規模優化方法優化
- 高效的SQL(Index unique scan最優化)SQLIndex優化
- 最簡單的服務響應時長優化方法,沒有之一優化
- java效能優化方案9——優化自定義hasCode()方法和equals()方法Java優化
- SQL優化的方法論SQL優化
- SQL優化常用方法11SQL優化
- SQL優化常用方法10SQL優化
- SQL優化常用方法16SQL優化
- SQL優化常用方法2SQL優化
- SQL優化常用方法5SQL優化
- SQL優化常用方法8SQL優化
- SQL優化常用方法3SQL優化
- SQL優化常用方法19SQL優化
- SQL優化常用方法20SQL優化
- SQL優化常用方法18SQL優化
- SQL優化常用方法12SQL優化
- SQL優化常用方法46SQL優化
- SQL優化常用方法52SQL優化