How to evaluate individual once at a time when using GA with parallel processing?

2 views (last 30 days)
Hi, I'm doing a research using GA with parallel processing. I print out the variable everytime when the objective function is evaluated. I found out that sometimes the objective function took 2 sets of variables as the input argument. For example, I have a problem with 12 variables, and the command window will show:
Is there any way to make the objective function takes 1 set of variables as the input argument at a time?

Accepted Answer

Matt J
Matt J on 20 Mar 2023
Edited: Matt J on 21 Mar 2023
The objective function will always evaluate one point at a time unless you are using the UseVectorized option.
As for your screen display, it is merely giving the illusion that a single call to the objective is processing more (or in some cases less!) than one point. Because the objective function calls are running in parallel, commands to print things to the screen are fulfilled in an unpredictable order.
  1 Comment
Arthur Teng
Arthur Teng on 21 Mar 2023
Really appreciate that, Matt. I found out the real problem is that I use some global variables as fixed parameters in the objective function and it seems to cause some sort of trouble when using parallel processing. I fixed it by turning all global variables into local ones.
Your answer still helps me, thanks!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!