README.md
2.4 kB · markdown
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_rngon 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.Randomon 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 to81^3, 400 seeds thinning to 25 at the largest. - Pass B: 2D grids to
256x256, 3D to81^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.34at the32 x 32gasket up to 1 against31576.40 +/- 152.71at the81^3sponge, with every density; and 65-66, the largest fraction 1.0000 against0.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 32and 125.93 against 128 at128 x 128. - README.md:56 - the matched-noise bullet:
5257.23 +/- 32.94,31576.40 +/- 152.71, 0 of 400 at the32 x 32gasket, boundary 2.0003 against3.6006 +/- 0.0103.