Repository navigation
test(localsearch): pin forager, acceptor, recreate and seed behaviour - #206
Merged
Merged
Conversation
Building first_accepted as the best-score forager, swapping first_best_score_improving and first_last_step_score_improving, or ignoring score_tie_break = "random" passed every test. Each forager type now has a test offering candidates in a fixed order and asserting which it picks and when it stops, and the configured, default and tabu-search foragers each have a test that a random tie break spreads picks over equally scored candidates while "first" keeps the first.
The step counting hill climbing step_count_limit, the great deluge water_level_increase_ratio and the simulated annealing temperature_controlled hard regression policy could be replaced by their defaults or by the other policy without a test failing. Each now has a test driving the built acceptor through steps and asserting which moves it accepts.
Building cheapest_insertion recreate as first fit passed every test. A solve with only ruin-and-recreate moves now shows cheapest insertion rebuilding two tasks on the cheapest free workers, and first fit putting them back on the first worker.
Simulated annealing, random tie breaks and the ruin choice each get a bounded solve where only that part is random, asserting that repeated solves with one seed agree and that some other seed disagrees. Seeding the annealing acceptor or the per-step seed from the operating system fails them. Closes #205.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #205. Base
main@ff11cd47, four test-only commits:5982cd9aforager types and the score tie break (configured, default and tabu-search foragers)19bc7ee2acceptor parameters: step countingstep_count_limit, great delugewater_level_increase_ratio, simulated annealing hard regression policies9f9225a2ruin-and-recreatecheapest_insertionvsfirst_fitf70f37dcsimulated annealing, random tie breaks and ruin choice each followrandom_seedGate (fmt, clippy, doc-names file-length facade-reachability public-api deps, rustdoc, examples, workspace all-feature tests, doctests): EXIT 0, 1581 passed, 0 failed, 71 result lines.
Mutation checks, each failing at least one new test: the nine mappings listed in #205, seeding the annealing acceptor from the OS, and drawing the per-step seed from the OS.