When minimizing a Pymoo test problem i want to get the number of evaluations n_eval. Calling minimize with verbose option prints out this display information:
n_gen | n_eval | n_nds | igd | gd
==========================================================
1 | 100 | 1 | 0.1852373892 | 0.1852373892
2 | 200 | 1 | 0.0594274085 | 0.0594274085
3 | 300 | 1 | 0.0148930530 | 0.0148930530
4 | 400 | 1 | 0.0000231350 | 0.0000231350
5 | 500 | 1 | 0.0000231350 | 0.0000231350
I expected to get access to a variable n_eval in the result object. I have not found any documentation on that online so far.
---UPDATE---
So, I found a solution which is too resource intensive imo as it requires saving the whole algorithm history, but it works for now.
I set the attribute saveHistory=True
in the minimize method. Then I can read out the number of evaluations n_eval from the result object using n_gen and n_pop.
n_gen = len(result.history)
n_pop = result.algorithm.pop_size
n_eval = n_gen * n_pop
See the documentation for more info: pymoo - Minimize
save_history: A boolean value representing whether a snapshot of the algorithm should be stored in each iteration. If enabled, the Result object contains the history.