優化

1、成本函數
成本函數是用優化算法解決問題的關鍵它通常最難確定。任何優化算法的目標就是要尋找一組能夠使成本函數的返回結果達到最小化的輸入,,因此成本函數需要返回一個值用以表示方案的好壞。
2、隨機搜索
從 輸入集中隨機選取一部分,然後確定成本最小的輸入,得到的可能是較小值,不是最小值,該算法不是一種非常好的優化算法,但簡單容易,可以作爲評估其他算法優劣的基線。
3、爬山法
較低成本值所對應的輸入很可能接近於其他低成本的輸入值。
爬山法以一個隨機解開始,然後在其臨近的解集中尋找更好的解(具有較低成本)。
爬山法往往取得只是局部最優解,可使用隨機重複爬山法,即讓爬山法以多個隨機生成的初始解爲起點,運行若干次,藉此希望其中一個解可以逼近全局最小值。
4、退火法
退活法以一個問題的隨機解開始,它用一個變量來表示溫度,這一溫度開始非常高,而後逐漸變低。每一次迭代,算法會隨機選中解題中的某個數字,然後朝某個方向變化。算法會接受一個更優的解,也會接受一個更差的解,不過隨着退火過程的不斷進行算法越來越不接受較差的解,知道最後,只接受更優的解。更高成本的解被接受的概率由下列公式給出:
這裏寫圖片描述
因爲溫度(接受較差解的意願)開始非常高,指數將總是接近於0,所以概率幾乎是1。隨着溫度遞減,高成本值和低成本值之間的差異越來越重要:差異越大,概率越低,因此算法只傾向於稍差的解而不會是非常差的解。
5、遺傳算法
先隨機生成一組解,稱之爲種羣。在優化的每一步,算法會計算整個種羣的成本函數,從而得到一個題解的有序列表,即是下一代種羣。將當前種羣中位於最頂端的題解挑選出來,稱爲精英選拔。新種羣的餘下部分由修改最優解形成。
修改的方法有兩種。
變異:對一個既有的解進行簡單的、輕微的、隨機的改變。
交叉(配對):選取最優解中兩個解,然後按某種方式進行結合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章