Clear Filters
Clear Filters

How to use ga in matlab as a binary genetic algorithm?

14 views (last 30 days)
Hi,
I want to use ga for binary variables only?

Answers (1)

Stephan
Stephan on 25 Dec 2018
Edited: Stephan on 25 Dec 2018
Hi,
use IntCon and set lower and upper bounds to zero respectively ones.
Best regards
Stephan
  5 Comments
Walter Roberson
Walter Roberson on 25 Dec 2018
rng(1,'twister')
IntCon = 1:3;
%% Start with the default options
options = optimoptions('ga');
%% options setting
options = optimoptions(options,'MaxGenerations', 500);
options = optimoptions(options,'MaxStallGenerations', inf);
options = optimoptions(options,'FunctionTolerance', 0);
options = optimoptions(options,'ConstraintTolerance', 0);
options = optimoptions(options,'Display', 'off');
options = optimoptions(options,'PlotFcn', { @gaplotbestf });
[x,fval,exitflag,output,population,score] = ...
ga(@fitness,3,[],[],[],[],[0 0 0],[1 1 1],@constraints,IntCon,options);
disp(x);
However, the best is not [1 0 0]: it is [1 0 1]
There are only 8 possible configurations for x, so there is no point in running 500 generations.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!