Multi Objective Optimization with discrete variables ?

10 次查看(过去 30 天)
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 个评论
Ugur Acar
Ugur Acar 2020-5-12
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));"

请先登录,再进行评论。

采纳的回答

Alan Weiss
Alan Weiss 2020-5-12
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 个评论
Ugur Acar
Ugur Acar 2020-5-12
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 2020-5-13
"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 ?

请先登录,再进行评论。

更多回答(1 个)

hoofar hemmatabady
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.

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by