在以下代码中,Infinity
的值不会随每次迭代而更新,并显示fgbest=Inf; % Initialization of gbest
for j=1:Popsize
% Generate Random Solution
pop(:,j)=randi([500,2000],10,1);
[obj]=objfn(pop,it);
% Evaluation
obj1(j,1) = obj(j,1);%
% Update the Personal Best
pbest(:,j) = pop(:,j);% pbest
fpbest(j,1) =obj1(j,1);% objective function
% Update Global Best
test = fgbest>fpbest(j,1);
if any(test)
gbest = pbest(:,j);
end
gbest
end
作为结果。任何人都可以帮我确定原因吗?
{{1}}
答案 0 :(得分:0)
这可能是因为您将fgbest
初始化为Inf。只要值fpbest(j,1)
仍然小于Inf,就不会更新gbest
的值,因为不满足if
条件。您可以尝试使用0或任何其他较小的值初始化它吗?