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);

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(0 个)

类别

Community Treasure Hunt

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

Start Hunting!

Translated by