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
댓글 수: 0
채택된 답변
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
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 Center 및 File Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!