-
Notifications
You must be signed in to change notification settings - Fork 1
/
logRotatedKleeMintyEvals.m
45 lines (38 loc) · 1.27 KB
/
logRotatedKleeMintyEvals.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function [] = logRotatedKleeMintyEvals(problem,f,gv)
global target_flag
global T
global Targets
global consumed
global best
Target_Num = problem.ConTarNum +problem.FunTarNum + 1;
if target_flag==1
T = [];
Targets = zeros(Target_Num,4);
Targets(:,1:2) = [[zeros(problem.ConTarNum+1,1),[problem.ConTarDev]'];[(problem.FunTarDev)', zeros(problem.FunTarNum,1)]];
best = [f, sum(gv.*(gv>0))];
target_flag = 2;
end
if ( best(2)==0 && sum(gv.*(gv>0))==0 )
if best(1)>=f
best = [f, sum(gv.*(gv>0))];
end
elseif best(2)>= sum(gv.*(gv>0))
best = [f, sum(gv.*(gv>0))];
end
T = [T;[consumed, best(1), best(2)]];
for k=1:Target_Num
if Targets(k,4)==0
if k<=problem.ConTarNum+1
if best(2)<=problem.ConTarDev(k)
Targets(k,3) = consumed;
Targets(k,4) = 1;
end
else
if abs(problem.Ref_Val-best(1))<=problem.FunTarDev(k-(problem.ConTarNum+1)) && best(2)==0
Targets(k,3) = consumed;
Targets(k,4) = 1;
end
end
end
end
end