演算法總結9 優化

2022-07-19 03:06:10 字數 1310 閱讀 3364

不同於之前的分類和聚類演算法,優化的目的是嘗試找到乙個使成本函式輸出最小化的值。這裡主要包括兩個演算法:模擬退火演算法和遺傳演算法。

成本函式:

接受乙個經推測的題解,並返回乙個數值結果,該值越大代表成本越高(題解表現越差),該值越小就表示題解越好。

模擬退火演算法:

優化演算法的目標可以看為尋找x使函式f(x)最小。

但是嚴格的最小值往往是很難達到的,我們不得不把眼光投入到尋找乙個盡可能好的次優解去。

最簡單的方法被稱為隨機法,即成千上萬次的對x進行猜測,然後把這些x中使f(x)最小的乙個作為答案。雖然這樣很簡單,但是效果很差。於是出現了爬山法。

爬山法從乙個隨機解出發,然後不斷向該解附近的使f(x)的值更小的x移動,直到當前x附近的解都比x差為止。為了使效果更好,我們可以從多個隨機解出發重複著乙個過程,將最好的乙個作為答案。很容易就能認識到,這樣找到的解是乙個極值點,是乙個區域性最小值。

爬山法雖然好,但是在其尋找最優解的過程中,前進的方向是固定的(使f(x)更小的方向),但是有時向其他方法前進也是必要的,因為f(x)可能先增大在變小成為最優的。

於是就有了模擬退火法。

該演算法這源於固體的退火過程,即先將溫度加到很高(大量原子被激發),再緩慢降溫(即退火),則能使達到能量最低點。如果急速降溫(即為淬火)則不能達到最低點。

模擬退火法同樣是從乙個隨機解出發。但是它在尋找最優解時並不一定是向更好的x移動,也有一定的概率向更差的x移動,這個概率開始較大,但是會隨時間而漸漸變小,直到穩定。一般該概率可以定義為:p=e ^ (-  (highcost – lowcost ) / temperature ),其中temperature是隨時間增大而變小的溫度,開始溫度很高時p -> 1,後來會漸漸變小使p->0。

遺傳演算法:

遺傳演算法的思想來自生物的遺傳和變異,演算法以種群為單位(乙個種群為一組既多個解),其演算法的執行過程如下:

隨機生成一組初始解(初始種群)。

計算種群中各個解的成本,然後進行排序。

我們將種群中靠前(成本低)的解保留下來,刪除其他解,這一過程稱為精英選拔。

對已有解進行微小的改變,將改變後的結果作為新的元素加入種群,這一過程稱為變異。

選擇一些優秀的解兩兩組合,然後將他們按某種方式進行結合(如求平均),將得到的結果作為新的元素加入種群,這一過程稱為交叉(配對)。

不斷重複2—5步,直到達到指定迭代次數或成本函式連續數代都沒有更好的改善。

得到一組解,該組解為演算法輸出。

該系列結束,恩,也許以後學了更多,有了更好的了解後會回來改一改,誰知道呢?

優化演算法初學總結

好久不寫部落格了,今晚搞乙個。趁著寫完畢業 沒事幹,學了學優化演算法,看到的書是 智慧型優化演算法及其matlab例項 和 matlab智慧型演算法超級學習手冊 先說一些這兩本書的優缺點吧,matlab例項寫的比較簡單,容易懂,大部分都能看的懂。學習手冊這本書就比較深入了,比較健壯,但是理解起來也相...

智慧型優化演算法總結

9月上旬準備數模國賽,提前準備了一些智慧型演算法,當時沒時間總結,現在比賽結束了抽空總結一下 思想 在一片濕地中生活著一群青蛙。濕地內離散的分布著許多石頭,青蛙通過尋找不同的石頭進行跳躍去找到食物較多的地方。每只青蛙個體之間通過文化的交流實現資訊的交換。每只青蛙都具有自己的文化。每只青蛙的文化被定義...

非線性最優化演算法總結

參考 疑問 1 lm演算法與slam第6講中定義不太一樣,信賴區域的確定中 的定義方法 帖子中用二階近似定義 而slam第六講中用一階近似來表達,兩者思想較為一致,判斷應是一階還是二階佔主導地位。不太明白的是,為何當一階佔主導地位是,採用更小的迭代步長,二階佔主導地位時,採用更大的迭代步長。且sla...