forked from codelion/openevolve
-
Notifications
You must be signed in to change notification settings - Fork 1
rebase upstream Jul 31 #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mycpuorg
wants to merge
298
commits into
TheDuckAI:dev
Choose a base branch
from
codelion:main
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Fix version inconsistency: update __init__.py from 0.1.0 to 0.0.16 - Configure pyproject.toml to use dynamic versioning from openevolve.__version__ - Update setup.py to import version from __init__.py instead of hardcoding This ensures all version declarations are synchronized and prevents version drift. Co-authored-by: Asankhaya Sharma <[email protected]>
bump version for new release
bump version for new release
- Replace fixed-scale binning with adaptive binning in _calculate_feature_coords - Add _calculate_complexity_bin method for complexity-based binning - Add _calculate_diversity_bin method for diversity-based binning - Fix issue where all programs were binned into highest complexity bin - Use actual program complexity range for adaptive binning when available - Fall back to reasonable fixed ranges during cold start 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Replace fixed-range diversity binning with adaptive binning based on actual program diversity - Use _fast_code_diversity instead of expensive calculate_edit_distance for performance - Add comprehensive tests for both complexity and diversity binning methods - Ensure proper cold start handling and edge case coverage Fixes issue identified by @yyh-sjtu where fixed ranges caused all programs to cluster in same bins. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Asankhaya Sharma <[email protected]>
fix: MAP-Elite complexity binning issue #147
bump version
modify for MAP-Elite Algorithm
Update _version.py
This update adds per-dimension feature bin support, adaptive feature scaling, and a diversity reference set with caching for MAP-Elites in ProgramDatabase. The config now allows feature_bins to be an int or dict, and includes diversity_reference_size. Related tests and evaluator logic are updated for improved cascade validation and feature map coverage.
Clarifies default and custom feature dimensions in documentation and config files. Updates ProgramDatabase to raise an error if a specified feature dimension is missing from program metrics, with a helpful message. Adds a test to ensure missing feature dimensions trigger the correct error.
Fix map elites
Replaces the previous thread-based parallel controller with a new process-based parallel controller for true parallel execution, updating all references and tests accordingly. Removes the threaded_parallel.py module, adds process_parallel.py, updates controller logic and shutdown handling, and introduces new tests for process-based parallelism. Also updates the README to reflect the change and bumps the package version to 0.1.0.
…valuation Switch to process-based parallelism and remove threading
Adjusts evolution start and iteration counting to treat the initial program evaluation as iteration 0, ensuring evolutionary iterations begin at 1 for fresh starts. Updates checkpoint logic to avoid saving at iteration 0 and aligns checkpoint intervals with evolutionary iterations. Adds comprehensive tests for iteration counting and checkpoint boundary conditions.
Fix iteration counting and checkpoint logic in evolution
Adds warnings and fallback logic to use the average of numeric metrics when 'combined_score' is not present in evaluation results. This helps guide evolution and informs users to provide a properly weighted 'combined_score' for better results.
Warn when 'combined_score' metric is missing
Added artifact rendering options to default_config.yaml, including size and security filter settings. Refactored process_parallel.py to use config values for program selection limits. Updated prompt/sampler.py to display full program code instead of truncated snippets and to use config-based limits for key features.
Expanded comments to explain the rationale for limiting artifact serialization to the first 100 programs, detailing the impact on memory usage and worker initialization speed. No functional changes were made.
Fix remove trunc for programs
Update README.md
escape html in sidebar
UI: Resizable sidebar, view diff to parent in sidebar (vibecoded)
Fix parallel sample island
Eliminated the worker-to-island pinning mechanism from ProcessParallelController and removed all associated unit tests. This simplifies the parallel processing logic and test suite by no longer distributing workers across islands using a static mapping.
Feature coordinate calculation now prioritizes custom metrics from the evaluator over built-in features like 'complexity' and 'diversity'. Added tests to verify that user-supplied metrics override default calculations when present.
Refactors the migration process to use the add() method for adding migrants, ensuring MAP-Elites deduplication, feature map updates, and proper island tracking. Updates logging to reflect the new process. Adds a test to verify that migrants are deduplicated correctly in the MAP-Elites feature map during migration.
Prevents migration of a program to a target island if a program with identical code already exists on that island. Adds a test to verify that duplicate code is not migrated, ensuring no redundant programs are created during migration.
Removes replaced programs from island sets in ProgramDatabase to prevent accumulation of stale entries. Updates migration and parent consistency tests to account for MAP-Elites deduplication and ensure correct island membership and metadata handling.
Fixes islands
… all numeric scores
Use combined_score for target_score analysis instead of an average of all numeric scores
This commit introduces a novelty checking system that uses embeddings and LLM-based judging to ensure programs added to the database are meaningfully different from existing ones in their island. Changes: - Added EmbeddingClient class for computing code embeddings using OpenAI/Azure models - Added novelty judge prompts for LLM-based similarity assessment - Modified ProgramDatabase to support novelty checking before adding programs - Added embedding vector field to Program dataclass - Added configuration options for embedding model, novelty LLM, and similarity threshold - Integrated novelty LLM ensemble in controller setup - Updated example config with novelty checking parameters The novelty check uses cosine similarity of embeddings as a first pass, then uses an LLM judge to determine if programs exceeding the similarity threshold are truly novel or just trivial variations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Fix novelty check in database.py to pass program.id instead of program object - Fix missing self parameter in embedding.py _get_client_model method - Fix serialization error by clearing novelty_llm before config deepcopy - Update function_minimization config for testing with different models 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add novelty rejection sampling feature
Allow setting programs_per_island from config
bump version for new release
Update _version.py
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.