遺傳演算法的matlab實現

2021-08-02 22:53:02 字數 876 閱讀 8835

遺傳演算法是一種全域性最優化演算法,是運用了演化論優勝劣汰原理的隨機化搜尋方法。

前些日子,在進行畢業設計的相關研究中,我接觸到了遺傳演算法,用其對乙個五元非線性函式進行最優化搜尋。**平台使用的是matlab,主要使用的是謝菲爾德大學的matlab遺傳演算法工具箱。

具體程式如下:

clc

clear all

close all

lbx=-1;ubx=1; %函式自變數x範圍【-1,1】

lby=-1;uby=1; %函式自變數y範圍【-1,1】

%% 定義遺傳演算法引數

nind=50; %個體數目

maxgen=50; %最大遺傳代數

preci=20; %變數的二進位制位數

ggap=0.90; %代溝

px=0.97; %交叉概率

pm=0.001; %變異概率

trace=zeros(6,maxgen); %尋優結果的初始值

fieldd=[preci preci preci preci preci;lbx lby lbx lbx lbx;ubx uby ubx ubx ubx;1 1 1 1 1;0 0 0 0 0;1 1 1 1 1;1 1 1 1 1]; %區域描述器

chrom=crtbp(nind,preci*5); %初始種群

%% 優化

gen=0; %代計數器

xy=bs2rv(chrom,fieldd);

遺傳演算法(GA)的matlab實現

一 task 二 實現過程 1.編碼與解碼 編碼 在編碼之前需要確定求解的精度,設定求解的精度為小數點後六位,即10 6。這樣可以將每個自變數x的解空間劃分為 1 0 10 6 1000000個等分。使n滿足 1 0 10 6 2 n 1,這裡n表示使上式成立的最小整數,即表示自變數x的基因串的長度...

遺傳演算法及matlab簡單實現

遺傳演算法的實現 遺傳演算法的一次迭代稱為一代,每一代都有一組解。新的一組解不但可以有選擇的保留一些適度值高的舊的解,而且可以包括一些由其它解結合得到的新解。最初的一組解 初始群體 是隨機生成的,之後的每組解由遺傳操作生成。每個解都通過乙個與目標函式相關的適應度函式給予評價,通過遺傳過程不斷重複,達...

Matlab遺傳演算法例項

clear clc popsize input 輸入種群大小 n lengh input 請輸入染色體長度 n popsize 100 lengh 10 a 1 b 2 y x sin 10 pi x 1.0 初始種群 pop round rand popsize,lengh 行 種群大小,列 染色...