MATLAB Answers

0

Fval Output by ga does not match output of fitness function evaluated at the respective x vector

Asked by Francisco Barrera on 13 Jun 2019
Latest activity Commented on by Francisco Barrera on 14 Jun 2019
Hello all,
I have been using ga to minimize a fitness function of mine, but have recently come across some issues concerning the output. After running for several hours (the fitness function is quite dense), the ga outputs an x vector along with an fval, which is supposed to be the fitness function evaluated at this x value. However, when I take the x-vector and input it into the fitness function manually, it returns a value different from the fval.
My ga setup is the following:
%Contraints and function
rng default
FitFcn = @FullDevice;
nvars = 3;
lb = [1,20,5];
ub = [5,100,10];
IntCon = [1];
%optomization algorithm
[x,fval,exitflag] = ga(FitFcn,nvars,[],[],[],[],lb,ub,[],IntCon,[])
As an example, on my most recent optimization, the x and fval output were the following
x =
3.0000 20.0000 5.0333
fval =
-199.1417
But,
> FullDevice([3 20 5.0333])
ans =
-189.8933
Any thoughts as to why this is happening? Thanks!

  0 Comments

Sign in to comment.

Products


Release

R2019a

1 Answer

Answer by Stephan
on 13 Jun 2019
Edited by Stephan
on 13 Jun 2019
 Accepted Answer

you problably are are victim of rounding errors. try:
FullDevice(x)
to use the exact results of x as input for your Fitness function.

  1 Comment

This was it. Silly oversight on my part. Thanks for the help!

Sign in to comment.