Changelog
Breaking Changes
- Search algorithms separated from Tree: Removed
Tree._expand_multiple_nodesandTree._expand_nodeinternal methods. Search algorithms now live insynplan/mcts/algorithm.pyas separate strategy classes. - Evaluation system refactored: Replaced
NodeScorewithRDKitScoreclass. Evaluation functions unified throughEvaluationService. Configuration now usesevaluation_functionparameter with backward compatibility. - Tree config changes: New required parameters added (
algorithm,search_strategy,ucb_type,c_ucb,backprop_type,evaluation_agg,epsilon,beam_width,normalize_scores,stop_at_first,enable_pruning). Old configs may need updates.
Added
- New search algorithms module (
synplan/mcts/algorithm.py):UCT,NestedMonteCarlo,LazyNestedMonteCarlo,Beam,BestFirst,BreadthFirst - RDKit evaluation utilities (
synplan/chem/rdkit_utils.py):RDKitScoreclass for molecular scoring - Parallel utilities (
synplan/utils/parallel.py): Parallel processing helpers - Algorithm unit tests (
tests/unit/mcts/test_algorithm.py) - GUI/CLI improvements: Updated interfaces for better usability
Performance Improvements
- Parallel building blocks loading: Added parallel loading of building blocks
Changed
- Evaluation system: Unified node evaluation through
EvaluationService, consistent value aggregation - Tree architecture: Search logic separated from tree structure for better modularity
- Configuration files: Updated
configs/planning.yamlandconfigs/tuning.yamlwith new parameters - Docker: Simplified Dockerfiles and build workflows
- Tutorials: Updated all tutorial notebooks and user guide