Skip to content

test: reproduce greedy final-route hard-constraint bypass - #139

Draft
ShiboSoftwareDev wants to merge 1 commit into
agent/fix-physical-duplicate-lane-placementfrom
agent/repro-greedy-final-route-hard-constraints
Draft

test: reproduce greedy final-route hard-constraint bypass#139
ShiboSoftwareDev wants to merge 1 commit into
agent/fix-physical-duplicate-lane-placementfrom
agent/repro-greedy-final-route-hard-constraints

Conversation

@ShiboSoftwareDev

@ShiboSoftwareDev ShiboSoftwareDev commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Stack

Stacked on #138.

Problem

The normal path search rejects a same-layer crossing with an infinite cost. The timeout-only greedy completion solver replaces the whole cost calculation with zero, so it also removes that hard rejection.

The result can be marked solved even though two different nets cross inside a single-layer region. The autorouter then receives topology that no physical high-density solver can implement legally.

Reproduction

The fixture has one single-layer square with an already-routed vertical net. A horizontal net is left for greedy timeout completion. The only horizontal path crosses the vertical net.

The test uses the real tiny-hypergraph solver state and its native visualization. On this reproduction branch, greedy completion accepts the crossing and the final safety assertion fails. The fix PR will use this exact fixture and assertion unchanged.

Greedy timeout incorrectly accepts the horizontal crossing

Validation

  • GitHub Actions only; nothing is run locally.
  • The SVG snapshot is generated on a hosted runner.

@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
tiny-hypergraph Ready Ready Preview Aug 2, 2026 10:41am

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.
The result comment shows the matching dataset from the latest stored main-branch benchmark artifact beside the PR run; main is not rerun for each PR benchmark request.

Examples:

  • /benchmark -> hg07, all samples, core solver
  • /benchmark --dataset srj18 --limit 20 -> first 20 srj18 samples
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample002 -> one hg07 sample
  • /benchmark --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --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.

@ShiboSoftwareDev

Copy link
Copy Markdown
Contributor Author

/update-snapshots

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