I'm running the genetic algorithm function gamultiobj with the option "UseParallel" enabled. However I need to pass additional inputs other than the current population in the algorithm to the objective fitness function.
I've been unable to find any documentation on how to do this for the objective fitness function. Because I'm running parallel I'm also unable to use global variables to pass the inputs.
I'm thus wondering if there's a way to do this that doesn't involve saving external files and then reading them in the objective fitness function.
Here's the code (cut to barebones):
FitnessFunction = @evaluate_objective;
options = optimoptions(@gamultiobj,'PopulationSize',15,'MaxGenerations',15,'UseParallel',true);
[x,Fval,exitFlag,Output] = gamultiobj(FitnessFunction,V,A, ...
b,Aeq,beq,min_range,max_range,options);

 채택된 답변

michio
michio 2016년 9월 24일
편집: michio 2016년 9월 24일

2 개 추천

You can take advantage of properties of anonymous functions to define values for additional inputs.
Suppose you have another function otherFunction that accepts additional parameters, you can define the objective fitness function FitnessFunction as follows;
FitnessFunction = @(x) otherFunction(x, parameter1, parameter2, parameter3);
[x,Fval,exitFlag,Output] = gamultiobj(FitnessFunction,V,A, ...
b,Aeq,beq,min_range,max_range,options);
FitnessFunction above accepts a variable x only. Note that those additional parameters should be defined before defining FitnessFunction.

댓글 수: 3

Emil Nielsen
Emil Nielsen 2016년 9월 24일
It worked just as you said. Really easy solution.
Thanks!
michio
michio 2016년 9월 25일
Anytime;)
Alan Weiss
Alan Weiss 2016년 9월 26일
Emil, I wonder if you can help me make this information more readily apparent. How did you search for ways of passing extra parameters? Did you search in Google, or look through the Global Optimization Toolbox documentation, or ask friends, or what? If you searched for a particular phrase, what was that phrase?
FYI, I put a link on the Define Objective Function page (Passing Extra Parameters).
Thanks in advance,
Alan Weiss
MATLAB mathematical toolbox documentation

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Surrogate Optimization에 대해 자세히 알아보기

질문:

2016년 9월 24일

댓글:

2016년 9월 26일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by