I've noticed that in execute_proposal in reflective_mutation.py there are two separate evaluation calls to the adapter. Isn't this re-evaluation sometimes wasteful? E.g. for circle packing the parent was presumably an accepted mutation at some point previously, so it already has been evaluated. In that case this is wasteful in terms of runtime, but if the evaluator uses LLM calls then it could also waste a budget up to twice as quickly vs if previous candidates' scores are cached.
I've noticed that in
execute_proposalinreflective_mutation.pythere are two separate evaluation calls to the adapter. Isn't this re-evaluation sometimes wasteful? E.g. for circle packing the parent was presumably an accepted mutation at some point previously, so it already has been evaluated. In that case this is wasteful in terms of runtime, but if the evaluator uses LLM calls then it could also waste a budget up to twice as quickly vs if previous candidates' scores are cached.