How to plot 3 objective function pareto front in pso

Hi,
I have 3 objective function namely F1, F2, F3. I used PSO for solving this function by combining 3 into 1 as follows.
F=a1*F1+a2*F2+a3*F3
a1, a2, a3 are some constants.
I want to plot all the 3 objectrtive function together to show the result.
Please help me in this.
Thanks in advance.

 Respuesta aceptada

Tanmay Das
Tanmay Das el 30 de Dic. de 2021
Hi,
You may find this example of Plotting 3-D Pareto Front helpful.
The example first shows how to obtain the plot using the built-in 'psplotparetof' plot function. Then solve the same problem and obtain the plot using 'gamultiobj', which requires slightly different option settings. The example shows how to obtain solution variables for a particular point in the Pareto plot. Then the example shows how to plot the points directly, without using a plot function, and shows how to plot an interpolated surface instead of Pareto points.

4 comentarios

Thank you..
Hi,
I tried this command for my function.
options = optimoptions('paretosearch','UseVectorized',true,'ParetoSetSize',200,...
'PlotFcn','psplotparetof');
[x,f] = paretosearch(fun,3,[],[],[],[],lb,ub,[],options);
But it shows error as follows
Unable to perform assignment because the size of the left side is 199-by-3 and the size of the right side is 1-by-3.
Error in globaloptim.internal.FcnEvaluator/getAllPoints_vectorized (line 68)
fval(isFeasible,:) = fvalFeas;
Error in globaloptim.internal.FcnEvaluator/evaluateAll (line 12)
[idx, X, fval, residuals] = getAllPoints_vectorized(obj);
Error in globaloptim.paretosearch.coldstart (line 114)
[idx, objval, residuals] = optimState.FcnEvaluator.evaluateAll();
Error in globaloptim.paretosearch.initialize (line 32)
globaloptim.paretosearch.coldstart(objfun,linConstr,nonlcon,optimState,options);
Error in globaloptim.paretosearch.driver (line 28)
globaloptim.paretosearch.initialize(objfun,linConstr,nonlcon,optimState,options);
Error in paretosearch (line 234)
[X,FVAL,EXITFLAG,OUTPUT,CINEQ,CEQ] = globaloptim.paretosearch.driver(objfun,nonlcon,optimState,linConstr,options,OUTPUT);
Error in plot_traf (line 11)
[x,f] = paretosearch(@facility,nvars,[],[],[],[],lb,ub,[],options);
Please help me out this.
You used 'UseVectorized', true . When you do that, your function needs to return a 2D array that is (number of input rows) x (number of objective functions). However your code is returning only one row instead when a 2D array is input.
Thank you so much..

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2021b

Preguntada:

el 27 de Dic. de 2021

Comentada:

el 31 de Dic. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by