免疫算法

免疫算法(matlab)---求数的平方和

寵の児 提交于 2019-12-17 04:38:34
数的平方和 function result =func(x) sumn=sum(x.^2); result=sumn; end clear all; close all; clc; D=10;%免疫个体维数 NP=100;%免疫个体数目 Xs=20;%取值上限 Xx=-20;%取值下限 G=500; pm=0.7;%免疫概率 alfa=1;%激励度系数 beta=1;%激励度系数 detas=0.2;%相似值阈值 gen=0; Ncl=10;%克隆个数 deta0=1*Xs;%邻域范围取值 %%初试种群 f=rand(D,NP)*(Xs-Xx)+Xx;%产生上限值与下限值之间的随机数 for np=1:NP MSLL(np)=func(f(:,np));%计算每个初始值的函数值 end for np=1:NP for j=1:NP nd(j)=sum(sqrt((f(:,np)-f(:,j)).^2));%基于欧式距离的亲和度计算 if nd(j)<detas%抗体间的相似度计算 nd(j)=1; else nd(j)=0; end end ND(np)=sum(nd)/NP;%抗体间的浓度计算 end MSLL=alfa*MSLL-beta*ND;%抗体的激励度计算,由抗体的亲和度和浓度做运算得到 %激励度按升序排列 [SortMSLL,Index]=sort(MSLL);

模拟退火算法理论及其MATLAB实现

邮差的信 提交于 2019-11-29 14:26:17
像遗传算法,模拟退火,免疫算法,粒子群算法,神经网络,蚁群算法,禁忌搜索这样的智能算法,都是 独立于问题 的算法。对于TSP这种NP难问题,不可能有解析的确定的算法去求解全局最优解,只能依靠这种随机搜索算法去求解局部最优解。 这个 “独立于问题” 描述地特别到位,精辟,道出了本质。 来源: https://blog.csdn.net/qq_36607894/article/details/100584628