Skip to content

Stop retrying exhausted empty single-route searches - #317

Open
ShiboSoftwareDev wants to merge 2 commits into
repro/h3-empty-solo-reripsfrom
fix/stop-empty-single-route-rerips
Open

ShiboSoftwareDev wants to merge 2 commits into
repro/h3-empty-solo-reripsfrom
fix/stop-empty-single-route-rerips

Conversation

@ShiboSoftwareDev

@ShiboSoftwareDev ShiboSoftwareDev commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

H3's independent DDR search retries an unchanged empty graph until its iteration limit. On larger native graphs, repeatedly clearing this state can stall routing startup for minutes.

Stop after exhausting a single-route search when there are no initial assignments, assigned ports, committed segments or congestion to change. Searches with existing routing still retry normally.

Stacked on #316; also addresses the mechanism in #289. This removes wasted work; SDQS1_N remains unrouted.

Captured H3 search Before After
Iterations 2,000,000 40,278
Unchanged retries 49 0
Before After
Before After

The ten native TSX/Core board reruns preserve connected-signal counts, copper and physical findings exactly. The H3 board remains at 16/53 signals; this change fixes retrying, not the missing route.

Benchmark Base Fix
srj18 base / fix 8/8 complete, 29.606 s 8/8 complete, 30.304 s
hg07 base / fix 104/105 complete, 18.797 s 104/105 complete, 18.994 s

All 113 benchmark cases have identical completion, route counts, costs, hops and iterations. hg07 sample014 fails endpoint mapping on both revisions. Timings are from separate Blacksmith runners at concurrency 4; they do not establish a speedup or a slowdown. Bun CI passes.

@vercel

vercel Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
tiny-hypergraph Ready Ready Preview Nov 10, 2026 6:44pm UTC

Request Review

@tscircuitbot

Copy link
Copy Markdown

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark --dataset <hg07|srj18> --limit <n> --solver <core|poly> --families <default|default+deep|all> --concurrency <n|auto>

Everything after /benchmark is forwarded directly to ./benchmark.sh.
Every command runs current main and the PR head sequentially on the same Blacksmith machine, then reports their results side by side.

Examples:

  • /benchmark -> all committed completed SRJ18 Pipeline7 cases, core solver
  • /benchmark --limit 4 -> first four committed Pipeline7 cases
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample003 -> one committed SRJ18 Pipeline7 case
  • /benchmark --dataset hg07 --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --dataset hg07 --limit 40 --families default+deep -> first 40 hg07 samples with deeper candidate families

Any PR whose title contains [BENCHMARK TEST] will automatically run the benchmark workflow on PR updates.

This branch was successfully deployed

1 active deployment
Preview — d1eb2ba6 Deployed Nov 10, 2026 by vercel[bot]
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.

2 participants