How do I do a multi-objective optimization with lower boundaries that are dependent on the optimized variable?

I would like to optimize a multi-objective problem. However, my lower and upper boundaries of the variable x are dependent on one another. How can I do this if it is possible?
For example:
% assume that there is a function called "optimization_function" where
function f = optimization_function(x, y, z)
% x is a three row vector, and f is the optimization objective which is two row vector.
lower_boundaries = [0, x(1), x(2)]; % the lower boundaries depend on variable x
upper_boundaries = [ x(2), x(3), 120]; % the upper boundaries depend on the variable x
options = optimoptions('gamultiobj','PopulationSize',15, ...
'MaxGenerations', 15,'MaxStallGenerations', 15);
[ Optimal_x , f ] = gamultiobj(@(x)optimization_function(x, ...
y, z),3,[],[],[],[],lower_boundaries,upper_boundaries,options);

 Accepted Answer

If you have linear constraints, there is a particular syntax. If you have nonlinear constraints, there is another syntax.
By the way, you need to formulate your problem by putting all your variables into a single vector, usually called x.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

2 Comments

sorry, is it a must to combine all the variables into one single variable ? I don't want to optimize "y" and "z", both are constant inputs that the function rely on to calculate the objective function "f", and I am not optimizing any of them.
Then y and z are extra parameters. Include them the appropriate way.
Alan Weiss
MATLAB mathematical toolbox documentation

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!