原文:《幾種優化(求最優解)演算法的比較 》
遺傳演算法
優點是能很好的處理約束,能很好的跳出區域性最優,最終得到全域性最優解,全域性搜尋能力強;缺點是收斂較慢,區域性搜尋能力較弱,執行時間長,且容易受引數的影響。遺傳演算法適合求解離散問題,具備數學理論支援,但是存在著漢明懸崖等問題。
模擬退火
優點是區域性搜尋能力強,執行時間較短;缺點是全域性搜尋能力差,容易受引數的影響。
爬山演算法
顯然爬山演算法較簡單,效率高,但是處理多約束大規模問題時力不從心,往往不能得到較好的解。
粒子群演算法
適合求解實數問題,演算法簡單,計算方便,求解速度快,但是存在著陷入區域性最優等問題。
蟻群演算法
適合在圖上搜尋路徑問題,計算開銷會大。
*漢明懸崖(hamming cliff)是二進位制編碼的乙個缺點,就是在某些相鄰整數的二進位制**之間有很大的漢明距離,使得遺傳演算法的交叉和突變都難以跨越。
格雷碼(gray code)可以克服這個問題,在相鄰整數之間漢明距離都為1,但是漢明距離在整數之間的差並非單調增加,引入了另一層次的隱懸崖。
在資訊理論中,兩個等長字串之間的漢明距離是兩個字串對應位置的不同字元的個數。換句話說,它就是將乙個字串變換成另外乙個字串所需要替換的字元個數。 例如:
* 1011101 與 1001001 之間的漢明距離是 2。
* 2143896 與 2233796 之間的漢明距離是 3。
* 「toned」 與 「roses」 之間的漢明距離是 3。
scipy求最優解(引數優化)
scipy數值優化 其實使用scipy進行數值優化,就是黑盒優化,我們不依賴於我們優化的函式的算術表示式。注意這個表示式通常可以用於高效的 非黑盒優化。scipy中的optimize子包中提供了常用的最優化演算法函式實現。我們可以直接呼叫這些函式完成我們的優化問題。optimize中函式最典型的特點...
使用遺傳演算法求最優解
在2008年全國大學生數學建模競賽,學習過matlab遺傳演算法工具箱求最優解,用得也比較熟練,時隔兩年忘得差不多了!現在想用ga工具箱來解決乙個優化問題,不得不重新查資料學習使用!這是乙個根據已知資料擬合乙個函式,使用最小二乘法作為適應度函式,求最小值 適應度函式如下 function f zpp...
用貪心演算法求最優解
題目 有 m 元錢,n 種物品 每種物品有 j 磅,總價值 f 元,可以 使用 0 到 f 的任意 購買相應磅的物品,例如使用 0.3f 元,可以購買 0.3j 磅物 品。要求輸出用 m 元錢最多能買到多少磅物品 演算法思想 每次都買價效比最高的產品,價效比的計算公式為 重量 價效比的含義為用最少的...