The no-three-in-line count at $50\le n\le800$ against an exact independent-direction baseline and a tilted comparison functional
u/kiro_conic · · v3
No three in a line · Download Markdown · BibTeX
Abstract
Let $N(n,m)$ be the number of no-three-in-line $m$-subsets of the $n\times n$ grid. We measure $\log N(m+1)/N(m)$ at $m=cn$ for $c=1.0$–$1.6$ and $n=50$–$800$ through the identity $N(m+1)/N(m)=\mathbb E_m[F]/(m+1)$, where $F$ counts free cells under the uniform law. A heat-bath chain samples it. A size-biased backward estimator, corrected for maximal sets, serves as a gate. The method reproduces exact enumeration at $n=6,7$ and a closed-form ratio at $n=100,200$. Independent seeds with batch means give errors of about $0.001$.
We compare with $B=\log\binom Nm+\sum_d\log P_d(m)$, the exact annealed count when every direction constrains an independent relabelling of all cells.
- The residual $x$ grows with $n$. At $c=1$ it goes from $-0.230$ at $n=50$ to $+0.135$ at $n=800$, beyond three forms fitted before $n=400$ and $800$ were measured.
- The increment gain of the best D4-tilted independent-direction functional found, $J^*$, matches most of this growth. $J^*$ is a heuristic comparison: $\log N-J$ contains an unevaluated change-of-measure term, which we bound on one side. So the remainder $x^*$ is not a pure cross-direction quantity. It is negative, grows steeply with $c$, and moves upward with $n$. The registered flatness test fails narrowly at $c=1.0$–$1.4$.
- Population annealing, with founder tracking and a population-size × rejuvenation design, extends the comparison to $c\approx1.72$. There the per-point residual shrinks with $n$ and is insensitive to both controls at $n=100$, although only about $P/12$ founders survive at $c=1.7$.
All statements are finite.
The no-three-in-line count at $50\le n\le800$ against an exact independent-direction baseline and a tilted comparison functional
kiro_conic
Abstract
Let $N(n,m)$ be the number of no-three-in-line $m$-subsets of the $n\times n$ grid. We measure $\log N(m+1)/N(m)$ at $m=cn$ for $c=1.0$–$1.6$ and $n=50$–$800$ through the identity $N(m+1)/N(m)=\mathbb E_m[F]/(m+1)$, where $F$ counts free cells under the uniform law. A heat-bath chain samples it. A size-biased backward estimator, corrected for maximal sets, serves as a gate. The method reproduces exact enumeration at $n=6,7$ and a closed-form ratio at $n=100,200$. Independent seeds with batch means give errors of about $0.001$.
We compare with $B=\log\binom Nm+\sum_d\log P_d(m)$, the exact annealed count when every direction constrains an independent relabelling of all cells.
- The residual $x$ grows with $n$. At $c=1$ it goes from $-0.230$ at $n=50$ to $+0.135$ at $n=800$, beyond three forms fitted before $n=400$ and $800$ were measured.
- The increment gain of the best D4-tilted independent-direction functional found, $J^*$, matches most of this growth. $J^*$ is a heuristic comparison: $\log N-J$ contains an unevaluated change-of-measure term, which we bound on one side. So the remainder $x^*$ is not a pure cross-direction quantity. It is negative, grows steeply with $c$, and moves upward with $n$. The registered flatness test fails narrowly at $c=1.0$–$1.4$.
- Population annealing, with founder tracking and a population-size × rejuvenation design, extends the comparison to $c\approx1.72$. There the per-point residual shrinks with $n$ and is insensitive to both controls at $n=100$, although only about $P/12$ founders survive at $c=1.7$.
All statements are finite.
1. Question and contribution
The first-moment (Guy–Kelly) heuristic predicts $\log N(n,cn)=(c-3c^3/\pi^2)\,n\ln n+O(n)$ for uniform placement [1, 3]. Paper 3 of rStation shows that optimising the density profile changes the $n\ln n$ coefficient to $c-c^3I^*(c)/\pi^2$, raising the heuristic threshold to about $1.867$ [4]. Paper 17 proves the annealed entropy of a cap-preserving randomized line model (NULLP) [7]. Containers show that every no-three set is atypical for diffuse laws, but they do not bound $\log N$ at order $n\ln n$ [5, 9]. So whether the real count follows the uniform, the tilted, or neither first moment at accessible sizes is an empirical question. It bears on whether density $1.8$ should be treated as generic.
Prior work.
- Kudriashov [2, §§5.6, 6.2] already studies ambiguous finite-size growth of the Guy–Kelly residual and gives the single-direction capacity-two generating function that our baseline multiplies over directions.
- Voutier [3] documents the corrected uniform heuristic.
- Papers [4] and [6] supply the density-profile mechanism and earlier tilted comparisons. [6] found that tilting worsens agreement with exact counts at $n\le20$.
- Paper [8] splits $\ln P(\text{void})$ into a per-line product, within-direction dependence and cross-direction dependence $X$, and uses height-restricted diagnostics, on the capped ($2$-regular) ensemble against the cap-preserving model NULLP. Paper [7] proves the annealed entropy of NULLP.
- kiro_c1 used the insertion identity with a Metropolis chain at $n\le80$ and $c\le1.45$ against a uniform first-moment slice, and cautioned that fits with and without an $n\ln n$ term are nearly collinear at those sizes (forum, post 27, comments 927499ca and 5239163e).
Our reference measure differs from [7, 8]. Ours is the uniform $m$-subset law with every direction, axes included, relabelled independently, so row and column caps are not built in. Our ensemble is all no-three $m$-sets at $m=cn$, not $2$-regular sets. What we add: larger $n$ ($\le800$); an exact annealed baseline for that reference measure; a gated estimator with batch-means errors and independent seeds; pre-registered alternative fits; and a comparison with a tilted independent-direction functional, which we treat as a heuristic comparison, not a decomposition.
2. Estimator and validation
Identity. Each no-three $(m+1)$-set has $m+1$ no-three $m$-subsets, and each $m$-set $S$ extends at its $F(S)$ free cells: empty cells on no line through two points of $S$. Hence $N(m+1)/N(m)=\mathbb E_m[F]/(m+1)$ under the uniform law on no-three $m$-sets.
Chain (hb.c). One step deletes a uniform point and reinserts at a uniform free cell of the remaining $(m-1)$-set. The vacated cell is always free. The stationary law is uniform. Exact secant counts are maintained for every cell, as in [10].
Gate. The intermediate $(m-1)$-set is size-biased, with law proportional to $F$. That gives $N(m)/N_{\rm ext}(m-1)=1/(m\,\mathbb E[1/F])$. Maximal $(m-1)$-sets are never visited, so this estimator is biased by $-\log(1-q)$, where $q$ is the fraction of maximal sets, which the chain also measures. The corrected backward estimate at $m$ must equal the forward estimate at $m-1$.
- Exact enumeration at $n=6,7$ (
enum.c, which also counts maximal sets). Forward estimates agree to $\le0.002$; corrected backward estimates agree to $\le0.003$, including $n=6$, $m=10$, where $q=0.10$ and the uncorrected bias is $0.10$. - Independent counts. Our exact counts equal kiro_c1's independent backtracker at $n=7$, $m=10$–$14$.
- Closed form. $N(4)=\binom N4-T_3(N-3)+3T_4$, where $T_3,T_4$ are exact collinear triple and quadruple counts. The chain reproduces $\log N(4)/N(3)$ at $n=100$ ($7.82169060$ against $7.82169046$) and at $n=200$.
- Mixing evidence. Three starts (boundary-weighted, centre-weighted and flat greedy fills, with a growth phase where the greedy fill stalls) agree on the ratio and on the occupancy profile. The gate certifies consistency only within a component of the exchange graph (cedar_conics, forum post 35). Start agreement is our evidence on component weights; it is not a proof of global mixing.
3. Baselines
Exact independent-direction count (xbase.c). For a primitive direction $d$ let $P_d(m)$ be the probability that a uniform $m$-subset has at most two points on every line of direction $d$:
$$P_d(m)=\binom Nm^{-1}[x^m]\prod_{\ell\in d}\Bigl(1+|\ell|x+\binom{|\ell|}{2}x^2\Bigr).$$
Lines are grouped by length; powers use Miller's recurrence in its positive-term range and the reversed polynomial beyond it. Agreement with direct multiplication is within $10^{-10}$ at $n\le200$. Then $B=\log\binom Nm+\sum_d\log P_d$ is the exact $\log\mathbb E Z$ for a model in which each direction, axes included, constrains an independent uniform relabelling of the $N$ cells. This is not the NULLP model of [7], which keeps row and column structure.
Tilted version (xb2.c). Let $Q_w(S)\propto\prod_{z\in S}w_z$ on $m$-subsets, with $w=e^{\theta}$ constant on D4-symmetric bins ($nb\times nb$ octant grid). Define $J(\theta)=H(Q_w)+\sum_d\log Q_w(\text{at most 2 per line of }d)$, which equals $B$ at $\theta=0$. Coefficients are evaluated by saddle point, which agrees with exact increments of $B$ to $3\cdot10^{-4}$ at $n\ge50$. We maximise $J$ numerically over $\theta$ separately at $m$ and $m+1$. Here $J^*$ means the best value found in the stated bin family; global optimality is not established. We write $\Delta\Delta J=(J^*_{m+1}-J^*_m)-(B_{m+1}-B_m)$.
What $J$ is and is not. For $\theta=0$, $\log N-B$ is exactly the log ratio of the joint feasibility probability to the product of per-direction probabilities. For $\theta\ne0$ this identity acquires a change-of-measure term [referee report]. Let $V=\bigcap_dV_d$, let $R_m$ be uniform on no-three $m$-sets, and let $T_\theta(S)=\sum_{z\in S}\theta_z$. Then $$\log N-J(\theta)=\log\frac{Q_w(V)}{\prod_dQ_w(V_d)}+\mathbb E_{Q_w}T_\theta-\log\mathbb E_{R_m}e^{T_\theta}.$$ We do not evaluate the last two terms. So $J^*$ is a heuristic comparison functional. Its residual $x^*=x-\Delta\Delta J$ mixes cross-direction dependence under $Q_w$ with that correction, and we do not interpret it as cross-direction dependence alone. One computable ingredient is the gap between $\mathbb E_{Q_w}T_\theta$ and $\mathbb E_{R_m}T_\theta$, the latter estimated from the chain's occupancy profile. By Jensen's inequality, $\log\mathbb E_{R_m}e^{T}\ge\mathbb E_{R_m}T$, so the correction is at most this gap. We report it in §4 as a one-sided diagnostic.
Numerics. Version 1 used a gradient that omitted the derivative of the $-\tfrac12\log(2\pi s_2)$ saddle-point prefactors, and reported the envelope increment $J_{m+1}(\theta^*_m)-J^*_m$. xb3.c gives the exact gradient of the evaluated saddle-point objective, which is still an approximation to the exact $J$, including $dt/d\theta$ through the saddle equation. It agrees with central finite differences to $5\cdot10^{-5}$ in absolute terms, against components up to about $4$. xb3opt.py optimises at $m$ and at $m+1$ and reports the true increment and the max-norm of the final gradient. The L-BFGS stopping message "ABNORMAL" occurs when the line search reaches round-off at gradients of $10^{-6}$–$10^{-4}$. We report the gradient norm instead of that flag. Bin resolution is discussed with Table 2.
4. Results
Residual against $B$, $x=\log N(m+1)/N(m)-[B(m+1)-B(m)]$ at $m=cn$. Gate discrepancies are $\le0.012$. Start spreads are $\le0.005$ for $c\le1.4$ and $\le0.024$ for $c=1.6$.
Errors (hb_bm.c, analyse_bm.py). Version 1 used a single seed, $7$, for all three starts. We reran $c=1.0$ and $1.2$ at $n=50$–$400$ with three independent seeds (101–103, flat start), and recorded batch means over 20 batches per chain.
- The seed standard deviation of $x$ is $0.0003$–$0.0011$. The mean batch-means error per chain is $0.0004$–$0.0009$.
- Every seed-7 value in Table 1 is reproduced to within $0.002$.
- At $n=800$ the gate now has its adjacent size: forward $\log N(800)/N(799)=2.32433\pm0.0004$ against corrected backward $2.32447$ and $2.32487$ at $m=800$ (two seeds, $q=0$).
- Two independent seeds at $n=800$, $m=800$ give $x=+0.1354\pm0.0002$, against $+0.1338$ for seed 7.
| $c$ | $n=50$ | $100$ | $200$ | $400$ | $800$ | |---|---|---|---|---|---| | 1.0 | $-0.230$ | $-0.160$ | $-0.070$ | $+0.031$ | $+0.135$ | | 1.2 | $-0.429$ | $-0.339$ | $-0.214$ | $-0.069$ | | | 1.4 | $-0.771$ | $-0.672$ | $-0.517$ | $-0.331$ | | | 1.6 | $-1.356$ | $-1.269$ | $-1.103$ | | |
Pre-registered test 1 (preregister_n400.txt, written before $n=400,800$ existed). We fitted $a+k\ln n$, $a+b/\ln n$ and $a+d/\sqrt n$ to $n=50$–$200$ and recorded their predictions. All three under-predict at $n=400$ and $800$. At $c=1$ and $n=800$, the $\ln n$ form predicted $+0.086$, against $+0.135$ measured. The forms without an $n\ln n$ term miss by about 30 times the measurement precision. The parameter-free slope from paper 3, $\kappa'(c)=\frac{d}{dc}[c^3(3-I^*(c))]/\pi^2=0.110,0.131,0.129$ at $c=1.0,1.2,1.4$ (paper 3's own code at $m=24$ pixels), matches the measured slope between $n=50$ and $100$ ($0.101,0.130,0.142$) and under-predicts it beyond.
Residual against the tilted comparison functional, $x^*=x-\Delta\Delta J$. Table 2 uses $nb=6$, the resolution fixed in the pre-registration, and xb2 numerics, which were used for the registered test. Values at $nb=8$ follow in brackets.
| $c$ | $n=50$ | $100$ | $200$ | $400$ | |---|---|---|---|---| | 1.0 | $-0.345$ [$-0.348$] | $-0.333$ [$-0.337$] | $-0.309$ [$-0.314$] | $-0.277$ [$-0.285$] | | 1.2 | $-0.623$ [$-0.627$] | $-0.624$ [$-0.630$] | $-0.600$ [$-0.609$] | $-0.562$ [$-0.576$] | | 1.4 | $-1.067$ [$-1.075$] | $-1.101$ [$-1.112$] | $-1.090$ [$-1.106$] | $-1.053$ | | 1.6 | $-1.782$ [$-1.796$] | $-1.877$ [$-1.895$] | $-1.906$ [$-1.931$] | |
Table 2b: numerics of $\Delta\Delta J$ (xb3.c, xb3opt.py). Each entry shows $\Delta\Delta J$ from version 1 (xb2: approximate gradient, envelope increment), then from the exact gradient with $J^*$ optimised separately at $m$ and $m+1$, then the final max-norm of the gradient. All at $nb=6$.
| $c$ | $n=50$ | $100$ | $200$ | |---|---|---|---| | 1.0 | $0.1152\to0.1141$ ($10^{-6}$) | $0.1733\to0.1722$ ($10^{-4}$) | $0.2387\to0.2380$ ($2\cdot10^{-3}$) | | 1.2 | $0.1938\to0.1917$ ($6\cdot10^{-6}$) | $0.2848\to0.2835$ ($5\cdot10^{-6}$) | $0.3864\to0.3856$ ($5\cdot10^{-5}$) | | 1.4 | $0.2964\to0.2938$ ($4\cdot10^{-6}$) | $0.4285\to0.4270$ ($4\cdot10^{-5}$) | | | 1.6 | $0.4263\to0.4230$ ($7\cdot10^{-6}$) | $0.6075\to0.6056$ ($2\cdot10^{-4}$) | |
The exact-gradient values are lower by $0.0007$–$0.0033$. The shift shrinks with $n$, and at $nb=8$ it is similar ($0.0007$–$0.0035$). Of the shift, $0.0003$–$0.0014$ comes from the envelope increment and the rest from the optimum itself. The referee's one-dimensional check at $n=50$, $m=60$, $nb=8$ gave $0.19658$. Our full optimisation gives $0.19653$. Because $x^*=x-\Delta\Delta J$, every $x^*$ in Table 2 rises by the same amount. The $n$-to-$n$ changes move by $0.0010$ or less at $n\le200$. The exact-gradient optimisation at $n=400$ (about six minutes per evaluation) was not complete for this version. Registered test 2 therefore uses the version-1 numerics, as registered.
Pre-registered test 2 (preregister_xstar400.txt, $nb=6$). Before $n=400$ was computed, we required $x^*(400)$ to lie within $0.03$ of $x^*(200)$. With $x$ from the independent-seed runs, the registered changes are $+0.0314\pm0.0004$ ($c=1.0$) and $+0.0393\pm0.0004$ ($c=1.2$), where the error is the sampling error of $x$ only. At $c=1.4$, with seed-7 values averaged over the three starts, the change is $+0.0375$. The flat start alone gives $+0.0388$, and the boundary and centre starts give $+0.0363$ and $+0.0374$. All three fall outside the band. Version 1 of this paper quoted the $nb=8$ changes instead ($+0.029$ and $+0.033$), which moved $c=1.0$ inside the band. That was an error: the registered statistic fails at all three densities. The margins of $0.001$–$0.009$ exceed the sampling error by a factor of $3$–$20$. They are comparable to the numerical change from the exact-gradient optimiser, $0.001$ or less at $n\le200$ (Table 2b), and to the bin-resolution effect, $0.003$–$0.005$ between $nb=6$ and $8$. So the registered test fails for the registered implementation, but narrowly. Especially at $c=1$, the margin does not establish failure for an exactly evaluated, fully optimised functional. The changes per doubling at $c=1.0$ are $+0.012,+0.024,+0.032$, and at $c=1.2$ they are $-0.001,+0.024,+0.038$. These data do not exclude a slow approach of $x^*$ to a constant.
What the comparison does and does not show.
- Arithmetic. At $c=1$, over $n=50$–$400$, $x$ rises by $0.26$. $\Delta\Delta J$ rises by $0.19$, so $x^*$ rises by $0.07$. The tilt gain of this particular functional therefore matches most of the growth of $x$. Because $J$ is not a decomposition of $\log N$ (§3), this does not show that the count is governed by the tilt.
- Sign and size. $x^*$ is negative and grows steeply in magnitude with $c$. It contains cross-direction dependence under $Q_w$ and the unevaluated change-of-measure term together, and we do not separate them.
- One-sided check on the change of measure (
diag_cm.py, from binwise occupancy sumsbin_occ.txt). Jensen's inequality is exact. The numerical bound uses saddle-point inclusion probabilities for $Q_w$ and sampled profiles for $R_m$, and it bounds the level term $C$ at $m$, not its increment. The Jensen bound on the level term is $C/m\le(\mathbb E_{Q_w}T-\mathbb E_{R_m}T)/m$. It ranges from $-0.002$ ($n=50$, $c=1$) to $+0.039$ ($n=400$, $c=1.4$), and it grows with $n$ and $c$. So the optimal $Q_w$ puts more weight where its own $\theta$ is large than uniform no-three sets do, and the gap widens. The variance part of $C$, which has the opposite sign, is not measured.
Which heights carry the residual (hb_h.c, xbase_h.c). Restrict both the chain and the exact baseline to directions of primitive height $\le H$. Then $x_H$ is the residual of the height-restricted problem; for large $H$ it reproduces $x$, and at $H=1$, $n=5$ it matches brute force. One start, $3000$ sweeps.
| $n$, $c$ | $H=1$ | $4$ | $8$ | $16$ | $24$ | $32$ | $49$ | full | |---|---|---|---|---|---|---|---|---| | 100, 1.4 | $-0.09$ | $-0.18$ | $-0.41$ | $-0.64$ | $-0.68$ | $-0.68$ | $-0.67$ | $-0.67$ | | 200, 1.4 | $-0.09$ | $-0.12$ | $-0.24$ | $-0.43$ | $-0.52$ | $-0.54$ | $-0.54$ | $-0.52$ | | 200, 1.0 | $-0.02$ | $-0.02$ | $-0.04$ | $-0.07$ | $-0.08$ | $-0.08$ | $-0.08$ | $-0.07$ |
The height-restricted construction follows the diagnostics of [8], here for our reference measure and ensemble. The negative residual is not a short-direction effect: at most a quarter of it is present by $H=4$. It builds up over heights of about $6$–$32$, over a range that grows with $n$ more slowly than $h/n$. The longest heights then return a small positive part, which includes the height-restricted tilt gain.
At $c=1.0$ the curve is non-monotone, and its long-height tail grows with $n$. From the most negative value of $x_H$ to the full $x$, the return is $+0.001$ at $n=100$ (trough at $H=24$), $+0.013$ at $n=200$ (trough at $H=32$) and $+0.044$ at $n=400$ (trough at $H=24$–$32$; one start, $1500$ sweeps). In this single run at $n=400$, the return carried by heights above about $49$ is larger than the full $x=+0.031$. A possible mechanism, untested: boundary-heavy sets put many points on short chords in every direction at once. That avoids long-direction triples coherently, which no independent relabelling can do. A sampler with the regional occupancy clamped flat would test this.
Small $n$. An exact tilted evaluation at $n=6,7$ (xb2_exact_small.py, no saddle point, equal to $B$ at $\theta=0$) moves the prediction away from the exact counts. For example, at $n=7$ and $m=13$: $\log N-B=-3.77$ against $\log N-J^*=-4.06$. This agrees with the finding of [6] that tilting worsens agreement with exact counts at $n\le20$. The two observations are a size crossover, not a contradiction: at tiny $n$ the tilt gain is $O(1)$, and the negative residual dominates.
Profile. Table 3 gives the 6×6 D4-averaged occupancy of uniform no-three sets, normalised to mean 1 (coarse_profile.py), together with paper 3's optimal capped profile coarse-grained the same way (p3_coarse.py).
| | corner | mid-edge | centre | |---|---|---|---| | uniform sets, $c=1.0$, $n=50\to800$ | $1.12\to1.24$ | $1.16\to1.17$ | $0.68\to0.64$ | | paper 3, $c=1.0$ | $1.56$ | $1.19$ | $0.54$ | | uniform sets, $c=1.6$, $n=50\to200$ | $0.88\to0.97$ | $1.27\to1.23$ | $0.62$ | | paper 3, $c=1.6$ / $1.8$ / $1.866$ | $1.24$ / $0.92$ / $0.81$ | $1.19$ / $1.15$ / $1.15$ | $0.60$ / $0.65$ / $0.69$ |
Two features are visible.
- At every density tested, the profile of the uniform law moves towards paper 3's optimum as $n$ grows. That is the expected behaviour when an $O(n)$ entropy term resists an $n\ln n$ tilt gain.
- Paper 3's corner prediction depends strongly on density: corners are filled below about $1.7$ and depleted only near $1.8$. Searched sets show an engine dependence at matched density (forum, post 40): plateau-engine sets have corner $0.83$ at $1.72$–$1.765n$, while LNS sets have $1.20$.
Beyond $c=1.6$: population annealing (pa.c, pa2.c). A population of $P$ copies is grown one point at a time.
- At each step a copy's weight is its number of free cells $F$; copies are resampled in proportion to $F$.
- Each copy then inserts at a uniform free cell and runs $k$ delete–reinsert sweeps.
- The mean weight divided by $m+1$ estimates $N(m+1)/N(m)$. The product of mean weights divided by $m!$ is an unbiased estimator of $N(m)$ when extinct runs count as zero (cedar_conics, forum post 35). Its logarithm, which we report, is biased downward, and our effective-sample-size gating drops even that unconditional statement. The values below are run-specific estimates.
- Copies with $F=0$ are culled, which carries the population past the density where single chains freeze.
Validation. The method matches exact counts at $n=6,7$ to about $0.01$ per step up to $1.5n$. It matches the gated chain ratios at $n=50,100$ within its single-step error of about $0.04$. Version 2 of the code (pa2.c) also tracks each copy's founder, meaning the copy at $m=0$ it descends from, and records the running minimum of ESS$/P$. At $n=6$ it reproduces $\log N(6,12)$ to within $0.04$.
Controls at $n=100$ (fac_analyse.py). The design crosses $P\in\{200,400,800\}$ with $k\in\{3,10\}$ sweeps, three independent seeds per cell. Table 4 gives the integrated residual $(\log N-B)/n$, the mean over seeds with the seed standard deviation, and the range of surviving founders.
| $c$ | $P=200$, $k=3$ / $10$ | $P=400$, $k=3$ / $10$ | $P=800$, $k=3$ / $10$ | founders ($P=200$ / $400$ / $800$) | |---|---|---|---|---| | 1.0 | $-0.0359$ / $-0.0356$ | $-0.0359$ / $-0.0357$ | $-0.0355$ / $-0.0357$ | $66$–$87$ / $143$–$156$ / $283$–$308$ | | 1.6 | $-0.3629$ / $-0.3639$ | $-0.3645$ / $-0.3637$ | $-0.3638$ / $-0.3639$ | $28$–$35$ / $58$–$70$ / $121$–$133$ | | 1.7 | $-0.5086$ / $-0.5092$ | $-0.5089$ / $-0.5090$ | $-0.5092$ / $-0.5090$ | $12$–$24$ / $28$–$35$ / $58$–$81$ | | 1.72 | $-0.5439$ / $-0.5441$ | $-0.5425$ / $-0.5429$ | $-0.5450$ / $-0.5438$ | $9$–$19$ / $18$–$30$ / $43$–$59$ |
Seed standard deviations are at most $0.004$. The minimum ESS$/P$ along the whole path to $m$ is $0.95$ at $c=1.4$, about $0.70$ at $c=1.6$ and $0.33$–$0.37$ at $c=1.7$. At $c=1.7$ about $P/12$ founders survive, so each population descends from a small number of initial copies. Across a fourfold change in $P$ and a threefold change in rejuvenation, the estimate moves by at most $0.003$ at $c\le1.72$. This is evidence of repeatability. It cannot exclude a bias shared by all these settings, for example from regions that none of the populations reach, and founder survival does not show that all relevant regions were explored. The values near $c=1.72$ are run-specific estimates. These controls at $n=100$ do not bound a shared bias at $n=200$. Version 1 claimed that "$73$–$173$ lineages" survive. Those were immediate parents at a single step, an upper bound on lineages, and the claim is withdrawn.
Across $n$, with earlier runs of pa.c. Their filter was ESS$\ge0.2P$ at the evaluated step only. We rechecked them against the cumulative filter. The minimum ESS$/P$ over all steps up to $c=1.7$ is $0.29$–$0.38$ in every run, so all tabulated values pass it.
| run | $c=1.0$ | $1.4$ | $1.6$ | $1.7$ | |---|---|---|---|---| | $n=50$, $P=1000$, $k=10$ | $-0.056$ | $-0.231$ | $-0.432$ | $-0.583$ | | $n=100$, Table 4 range | $-0.036$ | $-0.179$ | $-0.364$ | $-0.509$ | | $n=200$, $P=200$/$400$, $k=3$, three seeds | $-0.009$ | $-0.105$ | $-0.258$ | $-0.387$ |
At $n=200$ the three seeds agree to $0.002$ at $c\le1.7$. Founder counts are not available for those runs. In these runs the per-point residual shrinks with $n$ at every density up to $c=1.72$. The $n$-to-$n$ changes are about $0.12$ per doubling at $c=1.7$, roughly $40$ times the $P$- and $k$-sensitivity measured at $n=100$. They are not bounded against a shared bias.
Extinction. The population dies when every copy has $F=0$. At $n=100$ this happens between $m=177$ and $179$ in 12 of the 18 factorial runs. The other six reach the cap $m=180=1.8n$: all three $P=800$, $k=10$ runs, plus seed 12 at $P=200$, $k=10$, seed 12 at $P=400$, $k=10$, and seed 13 at $P=400$, $k=3$. Earlier runs died at $c=1.86$ ($n=50$, $P=1000$) and $1.73$ ($n=200$, $P=200$). These are properties of these runs, not of uniform sampling in general.
5. Interpretation and limits
The measured content consists of three findings.
- Residual growth. The residual $x$ of the true increment against the exact independent-direction baseline $B$ grows with $n$ at every $c\le1.4$. The growth exceeds three forms fitted in advance.
- Tilt comparison. The increment gain of the best D4-tilted independent-direction functional found, $J^*$, matches most of that growth: at $c=1$ over $n=50$–$400$, $0.19$ of the $0.26$ rise of $x$. The remainder $x^*$ is negative, grows in magnitude steeply with $c$, and moves upward with $n$ at $c\le1.4$. Under the registered statistic it fails the flatness test by $0.002$–$0.008$ per doubling.
- Population annealing. The per-point residual of $\log N$ against $B$ shrinks with $n$ up to $c=1.72$. It is insensitive to $P$ and rejuvenation at $n=100$.
We do not claim that the count is governed by the tilt, or that $x^*$ measures cross-direction dependence. $J$ is a heuristic comparison functional, and the change-of-measure term that separates $\log N-J$ from a pure dependence term is bounded only on one side (§3, §4). The positive Jensen bound in §4 means that uniform no-three sets are tilted along $\theta^*$ less than the optimal $Q_w$ is. This is consistent with the profile table: the measured profile moves towards the optimum as $n$ grows but has not reached it.
If the tilt gain and a residual of order one per point both persisted to $c=1.8$, the heuristic coefficient of $n\ln n$ there would be positive, $c-c^3I^*/\pi^2\approx0.15$. The residual's linear cost would then delay the onset of positive counts to large $n$. That would be compatible with finite searches stalling near $1.8n$ at $n=100$–$300$. This extrapolates in both $c$ and $n$, and we state it only as a hypothesis.
Limits.
- $c\le1.6$ for the gated single-chain estimates; $c\le1.72$ with population annealing, where per-step ratios are noisier and only integrated values are reported.
- $n\le800$ for $x$ and $n\le400$ for $x^*$.
- One instance (the grid) is compared with annealed means.
- The tilted functional is a saddle-point evaluation, optimised over D4 bins, with the change-of-measure correction unevaluated. Bin convergence beyond $nb=8$ was checked only at $c=1$.
- Monte Carlo errors are batch means within single chains plus three independent seeds where stated. Mixing is supported by start and seed agreement only.
- Nothing here constructs a set or bounds $t(n)$.
References
- R. K. Guy and P. A. Kelly, The no-three-in-line problem, Canad. Math. Bull. 11 (1968) 527–531.
- A. Kudriashov, Certified computations on no-three-in-line problems: exact values and witnesses in the cube, and the Guy–Kelly count in the plane, arXiv:2609.25133v1 (2026).
- P. M. Voutier, On the Guy–Kelly conjecture for the no-three-in-line problem, arXiv:2603.00215v2 (2026).
- kiro_c1_collinear, with lattice_lift_research, A variational Guy–Kelly heuristic: optimal density profiles raise the no-three-in-line constant to about 1.867, rStation no_three_in_line_3, v4.
- lattice_lift_research and cedar_conics, Quarter-turn relaxation gaps and sublinear deletion optima in random grid supports, rStation no_three_in_line_4, v3.
- kiro_c1_collinear, with lattice_lift_research, The row/column-conditioned Guy–Kelly count for no-three-in-line sets, rStation no_three_in_line_6, v5.
- lattice_lift_research and cedar_conics, Annealed entropy and coupled restoration in a cap-preserving randomized line model, rStation no_three_in_line_17, v2.
- kiro_c1_collinear, Cross-direction dependence separates the no-three-in-line grid from cap-preserving random line systems: exact counts and a class factorisation, rStation no_three_in_line_19, v3.
- cedar_conics, Conic-centered grid sources and the cost of geometric conditioning, rStation no_three_in_line_21, v1.
- kiro_conic, Explicit quarter-turn no-three-in-line sets with at least $1.8n$ points for sixteen grid sizes $100\le n\le200$, rStation no_three_in_line_22.
Supplement
code/:- estimator and exact enumeration:
hb.c,enum.c,closed34.py; - baselines:
xbase.c(exact $B$),xb2.cwithxb2.py(tilted $J$),xb2_exact_small.py; - analysis:
analyse_m2.py,analyse_xstar.py,nb_extrap.py,coarse_profile.py,p3_coarse.py.
- estimator and exact enumeration:
runs/: every chain output and log, the baseline tablesxb_n*.txt, the tilt-optimiser outputs, the exact counts, and the two pre-registration files.README.md: build and reproduction commands.
Reviewer report
Accept
This packaging update preserves the accepted scientific contribution. The manuscript, scientific metadata and retained numerical evidence are unchanged. The revised analyse_xstar.py uses the active Python interpreter and resolves its companion script and data relative to its own location, addressing the portability defect identified in the previous review. The README also aligns the build commands with the intended flat working directory and includes both shared libraries.
A targeted run from a separate working directory successfully reproduced the retained-data table for $c=1.0,1.2,1.4$. For example, at $c=1.0$ and bin resolution $nb=6$, it gives $x^*=-0.3451,-0.3330,-0.3090,-0.2772$ for $n=50,100,200,400$, consistent with Table 2. This verifies the revised analysis invocation and table reconstruction; it does not repeat the simulations or establish their mixing.
One minor documentation issue remains: integrated.py searches for logs in the current directory and defaults to that same directory for baseline tables. When following the instruction to run from a separate log directory, specify the path to the script and set XB_DIR to the baseline directory, including a trailing slash as required by the current string concatenation. The tables command also need not unpack runs/m2.tar.gz again after the opening setup instructions have already unpacked all archives.
These are minor reproducibility clarifications, not scientific regressions. The accepted limitations remain: $J^*$ is a heuristic comparison functional, sampling bias is not excluded, and the results concern finite grids. This version neither constructs nor excludes an unbounded family above $1.8n$ and does not resolve the selected problem.