both real and integer variables ga optimization

How can i perform an optimization with the gamultiobj function using both real and integer variables ?

 Accepted Answer

Andrea, integers are real, however I think you are referring to solving a mixed integer problem. Here is an example of how it can be done using GA:

4 Comments

Hi Benji, you're right I meant that some of my variables should be discrete.
Anyway if the variable x1 has lb=0 and ub=100 how can i constrain it so that it assume only some numerical value ?
e.g [0,20,40,60,80,100]
I also tried the example written in the link you provided but it failed, giving this error:
??? Error using ==> ga
Too many input arguments.
I'm using the R2011a version, is this the problem?
R2011a did not support constraining to integer.
I don't think you can (even with R2012b) constrain to arbitrary sets of values. However, you can (in versions that support it) constrain to integer values, with a range of 1 to the number of different values, and then in the function you provide, use that variable as an index into the table of actual values.
Thanks for the explanation!
I'm thinking to use a function to "map" the values obtained from the ga, e.g. [1 2 3 4 5] to the range i need: [20 40 60 80 100].

Sign in to comment.

More Answers (1)

As Benji said, you cannot perform mixed integer optimization automatically in GA unless you have MATLAB R2011b or later. However, you can write custom population functions for this purpose; see this explanation. You might also want to see this example on mapping integer variables to a finite set of choices.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Community Treasure Hunt

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

Start Hunting!