Commit graph

6 commits

Author SHA1 Message Date
Michael Winter 863423ca7a Add uniform symdiff selection and store symdiff in graph edges
- Add symdiff to edge tuple in _find_valid_edges() and store in graph
- Add --uniform-symdiff CLI option to make symdiff selection uniform
- Implement uniform selection in pathfinder by grouping edges by symdiff
- With uniform: path uses symdiff 2 and 4 roughly equally
- Without uniform: path uses mostly symdiff 4 (most common)
2026-03-27 10:05:14 +01:00
Michael Winter e4b6d2cfdc Rename 'target range' to 'target register' throughout
- CLI: --target-range -> --target-register
- CLI: --weight-target-range -> --weight-target-register
- Config keys: target_range -> target_register
- Update README, tests, and all internal references
2026-03-17 14:11:21 +01:00
Michael Winter 7809fa5a76 Refactor: Move factor methods to Path class, add normalized_scores
- Move all _factor_* methods from pathfinder.py to path.py
- Add get_candidates() and compute_weights() to Path class
- Simplify step() to just commit chosen candidate
- Add normalized_scores field for consistent influence calculation
- Remove duplicate transposition/voice_map logic between get_candidates and step
- dca_voice_movement and target_range now use destination_chord directly
2026-03-16 18:59:13 +01:00
Michael Winter 482f2b0df5 Refactor: Rename sustain/last_visited fields for consistency 2026-03-16 17:35:07 +01:00
Michael Winter 861d012a95 Refactor: Unify Candidate and PathStep, fix DCA Hamiltonian
- Remove Candidate class, use PathStep for both hypothetical and actual steps
- Simplify Path.step() to accept a PathStep
- Fix DCA Hamiltonian to return visit_count directly instead of normalized score
- Tests pass and DCA properly discriminates
2026-03-16 16:53:22 +01:00
Michael Winter 400f970858 Rename graph.py to pathfinder.py
- Rename graph.py to pathfinder.py for clearer naming
- Update all imports
- Test CLI and tests pass
2026-03-16 16:13:19 +01:00
Renamed from src/graph.py (Browse further)