File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -166,7 +166,8 @@ class DatabaseConfig:
166166 diversity_metric : str = "edit_distance" # Options: "edit_distance", "feature_based"
167167
168168 # Feature map dimensions for MAP-Elites
169- feature_dimensions : List [str ] = field (default_factory = lambda : ["score" , "complexity" ])
169+ # feature_dimensions: List[str] = field(default_factory=lambda: ["score", "complexity"])
170+ feature_dimensions : List [str ] = field (default_factory = lambda : ["complexity" ])
170171 feature_bins : int = 10
171172
172173 # Migration parameters for island-based evolution
Original file line number Diff line number Diff line change @@ -105,7 +105,8 @@ def __init__(self, config: DatabaseConfig):
105105
106106 # Feature grid for MAP-Elites
107107 self .feature_map : Dict [str , str ] = {}
108- self .feature_bins = config .feature_bins
108+ self .feature_bins = max (config .feature_bins ,
109+ int (pow (config .archive_size , 1 / len (config .feature_dimensions )) + 0.99 ))
109110
110111 # Island populations
111112 self .islands : List [Set [str ]] = [set () for _ in range (config .num_islands )]
@@ -210,6 +211,11 @@ def add(
210211 existing_fitness = safe_numeric_average (existing_program .metrics )
211212 logger .info ("MAP-Elites cell improved: %s (fitness: %.3f -> %.3f)" ,
212213 coords_dict , existing_fitness , new_fitness )
214+
215+ # use MAP-Elites to manage archive
216+ if existing_program_id in self .archive :
217+ self .archive .discard (existing_program_id )
218+ self .archive .add (program .id )
213219
214220 self .feature_map [feature_key ] = program .id
215221
You can’t perform that action at this time.
0 commit comments