Global optimization using genetic algorithm

3 views (last 30 days)
Sata
Sata on 23 Oct 2012
I use ff2n function to generate the input for my function. For the example of ff2n(4), some sample input rows are:
1 0 1 0
1 1 0 0
0 0 1 1
...
...
Based on the input from ff2n(4), a total of 16 scalar values will be generated for my function. If I sorted the 16 scalar values generated, I will be able to find the minimum value.
Can I use GA to find the minimum value for my function based on the following commands?
>> [x fval exitflag] = ga(@my_fun, 2)
My input values are fixed, which are 0 and 1. Can I consider the total number of variables as 2? Is it possible for me to get the following sample output:
x = 1 1 0 0
fval = 0.12345
exitflag = 1
If this GA command is inapplicable, please give me some suggestions how can I use GA to solve my problem.
Alternatively, in order to get the x and fval values, can I use the optimization toolbox by choosing GA solver, enter my fitness function, put 2 as number of variables and run it?

Answers (1)

Alan Weiss
Alan Weiss on 23 Oct 2012
You might do well to read the documentation on ga with integer constraints. If I understand you, for this case you have n = 4 dimensions, not 2, because there are 4 design variables. Each design variable is binary, so is integer valued with a lower bound of 0 and an upper bound of 1.
Alan Weiss
MATLAB mathematical toolbox documentation
  4 Comments
Sata
Sata on 1 Nov 2012
Edited: Sata on 5 Nov 2012
Hi Alan,
1) I agreed with you that this is a problem of 4-dimensional with each component given as one of the two different values. What is the different to use my actual real numbers for variable x (3.98765) and y (4.98765) instead of using binary numbers of 0 and 1 to map?
2) Basically my 0 < x < 5 and 0 < y < 5, if we map it with binary number with lb = 0 and ub = 1, does it match?
3) Sorry, can you explain further about the mapping example you mentioned earlier:
y = x0 + (x1 - x0)*x
y = 3.98765 + (4.98765 - 3.98765)*x --> what information can I get?
4) Can somebody answer my previous (Q3) regarding mutation operator? i.e. what do I do if mutation is inapplicable in my problem..

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!