help me to use a gamu/pareto to solve an optimization problem

2 views (last 30 days)
I want to use a gamu program to solve an optimization problem of 6 variables and draw the 3D pareto curve of 3 functions of nonlinear objectives which are in the first m.file, under constraints of 3 nonlinear constraints which are in the second m.file, and the third m.file dedicate for initial data and options:premier m.file:
fonction [F]=obj(x)
t1=1;
t2=1;
t3=1;
f(1)=t1*(x(1)-x(4));
f(2)=t2*(x(2)-x(5));
f(3)=t3*(x(3)-x(6));
end
second m.file:
(x(1)^2-1)=0;
(x(2)^2-4)=0;
(x(3)^2-9)=0;
t1*(x(1))-x(4)=0;
t2*(x(2))-x(5)=0;
t3*(x(3))-x(6)=0;
third m.file:
x0=[1 2 3 1 2 3];
how to make a simulation and change in t1 and t2 and t3 between [0,1: 1]? and how to draw the pareto curve of f(1) = function (f(2), f(3)).

Answers (1)

Alan Weiss
Alan Weiss on 12 May 2020
Your three objective functions are t(1)(x(1) - x(4)),..., and your second condition contains the equations t(1)(x(1) - x(4)) = 0,...
So how can you expect to minimize anything? You have already constrained the objectives to all be zero, whatever the variables are.
Furthermore, the second equation can be solved to say x(1) = ±1, x(2) = ±2, and x(3) = ±3. So what is there to plot? What is there to compute?
Alan Weiss
MATLAB mathematical toolbox documentation
  2 Comments
Zinedine Gueddal
Zinedine Gueddal on 13 May 2020
excuse me, i tramped the data: i have 3 m.file when i look for maximize f(x) and simulate the change of t1, t2, t3 between [0.5:1.5] and draw the pareto 3D curve of f(1)=[f(2), f(3)] following changes to t1, then t2, then t3
m.file (1):
function F = fun(x)
t1=1;
t2=1;
t3=1;
F(1)=x(1);
F(2)=x(2);
F(3)=x(3);
m.file(2):
function [CCC,ceq]=confuneq(x)
t1=1;
t2=1;
t3=1;
CCC=[];
ceq=[((x(1)^2)-1)-x(4)
((x(2)^2)-4)-x(5);
((x(3)^2)-9)-x(6);
t1*x(1)-(1/2)*(x(2));
t2*x(2)-(2/3)*(x(3));
t3*x(3)-x(1)-x(2)];
m.file(3)
x0=[1 2 3 0 0 0];
lb=[0 0 0 0 0 0];
options = optimoptions('gamultiobj','UseParallel',true,'plotFcn',{@gaplotpareto,@gaplotscorediversity});
[x,fval,exitflag,output] = gamultiobj(@fun,6,[],[],[],[],lb,[],@confuneq);
result:
Infeasible individuals are present in the final population.
Optimization terminated: average change in the spread of Pareto solutions less than options.FunctionTolerance.
Constraints are not satisfied within constraint tolerance.
x=[2,14099260945409 2,84568488801590 4,14148670616499 3,58384930477328 4,09792249880503 8,15191211772837]
fval=[2,14099260945409 2,84568488801590 4,14148670616499]
were is the problem? why don't affichate courbe of pareto?
how i can simulate the change in t1 then t2 then t3 [0.5:1.5] and trace courbe pareto 3D for f(1)= [f(2), f(3)]?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!