output function for gamultiobj (multiobjective optimization)

3 次查看(过去 30 天)
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

采纳的回答

Alan Weiss
Alan Weiss 2012-11-26
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 个评论
Morteza
Morteza 2012-11-26
Thank you Alan, I do not know why the optimization is circling on Lower Bound and does not check whole of the design range. Should I change something? Regards
Alan Weiss
Alan Weiss 2012-11-27
编辑:Alan Weiss 2012-11-27
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Multiobjective Optimization 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by