Skip to content

fix(vnd)!: honour score_tie_break among equally scored best moves - #184

Merged
blackopsrepl merged 1 commit into
mainfrom
feature/175-vnd-tie-break
Nov 4, 2026
Merged

blackopsrepl merged 1 commit into
mainfrom
feature/175-vnd-tie-break

Conversation

@blackopsrepl

Copy link
Copy Markdown
Collaborator

Closes #175. Base main @ fb8a0e0e, one commit e28376fa.

Gate on e28376fa (fmt, clippy -D warnings, doc-names file-length facade-reachability public-api deps, rustdoc -D warnings, examples, workspace all-feature tests, doctests): EXIT 0, 1524 passed, 0 failed, 65 result lines. Mutation check: a VND that never replaces an equally scored best fails random_picks_among_tied_moves_reproducibly.

Variable neighborhood descent accepted `score_tie_break` and dropped it in
lowering; it always kept the first of several equally scored best improving
moves. Lowering now passes the value to the VND runner, which keeps the
first tie under `first` and selects among ties by the foragers' seeded
reservoir selection, from the step's seed, under `random`.

Closes #175.

BREAKING CHANGE: VND phases now use `score_tie_break`, whose default is
`random`, so a VND phase without `score_tie_break = "first"` may apply a
different one of several equally scored best improving moves than before.
@blackopsrepl
blackopsrepl merged commit e28376f into main Nov 4, 2026
12 checks passed
@blackopsrepl
blackopsrepl deleted the feature/175-vnd-tie-break branch November 4, 2026 22:08
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.

VND ignores score_tie_break

1 participant