output function for gamultiobj (multiobjective optimization)
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dear all, I have 6 functions, represented by function called "response", and one linear equality, there are 7 design variables in my problem. I am using gamultiobj to optimize my problem. I used code generated as: %____________________________________________________________
if true
% code
LB= [168000 168000 168000 168000 168000 168000 168000];
UB= [315000 315000 315000 315000 315000 315000 315000];
numberOfVariables=7;
PS=100;
IniPop=[315000 250000 190000 168000 168000 168000 218000];
Aineq = [1/1470000 1/1470000 1/1470000 1/1470000 1/1470000 1/1470000 1/1470000];
bineq = 1;
Aeq = [];
beq = [];
defaultopt = struct('PopulationType', 'doubleVector', ...
'PopInitRange', [LB;UB], ...
'PopulationSize', PS', ...
'CrossoverFraction', 0.8, ...
'ParetoFraction', 0.35, ...
'MigrationDirection','forward', ...
'MigrationInterval',20, ...
'MigrationFraction',0.2, ...
'Generations', '200*numberOfVariables', ...
'TimeLimit', inf, ...
'StallGenLimit', 100, ...
'TolFun', 1e-14, ...
'TolCon', 1e-12, ...
'InitialPopulation',IniPop, ...
'InitialScores', [], ...
'PlotInterval',1, ...
'CreationFcn',@gacreationuniform, ...
'SelectionFcn', {{@selectiontournament,2}}, ...
'CrossoverFcn',@crossoverintermediate, ...
'MutationFcn',@mutationadaptfeasible, ...
'DistanceMeasureFcn',{{@distancecrowding, 'phenotype'}}, ...
'HybridFcn',[], ...
'Display', 'final', ...
'PlotFcns', {@gaplotpareto,@gaplotscorediversity}, ...
'OutputFcns', [], ...
'Vectorized', 'off', ...
'UseParallel', 'Always');
[x,f,exitflag,output,population,score] = gamultiobj(@response,numberOfVariables,Aineq,bineq,[],[],LB,UB,defaultopt);
end
%------------------------------ # Item one: After solving, I want to extract the paretofrontier points and associated responses. What should I do? # Item two: How can plot pareto for obj1 vs obj 3, or obj 3 vs obj 6?
With Regards
0 comentarios
Respuesta aceptada
Alan Weiss
el 26 de Nov. de 2012
I'm not sure what you are asking. The solution x contains the Pareto points, and f contains the response values at those points. See the documentation.
If you want to plot the responses, pick the appropriate columns out of the f matrix. Column j contains the responses for the jth objective.
Alan Weiss
MATLAB mathematical toolbox documentation
2 comentarios
Alan Weiss
el 27 de Nov. de 2012
Editada: Alan Weiss
el 27 de Nov. de 2012
Your biggest problem is probably your creation function. Use the default @gacreationlinearfeasible.
Your linear inequality, combined with your lower bounds, gives little room for your design variables x to change. You can have only two variables at the upper bound with all the rest at the lower bound and still have the linear inequality satisfied. All variables at the lower bound is 80% of the way to the linear inequality.
Your one member in IniPop is not even feasible (it does not satisfy the linear constraint). You would probably do better to eliminate this, or to give some feasible individuals as initial population members.
I am not at all sure why you use the options you do, and especially why you do not use gaoptimset to create the options. You really should use gaoptimset, to take advantage of its error checking. And if you don't need an option, then don't set it. What are your migration options doing? Why set a selection function? If you eliminated all your options, you would probably do better. Well, keep the larger population size, but think about eliminating most of the other options.
Alan Weiss
MATLAB mathematical toolbox documentation
Más respuestas (0)
Ver también
Categorías
Más información sobre Multiobjective Optimization en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!