diff --git a/openevolve/database.py b/openevolve/database.py index eca5eab0b..ceeb0d58c 100644 --- a/openevolve/database.py +++ b/openevolve/database.py @@ -447,21 +447,11 @@ def sample_from_island( parent = self._sample_from_island_weighted(island_id) sampling_mode = "weighted" - # Select inspirations from the same island + # Select inspirations from the same island using the same strategy as sample() if num_inspirations is None: num_inspirations = 5 # Default for backward compatibility - # Get other programs from the island for inspirations - other_programs = [pid for pid in island_programs if pid != parent.id] - - if len(other_programs) < num_inspirations: - # Not enough programs in island, use what we have - inspiration_ids = other_programs - else: - # Sample inspirations - inspiration_ids = random.sample(other_programs, num_inspirations) - - inspirations = [self.programs[pid] for pid in inspiration_ids if pid in self.programs] + inspirations = self._sample_inspirations(parent, n=num_inspirations) logger.debug( f"Sampled parent {parent.id} and {len(inspirations)} inspirations from island {island_id} "