日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

差分进化算法

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 差分进化算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、差分進化算法描述
  • 二、差分進化算法流程
          • 1.初始化
          • 2.變異
          • 3.交叉
          • 4.選擇
          • 5。終結條件
    • 2.流程圖
  • 總結


前言

差分進化算法(Differential Evolution Algorithm,DE)是一種高效的全局優化算法。它也是基于群體的啟發式搜索算法,群中的每個個體對應一個解向量。差分進化算法的進化流程則與遺傳算法非常類似,都包括變異、雜交和選擇操作,但這些操作的具體定義與遺傳算法有所不同。(百度百科)

一、差分進化算法描述

差分進化算法和遺傳算法有些相似,但是比遺傳算法簡單好實現,但是差分進化算法的變種,或者說變形有很多,大家可以根據具體情況選擇。
差分進化算法也是在現有的解上面,根據一定的辦法選擇幾個解,根據變異公式把這幾個解融合成一個變異解,這個過程稱為變異;把第i個變異解和第i個舊解的每個參數,跟據一定概率選擇選擇新解或者舊解的值,稱為交叉,形成交叉解;把第i個交叉解和第i個舊解比較,選擇較優的解保存作為下一次循環的解,這也是差分進化算法最不同于遺傳算法的地方。

二、差分進化算法流程

1.初始化

隨機初始化數目為NP的D維參數向量xx(i)表示第i個解,每個解參數可以表示為x(i,j),i=1,2,…,NP,j=1,2,…,D
解數目NP根據情況選擇,一般選取[50,200]。

2.變異

對于每個解向量x(i),對應的變異向量v可以表示為:
v(i)=x(r0)+F*(x(r1)-x(r2))
r0,r1,r2為屬于[1,…,NP]的三個隨機數,并且i,r0,r1,r2都不相同,這要求NP必須大于等于4。
變異算子 F 取值范圍為[0,2],F過小可能陷入局部最優,F過大則不容易收斂,一般去[0.4,1]居多。
邊界問題:如果變異以后的值v(i,j)超出了邊界,可以隨機再選擇一個數,或者直接去邊界值都是可以的。

3.交叉

接下來求交叉向量u,對于u的每個值,有:
如果 rand()<=CR: u(i,j)=v(i,j)
如果 rand()>CR : u(i,j)=x(i,j)
rand()是一個隨機數,CR是交叉算子,[0,1],用來控制選擇變異向量值還是原來的向量值。

4.選擇

交叉向量原向量對比,選擇較優的那個,這里交叉向量之和對應的原向量對比,也就是對比u(i)和x(i)哪個更優,就選擇哪個作為新的解向量,更新向量x,進行下一步。

5。終結條件

當最后的解滿足條件,或者遍歷次數達到最大,則結束,否則重復2到4。

2.流程圖

總結

差分進化算法比較簡答,容易實現,可修改的地方也不少,比如變異向量選擇上面,可以選擇x(best)+F*(x(r1)-x(r2)),x(best)是全局最優解。甚至說F*(…)里面的隨機參數,可以是四個六個,這些都是差分進化算法的變形。

總結

以上是生活随笔為你收集整理的差分进化算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。