Skip to content

best_program_info iteration does not contain the iteration of the best program #21

@tom-dudley

Description

@tom-dudley

Hi, thanks for the great project. I was looking at setting up simple monitoring of progress by checking the best_program_info.json file for the latest checkpoint with:

watch -n 10 'jq ".metrics.combined_score, .iteration" "$(ls -d checkpoint_* | sort -V | tail -n1)/best_program_info.json"'

which would inform me how many iterations (and hence time) it took to get to a certain metric.

This file contains the current iteration though, not the iteration when the best program was achieved: https://github.com/codelion/openevolve/blob/main/openevolve/controller.py#L383

Would it make sense for this iteration value to be changed?


More generally, could you confirm a couple of things regarding iterations and generations:

  1. Is a generation simply "how many ancestors do I have"? So a program might be found at iteration 100 with 4 ancestors and is hence generation 5, and a program might be found at generation 150 with 2 ancestors (as it was from a later new novel idea). Thus it's not like the algorithm is 'run for 10 generations, run 100 iterations per generation'. If this is indeed the case hopefully the ask above makes more sense given knowing the generation of the best program while interesting doesn't quite give details on how long it took to get there.
  2. In the circle example README, when generations are mentioned (e.g. after 10 or 100 generations when showing the results) is this actually generations or is it iterations?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions