调用格式

1.Fitnv=ranking(objv)

2.Fitnv=ranking(objv,rfun)

3.Fitnv=ranking(objv,rfun,subpop)

举个例子

%% 适应度函数——ranking
%格式一:
objv=[1;2;3;4;5;10;9;8;7;6]
fitnv=ranking(objv)%将个体的目标值objv(列向量)按从小到达的顺序排列,并返回个体适应度fitnv的列向量
%例如这里[1;2;3;4;5;10;9;8;7;6]为一个列向量,得到的个体适应度的列向量为:[2.0;1.77;1.55;1.33;1.1;0;0.22;0.44;0.66;0.88]
%注意这里返回的列向量的位置还是原先元素的位置。
%这里默认压差为2,所谓压差即是一个[2,0]的区间,将原先的[1,10]映射到[2,0]上,即1为0,10为0其余数字按大小顺序线性插值。
%格式二:
%当线性排列的时候,标量指定的选择压差rfun必须要在[1,2]区间,对于非线性排列[1,length(objv)-2]区间
fitnv=ranking(objv,[1.5,0])
%格式三:
fitnv=ranking(objv,[2,0],1)
%这里subpop是一个任选参数,知名objv中子种群的数量,如果subpop=1则要求,objv中的每一个子种群大小必须相同,如果ranking被调用于多子种群,则ranking独立地对每个子种群执行。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐