From 3cc23595b77378c79d881bd6b06a7ab31d9671c9 Mon Sep 17 00:00:00 2001 From: Asankhaya Sharma Date: Tue, 19 Aug 2025 16:46:52 +0800 Subject: [PATCH 1/2] Update sampler.py --- openevolve/prompt/sampler.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/openevolve/prompt/sampler.py b/openevolve/prompt/sampler.py index 8ad1c524..8125f61c 100644 --- a/openevolve/prompt/sampler.py +++ b/openevolve/prompt/sampler.py @@ -116,7 +116,7 @@ def build_prompt( # Format evolution history evolution_history = self._format_evolution_history( - previous_programs, top_programs, inspirations, language + previous_programs, top_programs, inspirations, language, feature_dimensions ) # Format artifacts section if enabled and available @@ -243,6 +243,7 @@ def _format_evolution_history( top_programs: List[Dict[str, Any]], inspirations: List[Dict[str, Any]], language: str, + feature_dimensions: Optional[List[str]] = None, ) -> str: """Format the evolution history for the prompt""" # Get templates @@ -321,8 +322,8 @@ def _format_evolution_history( # Use the full program code program_code = program.get("code", "") - # Calculate a composite score using safe numeric average - score = safe_numeric_average(program.get("metrics", {})) + # Calculate fitness score (prefers combined_score, excludes feature dimensions) + score = get_fitness_score(program.get("metrics", {}), feature_dimensions or []) # Extract key features (this could be more sophisticated) key_features = program.get("key_features", []) @@ -371,8 +372,8 @@ def _format_evolution_history( # Use the full program code program_code = program.get("code", "") - # Calculate a composite score using safe numeric average - score = safe_numeric_average(program.get("metrics", {})) + # Calculate fitness score (prefers combined_score, excludes feature dimensions) + score = get_fitness_score(program.get("metrics", {}), feature_dimensions or []) # Extract key features key_features = program.get("key_features", []) @@ -436,11 +437,11 @@ def _format_inspirations_section( # Use the full program code program_code = program.get("code", "") - # Calculate a composite score using safe numeric average - score = safe_numeric_average(program.get("metrics", {})) + # Calculate fitness score (prefers combined_score, excludes feature dimensions) + score = get_fitness_score(program.get("metrics", {}), feature_dimensions or []) # Determine program type based on metadata and score - program_type = self._determine_program_type(program) + program_type = self._determine_program_type(program, feature_dimensions or []) # Extract unique features (emphasizing diversity rather than just performance) unique_features = self._extract_unique_features(program) @@ -461,7 +462,7 @@ def _format_inspirations_section( inspiration_programs=inspiration_programs_str.strip() ) - def _determine_program_type(self, program: Dict[str, Any]) -> str: + def _determine_program_type(self, program: Dict[str, Any], feature_dimensions: Optional[List[str]] = None) -> str: """ Determine the type/category of an inspiration program @@ -472,7 +473,7 @@ def _determine_program_type(self, program: Dict[str, Any]) -> str: String describing the program type """ metadata = program.get("metadata", {}) - score = safe_numeric_average(program.get("metrics", {})) + score = get_fitness_score(program.get("metrics", {}), feature_dimensions or []) # Check metadata for explicit type markers if metadata.get("diverse", False): From 74423f08f7629520de3d78f6f4716f33fe5da24c Mon Sep 17 00:00:00 2001 From: Asankhaya Sharma Date: Tue, 19 Aug 2025 16:47:22 +0800 Subject: [PATCH 2/2] Update _version.py --- openevolve/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openevolve/_version.py b/openevolve/_version.py index 237e778a..4ae89c06 100644 --- a/openevolve/_version.py +++ b/openevolve/_version.py @@ -1,3 +1,3 @@ """Version information for openevolve package.""" -__version__ = "0.2.0" +__version__ = "0.2.1"