Matlab의 NSGA2
유전 알고리즘을 기반으로하는 두 가지 목적 함수를 작성하고 싶습니다. 그러나 객관적인 함수에서 염색체를 사용하지 않으면 입력란을 혼동하고 있습니다. 내 함수 호출이 evaluateObjective(chromosome(ii,:), V)
이고 입력 할 매개 변수를 따르는 경우 염색체에 따라 객관적인 함수를 평가하는 방법을 모른다. 다목적 유전 알고리즘 적합성 평가 Matlab
S = [0.9 0.8 0.3 0.3];
W = [0.9 0.7 0.4 0.1];
P = [15 17 18];
T = [13 14 13];
V=4;
내 욕망 기능 :
Obj1: for all w belongs to W and p belongs to P
summation of (w*p)
Obj2: for all t belongs to T and s belongs to S
summation of (t*s)
그리고 목적 함수 : 그것은 당신이하고있는 정확하게 코드에서 분명하지 않다
function f = evaluateObjective(x, V) %x is the choromosome
% Objective function 1
sum = 0;
for i = 1 : V - 1
sum = sum - W((i))*P;
end
f(1) = sum;
% Objective function 2
sum = 0;
for i = 1 : V
sum = sum + S*S(i);
end
f(2) = sum;
end