Implement study persistence and resumption capabilities for optimization workflows:
Features:
- Resume existing studies to add more trials
- Create new studies when topology/config changes
- Study metadata tracking (creation date, trials, config hash)
- SQLite database persistence for Optuna studies
- Configuration change detection with warnings
- List all available studies
Key Changes:
- Enhanced OptimizationRunner.run() with resume parameter
- Added _load_existing_study() for study resumption
- Added _save_study_metadata() for tracking
- Added _get_config_hash() to detect topology changes
- Added list_studies() to view all studies
- SQLite storage for study persistence
Updated Files:
- optimization_engine/runner.py: Core study management
- examples/test_journal_optimization.py: Interactive study management
- examples/study_management_example.py: Comprehensive examples
Usage Examples:
# New study
runner.run(study_name="bracket_v1", n_trials=50)
# Resume study (add 25 more trials)
runner.run(study_name="bracket_v1", n_trials=25, resume=True)
# New study after topology change
runner.run(study_name="bracket_v2", n_trials=50)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>