How to modify this function with a different objective function
9 次查看(过去 30 天)
显示 更早的评论
From this tutorial on Multiobjective Optimization using Particle Swarm Optimization, there is a function that creates the two objective functions (below). My question is: I have two objective functions that I would like to replace f1 and f2 with, but I am unsure where to even begin. For example, my objective functions are the Sharpe Ratio and Percent Profit functions. Both of these functions require a couple different inputs and I am not sure where these should be initialized.
Any support on where to go next is appreciated!
function z=ZDT(x)
n=numel(x);
f1=x(1);
g=1+9/(n-1)*sum(x(2:end));
h=1-sqrt(f1/g);
f2=g*h;
z=[f1
f2];
end
0 个评论
采纳的回答
Walter Roberson
2016-12-4
That is, create two anonymous functions
extra_parameters_for_sharpe = ....
extra_parameters_for_percent_profit = ....
F_sh = @(x) sharpe_ratio(x, extra_parameters_for_sharpe);
F_pp = @(x) percent_profit(x, extra_parameters_for_percent_profit);
After which,
obj = @(x) [F_sh(x); F_pp(x)];
best_x = particleswarm(obj, .......)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Particle Swarm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!