Skip to content

[P2|检查点封存、不续宽度] P398记忆/状态阶数:共享算力暂停扩张 #593

Description

@LightChainr

Why this needs server compute

Everything in #580 and #588 was done in pure Python with no numpy and no scipy, which caps us at width 8 (1430 states). The one question Phase A could not answer is a width question, and it is the question that decides how the whole block gets written up.

The measurement is cheap with numpy/scipy on a server and impossible without it. Width 9 is 4862 states, width 10 is 16796. Dense linear algebra at 16796 is out of reach even with numpy; the algorithms below are all sparse matrix-vector or matrix-free, so width 10 is comfortable with scipy sparse and width 11 (58786) is probably reachable if width 10 comes back clean.

The object

P398 is the noncrossing planar connectivity process: canonical noncrossing states on w boundary points (Catalan numbers 14, 42, 132, 429, 1430, 4862, 16796 for w = 4..10), with two moves per boundary point, join_cyclic_adjacent and detach. It is already implemented exactly and deterministically in this repository:

scripts/noncrossing_connectivity_codec.py     canonical state enumeration
scripts/planar_state_operations.py            the two moves
scripts/p398_intervention_transport.py        Generator, spans, lumping, modular rank
scripts/p398_projected_memory.py              projection, memory kernel, Hankel order

scripts/planar_transition_table.py emits a content-hashed transition table and is the right cross-check that a reimplementation agrees with ours before any new width is trusted.

The generator acts on functions, (G f)_i = sum_j G_ij f_j, with the affine family

G_eta = G_0 + eta * H,   H = sum(join) - sum(detach)

Self-transitions are dropped (they cancel between an off-diagonal entry and the exit rate).

What to compute, at widths 9 and 10

All at eta = 0 unless stated. Declared before the numbers exist; do not substitute a different span, dictionary or lag grid.

Frozen configuration (must match ours exactly)

Readout seeds, in this order: the constant function 1, then blocks, singletons, wrap (definitions in p398_intervention_transport.py, observable_*). Block Krylov span built at rank 12 and prefixed to rank 6, with each frontier vector normalized before the next application of G (raw powers reach NaN otherwise) and the frontier kept in declared seed order. Phi orthonormal in the counting inner product.

Deliverable 1 — the memory degree (the reason this ticket exists)

C = Q G Phi,  Q = I - Phi Phi^T
K(tau) = Phi^T G exp(tau D) C,  D = Q G Q

D is 16790 x 16790 at width 10 and must not be formed. Propagate the columns of C as full-space vectors constrained to range(Q), taking exp(tau D) v by uniformization on I + D/Lambda (re-project onto range(Q) every few steps; the seeds are in range(Q) and Q G v lands there exactly, so only roundoff leaks). Sample K on the uniform grid t = 0, 0.25, ..., 4.0.

Report:

rank C                                        (we get 3 at widths 5-8)
block-Hankel numerical rank at tol 1e-6       (we get 4, 9, 12, 13, 14 at widths 4-8)
effective order at 99% and 99.9% energy       (we get 3 flat, and 2,3,4,4,4)
integrated ||K||, decay time, tail mass > t=2 (we get 1.681, 0.136, 0.0006 at width 8)
the leading 16 singular values, normalized

The question is whether the numerical order keeps growing. It goes 4, 9, 12, 13, 14 across widths 4-8 while the state space multiplies by 102 — sublinear, apparently flattening, but not flat. Two more widths separate "saturates" from "grows like log n" from "grows like a small power". That distinction decides whether this object supports a bounded non-Markov reduced description or belongs with the predictive-noncompression results.

Build the block Hankel from samples 1..16 (drop t = 0), 8 x 8 blocks of size 6, and take singular values via an actual SVD rather than the eigendecomposition of H^T H — our square-root formulation caps precision near 1e-8 and that is exactly the range where the tail lives.

Deliverable 2 — the three rank notions continued

width   states   r_linear(D0)   r_positive   r_transport
  4       14         10             10            4
  5       42         26             26            4
  6      132         72             76            6
  7      429        218            232            6
  8     1430       >=150           750            6
  • r_linear = dim span{G_0^k f} over the D0 readouts. Compute by exact elimination over the prime 2147483647 — the generator and readouts are integer-valued, so this is exact and is a certified lower bound on the rational rank. Do not use floating-point Gram-Schmidt: at width 6 it returns 132 (the full space) against a true 72, because repeated generator application collapses onto the dominant direction and a pivot tolerance then decides the answer. Our width-8 entry is a budget-truncated >=150; please give the true value at widths 8, 9, 10.
  • r_positive = block count of the coarsest exact strong lumping refining the readout colouring, computed jointly against G_0 and H (so it is the coarsest lumping valid for the whole affine family). Partition refinement on the signature "total rate into each block", exact rational or integer arithmetic. Verify the aggregate against the full chain on the declared lag grid; ours agrees to 2.7e-15.
  • r_transport = smallest rank in (3,4,6,8,12) whose frozen span transports eta = ±1/4 within the declared threshold. Needs the response scoring, which is cheap.

The gap r_positive / r_transport is 125 at width 8 and widening. Widths 9-10 say whether it widens linearly in the state count or slower.

Deliverable 3 — the out-of-pencil lumping collapse

Repeat the joint lumping with H_single = the tilt of join at boundary point 0 only, which is outside the span{J, D} pencil. At every width 4-8 the coarsest lumping valid for that family collapses to the identity partition. Confirm or break this at 9 and 10. It is currently the sharpest structural result in the block and it would be good to know it is not a small-width accident.

Controls this must pass before any number is reported

Non-negotiable, and all of them are cheap:

  1. The transition table content hash at widths 1-8 must reproduce scripts/planar_transition_table.py --maximum-width 8. If a reimplementation disagrees there, nothing after it counts.
  2. Exact row sums zero; positivity of all rates for |eta| <= 1; the chain strongly connected.
  3. exp(tG) 1 = 1 to machine precision.
  4. Uniformization against an independent dense Taylor exponential at width 5.
  5. A full-rank projection must give K identically zero, and a generator-closed Krylov span must give K = 0 to 1e-8 relative — both are exact zeros in the mathematics and catch a leaking complement.
  6. The resolvent Schur identity Phi^T (sI-G)^{-1} Phi = (sI - A - B(sI-D)^{-1}C)^{-1} at width 5 for a few real s > 0. This is the one a transposed B/C does not survive, and it involves no time integration.

Our values for controls 5 and 6 at width 4: 0.0, 6.1e-30, and 7.4e-16.

Format

A JSON artifact mirroring results/p398-projected-memory/latest.json plus the rank table, with every control value included and the code used. Widths 4-8 recomputed as well, so agreement with our numbers above is visible in the same file. If width 10 is expensive, width 9 alone answers most of the question and is worth returning on its own.

Boundary

This is a calibration model. Nothing here is a percolation threshold result, and success at width 10 does not transport to square-site Matching One without a declared map between microscopic state spaces.

Related: #588, #580, #549, #550.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:P2Deferred research or on-demand support; no default new compute allocation.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions