I ran 1000 tests to compared the above three algorithms for Goldstein-Price problem using 10 particles. The fraction of converged tests for each algorithms were:
Conclusions:
1) Note that serial_pygmo was evolved for 1000 generations, but the first two were evolved for around 380 generations.
2) I do not know why parallel_pso outperforms serial_pso significantly. They should be identical algorithms. All I did was a coarse-grain synchronous parallelization, i.e. I evaluate the objective function for all particles at once independently before evolving to the next generation.
I ran 1000 tests to compared the above three algorithms for Goldstein-Price problem using 10 particles. The fraction of converged tests for each algorithms were:
serial_pso: 326/1000 parallel_pso: 897/1000 serial_pygmo: 999/1000
Conclusions: 1) Note that serial_pygmo was evolved for 1000 generations, but the first two were evolved for around 380 generations.
2) I do not know why parallel_pso outperforms serial_pso significantly. They should be identical algorithms. All I did was a coarse-grain synchronous parallelization, i.e. I evaluate the objective function for all particles at once independently before evolving to the next generation.
Files: parallelpso_vs_serialpso_vs_serialpygmo.xlsx codes.zip