Skip to content

Orbital strategy experiment - #88

Open
ChrisJefferson wants to merge 11 commits into
masterfrom
orbital-strategy-experiment
Open

ChrisJefferson wants to merge 11 commits into
masterfrom
orbital-strategy-experiment

Conversation

@ChrisJefferson

Copy link
Copy Markdown
Collaborator

No description provided.

Refresh dependencies/ from the BacktrackKit and GraphBacktracking masters
via import.sh, picking up:
  * getOrbitalListWithOptions budgetMode (orbital-graph transmission budget)
  * _PS_ForcePartition (direct O(n) partition overwrite)
  * the normaliser refiner's budgetMode wiring
GAP-side refiner callbacks re-derived the mirror partition by sorting a
per-point cell map (SortBy in PS_SplitCellsByFunction), which dominated
GAP-side refiner time. Instead send the partition already in cell order
(base_as_force_partition: values, cellstarts, fixed) and have GAP
overwrite its stack in one O(n) pass via _PS_ForcePartition -- no sort,
no discarded tracer.

Because every refine callback now rewrites the whole partition, and the
mirror is only read inside such a callback, partition-level save/restore
is unnecessary: comms.gi now saves/restores only the refiners' backtrack
data, not the partition (avoiding PS_RevertToCellCount, invalid after a
force-rewrite).

The canonical fixed-point order now comes from Vole's own fixing order
rather than the old GAP sort artefact, giving different but equally valid
(orbit-constant) canonical representatives; the affected
CanonicalImage/CanonicalPerm examples in the tests and manual sources are
updated accordingly. Removes the now-unused base_as_indicator.
vole06.tst (extracted from the bundled BacktrackKit constraint.gd) ran
LoadPackage("BacktrackKit", false), but Vole bundles BacktrackKit without
registering it as a loadable package, so this printed a "package is not
available" warning and failed CI. Re-sync the dependencies bundle from
the BacktrackKit master (which drops the redundant load) and regenerate
the extracted test.
Refresh dependencies/BacktrackKit/gap/internal/util.g from the
BacktrackKit master via import.sh, picking up the V+E orbital cost
model and the unified in-group budget rule (getOrbitalList now budgets
like the canonical path). This makes the orbital-graph budget a real
memory bound on deep near-regular searches.

Add the benchmark harness (orbital-strategy-sweep.g) that generated the
already-tracked orbital-strategy-sweep.csv, plus the write-up
(orbital-strategy-results.md) covering the sweep, the branch-selection
explanation of why budgeting helps, and the memory blow-up analysis.
Use the GAP loading plan to select external dependencies, falling back to bundled copies when suggested packages are skipped. Require compatible 1.2.0 dependencies and add a fresh-session regression check.

Assisted-by: Codex (GPT-6)
Sync the anchored regular-orbit cache and refreshed branch proposals from
BacktrackKit and GraphBacktracking. Cross-orbit propagation now follows
corresponding generators from fixed anchors, retaining orbit exchanges
and removing dependence on arbitrary generator presentations.

The regular-S3 canonical witness now passes; canonical dispatch continues
to use Orbital pending broader validation.

Assisted-by: OpenAI Codex (GPT-6)
Extend the bank with repeated regular actions, quotient constituents and
the cross variants. Preserve normaliser regressions with shortcut control
and expand canonical checks across relabellings and presentations.

Compare returned groups rather than their orders in subdirect checks and
the legacy hunt. Record missing oracles as unverified and include refiner
construction in the hunt's timed call.

Assisted-by: OpenAI Codex (GPT-6)
Measure each method in a fresh GAP process with paired random seeds,
shuffled execution order, deadlines and descendant cleanup. Verify
returned groups separately and retain unknown oracle outcomes explicitly.
Record inputs, configuration, source hashes and flushed observations for
reproducible comparisons.

Assisted-by: OpenAI Codex (GPT-6)

This branch has not been deployed

No deployments
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.

1 participant