How to modify this function with a different objective function
7 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Walter Roberson
on 4 Dec 2016
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, .......)
More Answers (0)
See Also
Categories
Find more on Particle Swarm in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!