MCPcopy Create free account
hub / github.com/algorithmicsuperintelligence/openevolve / __init__

Method __init__

openevolve/controller.py:70–189  ·  view source on GitHub ↗
(
        self,
        initial_program_path: str,
        evaluation_file: str,
        config: Config,
        output_dir: Optional[str] = None,
    )

Source from the content-addressed store, hash-verified

68 """
69
70 def __init__(
71 self,
72 initial_program_path: str,
73 evaluation_file: str,
74 config: Config,
75 output_dir: Optional[str] = None,
76 ):
77 # Load configuration (loaded in main_async)
78 self.config = config
79
80 # Set up output directory
81 self.output_dir = output_dir or os.path.join(
82 os.path.dirname(initial_program_path), "openevolve_output"
83 )
84 os.makedirs(self.output_dir, exist_ok=True)
85
86 # Set up logging
87 self._setup_logging()
88
89 # Manual mode queue lives in <openevolve_output>/manual_tasks_queue
90 self._setup_manual_mode_queue()
91
92 # Set random seed for reproducibility if specified
93 if self.config.random_seed is not None:
94 import hashlib
95 import random
96
97 import numpy as np
98
99 # Set global random seeds
100 random.seed(self.config.random_seed)
101 np.random.seed(self.config.random_seed)
102
103 # Create hash-based seeds for different components
104 base_seed = str(self.config.random_seed).encode("utf-8")
105 llm_seed = int(hashlib.md5(base_seed + b"llm").hexdigest()[:8], 16) % (2**31)
106
107 # Propagate seed to LLM configurations
108 self.config.llm.random_seed = llm_seed
109 for model_cfg in self.config.llm.models:
110 if not hasattr(model_cfg, "random_seed") or model_cfg.random_seed is None:
111 model_cfg.random_seed = llm_seed
112 for model_cfg in self.config.llm.evaluator_models:
113 if not hasattr(model_cfg, "random_seed") or model_cfg.random_seed is None:
114 model_cfg.random_seed = llm_seed
115
116 logger.info(f"Set random seed to {self.config.random_seed} for reproducibility")
117 logger.debug(f"Generated LLM seed: {llm_seed}")
118
119 # Load initial program
120 self.initial_program_path = initial_program_path
121 self.initial_program_code = self._load_initial_program()
122 if not self.config.language:
123 self.config.language = extract_code_language(self.initial_program_code)
124
125 # Extract file extension from initial program
126 self.file_extension = os.path.splitext(initial_program_path)[1]
127 if not self.file_extension:

Callers

nothing calls this directly

Calls 10

_setup_loggingMethod · 0.95
_load_initial_programMethod · 0.95
extract_code_languageFunction · 0.90
LLMEnsembleClass · 0.90
PromptSamplerClass · 0.90
ProgramDatabaseClass · 0.90
EvaluatorClass · 0.90
EvolutionTracerClass · 0.90
set_templatesMethod · 0.80

Tested by

no test coverage detected