output function for gamultiobj (multiobjective optimization)

조회 수: 3 (최근 30일)
Morteza
Morteza 2012년 11월 22일
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