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

2 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Matt J
Matt J il 20 Mar 2023
Modificato: Matt J il 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 Commento
Arthur Teng
Arthur Teng il 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!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by