## genetic algorithm tool (Bit string)

### mohammed sportman (view profile)

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]

## Products

No products are associated with this question.

### Jonathan Epperl (view profile)

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?

mohammed sportman

on 4 Jan 2013

i get an error

Walter Roberson

### Walter Roberson (view profile)

on 4 Jan 2013

Details, mohammed, details!

mohammed sportman

### mohammed sportman (view profile)

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.