Repository navigation
Conversation
zayenz
force-pushed
the
feature/open-search
branch
5 times, most recently
from
October 14, 2026 12:11
10fad23 to
4b24088
Compare
zayenz
force-pushed
the
feature/open-cp
branch
from
October 15, 2026 12:49
462123d to
e2a0fe9
Compare
zayenz
force-pushed
the
feature/open-search
branch
from
October 15, 2026 12:49
4b24088 to
489e4c2
Compare
zayenz
force-pushed
the
feature/open-cp
branch
from
October 15, 2026 13:47
e2a0fe9 to
8207ea7
Compare
zayenz
force-pushed
the
feature/open-search
branch
5 times, most recently
from
October 15, 2026 15:10
b599534 to
bfe3f2f
Compare
zayenz
marked this pull request as ready for review
October 20, 2026 06:50
zayenz
force-pushed
the
feature/open-cp
branch
from
October 20, 2026 19:56
1285aac to
9d34bd4
Compare
zayenz
force-pushed
the
feature/open-search
branch
2 times, most recently
from
October 20, 2026 20:33
5c37b18 to
2e3068c
Compare
zayenz
force-pushed
the
feature/open-cp
branch
2 times, most recently
from
October 21, 2026 08:11
0e679a7 to
5fb98a6
Compare
zayenz
force-pushed
the
feature/open-search
branch
4 times, most recently
from
October 21, 2026 12:02
a03e61d to
ace7c7f
Compare
This was referenced Oct 21, 2026
zayenz
force-pushed
the
feature/open-search
branch
2 times, most recently
from
October 21, 2026 19:25
7c04635 to
8d491da
Compare
Zdev-Change-Id: Z689ff9f06d20fe7b5f7f5068434756cd36e2bc5ab31f2f5a01f85d07df84c2f6
Allow models to group dominance comparisons with an optional cached key. Keep the predicate authoritative under collisions and enable the key in the TSPTW transition example. Retain parallel worker leases through admission and cleanup so exceptions cannot expose unfinished work.
Reuse incumbent copies and process failed or bound-pruned alternatives locally to reduce coordinator traffic. Check ordinary stops after at most 32 such alternatives and worker-count requests after each alternative. Preserve stop polling while rejecting queued nodes, with focused stop and resume coverage for both pruning paths.
Track candidate positions as the heap moves, so keyed dominance replacement no longer scans the beam. Share heap maintenance between sequential and parallel CABS while leaving ranking and dominance decisions in the engines. Validated with the existing search checks in Release and ASan/UBSan builds, temporary heap mutation probes, independent review, and paired benchmarks.
Submit up to eight successful siblings per frontier lock while preserving original-choice continuation and active leases through disposal. Keep single-child admission for A* and quota-limited CABS. Validated with Release and ASan/UBSan search checks, temporary stop/pause/exception probes, independent review, paired measurements, and separate contention profiles.
zayenz
force-pushed
the
feature/open-search
branch
from
October 21, 2026 20:44
fe151fe to
5c83ea5
Compare
This branch has not been deployed
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.
Add experimental A* and complete anytime beam search (CABS) for ordinary Gecode
Spacesubclasses. Stacked on #248.Both engines use a bound on the total objective to prune search. An optional ranking function guides exploration without affecting pruning. A* selects pending spaces by bound or rank; CABS keeps a beam at each depth and repeats with wider beams when discarded candidates could still improve the best solution. CABS also accepts model-defined dominance between candidates in the next layer.
Both engines support parallel search through
Options::threadsand dynamic worker control. Their builders can be combined with BAB in PBS portfolios. As with BAB,next()returns improving solutions; theastar(...)andcabs(...)helpers return the best solution found before exhaustion or a stop.Fifteen-puzzle and TSPTW demonstrate the engines. TSPTW compares a closed CP model with a transition model that extends the route one city at a time, using BAB, A*, or CABS. It includes one small runnable input. Correctness tests use Gecode's native test suite.
Enable with
GECODE_ENABLE_EXPERIMENTAL=ONor--enable-experimental; the preview is disabled by default. Preview APIs may change or be removed in future feature releases.Validation: focused open-list, heuristic-search, preparation, and PBS tests passed under ASan/UBSan and with static mimalloc 3.5.3. Development checks also compared TSPTW readers, enumerated small optima, and checked published tours. Leak detection was disabled for existing test-registration and thread-pool lifetimes.