# Multi Objective Optimization with discrete variables ?

10 views (last 30 days)
Ugur Acar on 11 May 2020
Commented: Ugur Acar on 13 May 2020
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 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));"

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

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 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 ?