research/lab/py/percolation-race

0 directories and 2 files in research/lab/py/percolation-race.

percolation-race

  • Races five self-similar designs against random cell sets of exactly the same size on the same grid, on three metrics: face-connected components, largest-component fraction, and boundary per cell (2*dim*N - 2*E)/N.
  • Pass A builds each design as a Kronecker power of its level-1 tile, finds components by union-find, and draws the control with numpy.random.default_rng on PCG64.
  • Pass B builds each design by substitution over coordinate sets, finds components by breadth-first search on a padded grid, and draws the control with random.Random on the Mersenne Twister.
  • The dispersing tile is the antidiagonal in pass A and the diagonal in pass B, so the two passes race reflected copies of it.
  • Pass B also checks the substitution route against the digit rule for level 1, 2, 3 on all five designs, and counts the per-draw ties the means hide.
  • The passes share no build, no search and no generator; the last block prints every overlapping comparison as a multiple of the sample standard deviation and exits nonzero if any check fails.

DOMAIN

  • Pass A: 2D grids to 81x81, 3D to 81^3, 400 seeds thinning to 25 at the largest.
  • Pass B: 2D grids to 256x256, 3D to 81^3, 400 seeds thinning to 20 at the largest.
  • The program prints this domain first and runs it whole in about 9 s, cutting nothing.

RUN

uv run python research/lab/py/percolation-race/race.py

WITNESSES

  • connectivity.md:38-42 - the two passes agree on every comparison to within a standard deviation; the widest gap printed is 0.2061 sd.
  • connectivity.md:53-62 - the components table, 1 against 134.39 +/- 7.34 at the 32 x 32 gasket up to 1 against 31576.40 +/- 152.71 at the 81^3 sponge, with every density; and 65-66, the largest fraction 1.0000 against 0.0411 +/- 0.0098, 0.0011 and 0.0169.
  • connectivity.md:79-85 - the boundary table, including the diagonal's exact 4.0000 against 3.8808 +/- 0.0897; and 94, the gasket drift 2.0082, 2.0027, 2.0009, 2.0003.
  • connectivity.md:101-110 - the per-draw ties 0 of 400 and 0 of 100 at the gasket, 73 of 400 then 0 of 200 at seven-of-eight, 61 of 400 then 27 of 200 at the diagonal.
  • connectivity.md:113-114 - the dispersing extreme, random 30.10 against 32 at 32 x 32 and 125.93 against 128 at 128 x 128.
  • README.md:56 - the matched-noise bullet: 5257.23 +/- 32.94, 31576.40 +/- 152.71, 0 of 400 at the 32 x 32 gasket, boundary 2.0003 against 3.6006 +/- 0.0103.