FCS算法 MOEA

多目标算法 FCS算法

FCS(the farthest candidate selection)算法一种类似于拥挤距离算法的算法.

一个又一个的选取个体,保持解的分布性.

该算法伪代码(有点像matlab)如下

 % 选取K个个体,每个个体有V个decision 变量,此变量存储已选择的点
Saccept = zeros(K,V);

% D向量是用来记载种群里每个个体的欧几里得距离的
D= zeros(N,1); 

% 用于标记有几个 个体被选中 Saccept里
count = 0;

% 对于m个目标向量值逐个进行处理
for i = 1: m
    % 选取出在第m个目标函数上的函数值 最小和最大的个体
    Saccept =  Saccept + argmin(f(:,i)) + argmax(f(:,i));
    count+=2;

% 计算 每个未选择的点和已选择的点的 最小欧几里得距离    
for i =1 : N
    % x是 (P - Saccept) 中的个体, x'是Saccept中的个体
    D(i) = min(distance (x,x'));

for i 1: K - count
    % temp存储 欧几里得距离最大的个体
    temp = population(D.max);
    Saccept = Saccept + temp;

    % 更新D里的值
    for each x in (P- Saccept) ,x的index --> i
        D(i) = min (D(i),distance(x,x'));

猜你喜欢

转载自blog.csdn.net/qq_38619183/article/details/80606469