Multi Objective Optimization with discrete variables ?

14 views (last 30 days)
hi,
Can we use discrete values instead of just integers in @gamultiobj?
like in the example of "Stepped Cantilever Beam Design Problem" cant we add a function like "cantileverMapVariables.m" for "CreationFcn", "MutationFcn" and "CrossoverFcn" options ?
Thank you
  1 Comment
Ugur Acar
Ugur Acar on 12 May 2020
Can any kind of code be generated as in "cantileverMapVariables.m"
"%cantileverMapVariables Map integer variables to a discrete set V = cantileverMapVariables(x) maps the integer variables in the second problem solved in the "Solving a Mixed Integer Engineering Design Problem Using the Genetic Algorithm" example to the required discrete values.
% The possible values for x(3) and x(5)
allX3_5 = [2.4, 2.6, 2.8, 3.1];
% The possible values for x(4) and x(6)
allX4_6 = 45:5:60;
% Map x(3), x(4), x(5) and x(6) from the integer values used by GA to the
% discrete values required.
x(3) = allX3_5(x(3));
x(4) = allX4_6(x(4));
x(5) = allX3_5(x(5));
x(6) = allX4_6(x(6));"

Sign in to comment.

Accepted Answer

Alan Weiss
Alan Weiss on 12 May 2020
Yes, if you are careful to define the creation, mutation, and crossover functions so that all integer variables are integers, and then map them to the values you want, then you can try to solve the problem that way. Not easy to do correctly, but theoretically possible. Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
  2 Comments
Ugur Acar
Ugur Acar on 12 May 2020
Thank you for your answer, so it is possible theoretically :) I wish that mapping to variables was explained in the users manual as in genetic algoritm for single objective
Ugur Acar
Ugur Acar on 13 May 2020
"MathWorks Support Team" actually demostrated how to use integer in @gamultiobj with an easy example. Is it possible to add discrete variables options to this example also ?

Sign in to comment.

More Answers (1)

hoofar hemmatabady
hoofar hemmatabady on 8 Jan 2021
Hi,
I went though the suggested code by Mathworks Support Team (https://www.mathworks.com/matlabcentral/answers/103369-is-it-possible-to-solve-a-mixed-integer-multi-objective-optimization-problem-using-global-optimizati,).
There are mainly two problem associated with the proposed MutationFcn:
1) The Gaussian distriburtion is used. However, in MATLAB documantation, it is suggested to use 'mutionanadaptfeasible' when we have bounds (Genetic Algorithm Options - MATLAB & Simulink (mathworks.com)) or when we are using Gamultiobj (Find Pareto front of multiple fitness functions using genetic algorithm - MATLAB gamultiobj (mathworks.com)),
Do you have a reason for choosing Gassian distribution?
2) If the Gaussian distribution is right here, Why have you used Shrink of 0.01 and not 1 (the default value)?
This will reduce optimization speed a lot.
Thank you in advance and would be gratefull to be advised about.
All the best.

Community Treasure Hunt

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

Start Hunting!