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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Algorithm之OP:OP之GA遗传算法思路理解相关配图资料

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Algorithm之OP:OP之GA遗传算法思路理解相关配图资料 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Optimality之GA遺傳算法思路理解相關配圖資料

?

?

目錄

GA遺傳算法思路理解

GA算法過程

1、總體思路

2、各個步驟

GA算法代碼

1、偽代碼

SGA實例講解

1、求函數最值

2、求連續函數的最值

Matlab的實現之GAOT工具箱


?

?

?

GA遺傳算法思路理解

遺傳算法Genetic Algorithm

?

?

GA算法過程

1、總體思路

2、各個步驟

(1)、編碼

(2)、選擇

(3)、變異

T3、循環交叉CX

?

?

GA算法代碼

1、偽代碼

Procedure Genetic Algorithmbegint = 0 ;初始化 P(t) ;計算 P(t) 的適應值 ;while (不滿足停止準則) do begint = t+1 ; 從P(t-1)中選擇 P(t) ; %selection重組 P(t) ; % crossover and mutationend end

?

SGA實例講解

1、求函數最值

求函數f(x)=x^2的最大值,x為自然數且0≤x≤31。

編碼

編碼方式:二進制碼
? ? 00000 ? 0;?? ?01101 ??? ?13; ?11111 ? 31
?

隨機初始群體種群規模:4
?
?“轉盤賭”選擇
一點雜交,二進制變異
?

?

?

2、求連續函數的最值

求f ( x) = x sin(10π x) + 2.0 ?x ∈ [?1, 2]

Fitness.m文件 function [sol,eval]=fitness(sol,options) x=sol(1);eval = x*sin(10*pi*x)+2.0;
編碼

實數問題:變量x為實數,如何把z∈[x,y] → {a1,…,aL} ∈{0,1}L

{a1,…,aL} ∈{0,1}L 必須可逆(一個表現型對應一個基因型) .

解碼算子:Γ: {0,1}L ?→ [x,y]

染色體長度L決定可行解的最大精度。高精度 ?? ?長染色體(慢進化)

? ? ? ?設定求解精確到6位小數,因區間長度位2-(-1)=3,則需將區間分為 3X106等份。因 2097152=221< 3X106≤222=4194304。故編碼 的二進制串長L=22。

比如:
<0000000000000000000000>?? ?? -1;
<1111111111111111111111> ? ? ? ? ?? 2
<1110000000111111000101> ? ? ? ? 1.627 888
1.627888 = -1+3x(1110000000111111000101) 2 /(222-1) = -1+3x3674053/(222-1)

?

隨機初始化種群?

適應度評估

適應函數

本實例目標函數在定義域內均大于0,且是求函數最大值, 故直接引用目標函數作為適應函數:

f(s) = f(x) 其中二進制串s對于變量x的值。

s1 =<0000001110000000010000> ? x1= -0.958 973 ? ? ? 適應值: f(s1) = f(x1) =1.078 878

s2=<1110000000111111000101> ? ?? x2= 1.627 888 ? ? ? 適應值: f(s2) = f(x2) = 3.250 650

?

選擇操作(“輪盤賭”選擇)

?

交叉操作(單點交叉)

交叉前(父):

? ? ? ? ? s1=<00000 | 01110000000010000>

? ? ? ? ? s2=<11100 | 00000111111000101>

交叉后(子):

? ? ? ? ? s’1=<00000 | 00000111111000101>

? ? ? ? ? s’2=<11100 | 01110000000010000>

適應值:?? ?

? ? ? ? ?f(s’1) = f(-0.998 113) =1.940 865

? ? ? ? ?f(s’2) = f(1.666 028) = 3.459 245

s’2的適應值比其雙親個體的適應值高。

?

?

遺傳算法的參數

種群規模: 50
染色體長度: L=22
最大進化代數: 150
交叉概率: Pc=0.25
變異概率: Pm=0.01

模擬結果

模擬結果(最佳個體進化情況)

3、無約束優化問題

GA編碼

X=(x1,x2,…,xn)的各個變量可以按二進制編碼方法分別編碼。

對于變量xi 的上、下限約束li≤xi ≤ ui(i=1,2,…,n),依據解的精度要求(有效位數) 求得各個變量X=(x1,x2,…,xn)的二進制碼位數(m1,m2,…,mn),確定方法 類似于SGA實例2,

因此將n個二進制位串順序連接起來,構成一個個 體的染色體編碼,編碼的總位數m=m1+m2+…+mn。

GA解碼

?解碼時仍按各個變量的編碼順序分別實現常規的二進制編碼解碼方法。

?

4、約束最優化問題

?

?

Matlab的實現之GAOT工具箱

1、核心函數:
(1) [pop]=initializega(num,bounds,eevalFN,eevalOps,options)-----初始種群的 生成函數
【輸出參數】
pop-----生成的初始種群
【輸入參數】
num-----種群中的個體數目
bounds-----代表變量的上下界的矩陣 eevalFN-----適應度函數
eevalOps-----傳遞給適應度函數的參數
options-----選擇編碼形式(浮點編碼或是二進制編碼)與精度,如 [type prec], type-----為1時選擇浮點編碼,否則為二進制編碼
prec-----變量進行二進制編碼時指定的精度,默認[1e-6 1]

(2) [x,endPop,bPop,traceInfo] =ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectFN,…
selectOps,xOverFNs,xOverOps,mutFNs,mutOps)
-------遺傳算法函數
? 【輸出參數】
x------求得的最優解
endPop------最終得到的種群
bPop------最優種群的一個搜索軌跡
traceInfo------每代種群中最優及平均個體構成的矩陣
? 【輸入參數】
bounds------代表變量上下界的矩陣 evalFN------適應度函數
evalOps------傳遞給適應度函數的參數 startPop------初始種群

【輸入參數】
opts------- [epsilon prob_ops display],opts(1:2)等同于initializega的 options參數,第三個參數控制是否輸出,一般為0。如[1e-6 1 0]
termFN-------終止函數的名稱,如['maxGenTerm']
termOps-------傳遞個終止函數的參數,如[100] selectFN-------選擇函數的名稱,如['normGeomSelect'] selectOps-------傳遞個選擇函數的參數,如[0.08]
xOverFNs-------交叉函數名稱表,以空格分開,如['arithXover heuristicXover simpleXover']
xOverOps-------傳遞給交叉函數的參數表,如[2 0;2 3;2 0] mutFNs-------變異函數表,如['boundaryMutation
multiNonUnifMutation nonUnifMutation unifMutation']
mutOps-------傳遞給交叉函數的參數表,如[4 0 0;6 100 3;4 100 3;4 0 0]

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Algorithm之OP:OP之GA遗传算法思路理解相关配图资料的全部內容,希望文章能夠幫你解決所遇到的問題。

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