Finding Pareto Front of Shaffer's 2nd function.

3 次查看(过去 30 天)
I couldn't understand what was wrong with the following code of mine,
main.m
x = -5:0.1:5;
y = schaffer2(x);
plot(x,y(:,1),'.r');
hold on
plot(x,y(:,2),'.b');
lb = -5;
ub = 5;
fminuncOptions = optimoptions(@fminunc, ...
'Display','iter', ...
'Algorithm','quasi-newton');
options = optimoptions('HybridFcn',{@fminunc, fminuncOptions});
options = optimoptions(options, 'gamultiobj', ...
'PopulationSize',60, ...
'PlotFcns',@gaplotpareto);
[x,f,exitflag] = gamultiobj(@schaffer2,1,[],[],[],[],lb,ub,options);
This code is generating the following error,
>> main
Error using optimoptions (line 114)
Invalid solver specified. Provide a solver name or handle (such as 'fmincon' or @fminunc).
Type DOC OPTIMOPTIONS for a list of solvers.
Error in main (line 15)
options = optimoptions('HybridFcn',{@fminunc, fminuncOptions});
>>
Can somebody explain why is this code generating error?
_____
schaffer2.m
function y = schaffer2(x) % y has two columns
% Initialize y for two objectives and for all x
y = zeros(length(x),2); % ready for vectorization
% Evaluate first objective.
% This objective is piecewise continuous.
for i = 1:length(x)
if x(i) <= 1
y(i,1) = -x(i);
elseif x(i) <=3
y(i,1) = x(i) -2;
elseif x(i) <=4
y(i,1) = 4 - x(i);
else
y(i,1) = x(i) - 4;
end
end
% Evaluate second objective
y(:,2) = (x -5).^2;

采纳的回答

Walter Roberson
Walter Roberson 2017-1-9
options = optimoptions(@gamultiobj, 'HybridFcn',{@fminunc, fminuncOptions});

更多回答(1 个)

brikh lamine
brikh lamine 2017-10-12
hello, I search the vector of the front Pareto real of the function of test Schaffer 2?

类别

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