Matlab遺傳演算法學習 recint m

2021-08-04 00:08:49 字數 1170 閱讀 4638

看書學習筆記

function newchrom = recint(oldchrom, xovr);

% identify the population size (nind) and the number of variables (nvar)

[nind,nvar] = size(oldchrom);

% identify the number of matings

xops = floor(nind/2);

%冒號運算子預設總是增序排列,

%冒號運算子可以指定增量步長值,(first:step:last),1:2:nind-1將產生1,3,5等等

% performs recombination

odd = 1:2:nind-1;

even= 2:2:nind;

% position of value of offspring compared to parents

alpha = -0.25 + 1.5 * rand(xops,nvar);

%利用冒號本身可以引用矩陣某行或列的所有元素

% recombination

newchrom(odd,:) = oldchrom(odd,:) + alpha .* (oldchrom(even,:) - oldchrom(odd,:));

% the same ones more for second half of offspring

alpha = -0.25 + 1.5 * rand(xops,nvar);

newchrom(even,:) = oldchrom(odd,:) + alpha .* (oldchrom(even,:) - oldchrom(odd,:));

% if the number of individuals is odd, the last individual cannot be mated

% but must be included in the new population

%最後乙個奇數行不參與交配,直接加入到newchrom的末尾

%餘項函式,取餘rem(10,3)=1

if rem(nind,2), newchrom(nind,:)=oldchrom(nind,:); end

% end of function

Matlab遺傳演算法學習 recint m

看書學習筆記 function newchrom recint oldchrom,xovr identify the population size nind and the number of variables nvar nind,nvar size oldchrom identify the ...

遺傳演算法學習

今天學習遺傳演算法 首先我學習的教程裡的案例是利用遺傳演算法這個群優化演算法來優化bp神經網路的權值和閾值。但它是直接呼叫的工具箱,於是我打算不呼叫工具箱寫乙個詳細點的來加深自己對演算法的理解。原理 簡而言之就是模仿達爾文的演化論,生成種群,通過變異交叉來進化種群,最後得到一群適應度高的優秀種群。我...

遺傳演算法學習

遺傳演算法 ga 是模擬生物在自然環境中的遺傳和精華的過程形成的自適應全域性優化搜尋演算法。通過自然選擇,交叉 遺傳 變異等步驟來產生新一代種群,並逐步使種群精華到包含近似最優解的狀態。種群是生物進化過程中的乙個集團,表示可行解的集合。個體是組成種群的單個生命體,表示可行解。染色體是包含生命體的所有...