Genetic Algorithm with array as decision variable

So I have this code. All I want to occur is the ga tool to change the elements of the x vector which starts out as [0,0,0,0,0] by changing each element to a one or leaving it a zero. When I run solver.m, it returns the same z value over and over so ga is not changing the decision variables like I want it to. I have been stuck on this and I cannot figure out what the issue is, I'm sure I'm just missing something small. Any help would be appreciated, thanks!
main_function.m
function z = main_function(x)
n = 5;
x = zeros(1,n);
%very long code that returns rank deficiency
z = rank_deficiency;
end
solver.m
clc
clear
FitnessFunction = @main_function;
n = 5;
LB = zeros(1,n);
UB = ones(1,n);
integers = linspace(1,n,n);
[x,fval] = ga(FitnessFunction,n,[],[],[],[],LB,UB,[],ints,[]);

 채택된 답변

Alan Weiss
Alan Weiss 2016년 8월 15일

2 개 추천

I see at least two errors in your code:
  1. You set x = zeros(1,n) within main_function. Don't do that! Allow your function to use the x that ga passes in.
  2. You set integers = 1:n but then you pass an argument called ints
Alan Weiss
MATLAB mathematical toolbox documentation

추가 답변 (0개)

카테고리

질문:

2016년 8월 15일

댓글:

2016년 8월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by