Asked by mohammed sportman
on 29 Dec 2012

%first way% function g =myfitnesstest(X) s=0; if (X(1)==1) s=s+1; end if (X(2)==1) s=s+2; end if (X(3)==1) s=s+4; end if (X(4)==1) s=s+8; end if (X(5)==1) s=s+16; end LAMDA=s; TYPE=1; ITER=1000; R1=Routing3a3(TYPE,LAMDA,ITER);

g=-R1;

end ---------

%second way%

function g =myfitness2(X) LAMDA=X(1)+X(2)*2+X(3)*4+X(4)*8 TYPE=1; ITER=1000; R1=Routing3a(TYPE,LAMDA,ITER); g=-R1;

end

------ when i use this (first way) the matlab run it very very slowly. when i use (second way) the matlab run with out stopping with many solution with repeating. i want way to represent the value of X with bit string type to find the optimal solution (by using Matlab gatool )

[EDITED, Jan, code formatted]

*No products are associated with this question.*

Answer by Jonathan Epperl
on 30 Dec 2012

I can't try right now, but I am fairly certain that your first few `if` statements could be substituted by

s = 2.^(0:4) *X(:);

only this would be muuuuch faster, that should explain why your way 1 is so slow.

Of course we don't know what `Routing3a` does, so hard to help you if there's an error in there.

And lastly, it appears to me that

g=(R1); while(g>=99) g break end

is nothing but

if R1>=99 R1 end

so what is that line supposed to be doing?

Show 4 older comments

mohammed sportman
on 4 Jan 2013

i get an error

Walter Roberson
on 4 Jan 2013

Details, mohammed, details!

mohammed sportman
on 8 Jan 2013

??? Error using ==> mtimes Inner matrix dimensions must agree.

Error in ==> @(b)-Routing3a(1,1+b*2.^(0:3),1000)

Error in ==> validate>@(x)fitness(x,FitnessFcnArgs{:}) at 136 fitness = @(x) fitness(x,FitnessFcnArgs{:});

Error in ==> fcnvectorizer at 14 y(i,:) = feval(fun,(pop(i,:)));

Error in ==> makeState at 47 Score = fcnvectorizer(state.Population(initScoreProvided+1:end,:),FitnessFcn,1,options.SerialUserFcn);

Error in ==> gaunc at 41 state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);

Error in ==> ga at 291 [x,fval,exitFlag,output,population,scores] = gaunc(FitnessFcn,nvars, ...

Caused by: Failure in user-supplied fitness function evaluation. GA cannot continue.

Log in to comment.

Related Content

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments

Log in to comment.