Skip to content

Conversation

mycpuorg
Copy link

No description provided.

codelion and others added 30 commits July 13, 2025 10:42
- 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]>
- 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]>
modify for MAP-Elite Algorithm
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.
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.
codelion and others added 30 commits September 17, 2025 11:27
UI: Resizable sidebar, view diff to parent in sidebar (vibecoded)
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.
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.