Skip to content

Commit 1963d77

Browse files
committed
Update database.py
1 parent 69c6033 commit 1963d77

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

openevolve/database.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -441,10 +441,10 @@ def get_top_programs(
441441
reverse=True,
442442
)
443443
else:
444-
# Sort by average of all numeric metrics
444+
# Sort by combined_score if available, otherwise by average of all numeric metrics
445445
sorted_programs = sorted(
446446
candidates,
447-
key=lambda p: safe_numeric_average(p.metrics),
447+
key=lambda p: p.metrics.get("combined_score", safe_numeric_average(p.metrics)),
448448
reverse=True,
449449
)
450450

@@ -882,7 +882,7 @@ def _update_archive(self, program: Program) -> None:
882882
# Find worst program among valid programs
883883
if valid_archive_programs:
884884
worst_program = min(
885-
valid_archive_programs, key=lambda p: safe_numeric_average(p.metrics)
885+
valid_archive_programs, key=lambda p: p.metrics.get("combined_score", safe_numeric_average(p.metrics))
886886
)
887887

888888
# Replace if new program is better
@@ -1284,10 +1284,10 @@ def _enforce_population_limit(self, exclude_program_id: Optional[str] = None) ->
12841284
# Get programs sorted by fitness (worst first)
12851285
all_programs = list(self.programs.values())
12861286

1287-
# Sort by average metric (worst first)
1287+
# Sort by combined_score if available, otherwise by average metric (worst first)
12881288
sorted_programs = sorted(
12891289
all_programs,
1290-
key=lambda p: safe_numeric_average(p.metrics),
1290+
key=lambda p: p.metrics.get("combined_score", safe_numeric_average(p.metrics)),
12911291
)
12921292

12931293
# Remove worst programs, but never remove the best program or excluded program

0 commit comments

Comments
 (0)