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

9 vues (au cours des 30 derniers jours)
Phoenix98
Phoenix98 le 25 Déc 2018
Commenté : Walter Roberson le 25 Déc 2018
Hi,
I want to use ga for binary variables only?

Réponses (1)

Stephan
Stephan le 25 Déc 2018
Modifié(e) : Stephan le 25 Déc 2018
Hi,
use IntCon and set lower and upper bounds to zero respectively ones.
Best regards
Stephan
  5 commentaires
Stephan
Stephan le 25 Déc 2018
?
Walter Roberson
Walter Roberson le 25 Déc 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.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by