Skip to content

172, 204, 260, 293: registration request #845

Closed

Description

@evand

Credit name. Evan Daniel (GitHub @evand).

Claims. Four new upper bounds. Each is the certificate's exact rational side, rounded up at 12 places. Global optimality is not claimed.

n new upper bound best public bound before it improvement that bound's source
172 13.617935698382 13.618988956900 1.05·10⁻³ register (Francisco Couzo)
204 14.807627471882 14.808642830514 1.02·10⁻³ register (Francisco Couzo; #719, Mishapolk, same value)
260 16.633982502122 16.637029558871 3.05·10⁻³ #844 (Francisco Couzo, open); register 16.645753250520
293 17.633982502123 17.634146341464 1.64·10⁻⁴ register (David Ellsworth)

Comparison = the lowest of the register (main @3978a7f6), open and closed issues through #844, David Ellsworth's catalogue, public Kaggle notebook outputs we have imported, and the monotone envelope; checked 2026-10-28.

For information (side-only claims). Kaggle's per-puzzle leaderboard (staff notebook output, newest row 2026-10-28 02:29 UTC; no coordinates) lists lower sides at three of these counts, all for the team Cats and boxes: 172 at 13.614689853312 (2026-10-27 00:05 UTC), 204 at 14.803489183116 (2026-10-27 21:40 UTC), 293 at 17.623065212098 (2026-10-27 00:05 UTC). We can't check them. As far as we know, ours are the best publicly known packings at those three counts. At 260 the lowest side listed is 16.635570520546 (Cats and boxes, 2026-10-27 09:33 UTC), above ours.

Certificates. In https://github.com/evand/square-packing at commit d2d5dd96:

file what SHA-256
s172_1028.cert exact KKT point, rational certificate (S' = 2723587139676283080823463207799/200000000000000000000000000000) 1e16ad2789538610a42ebec7f735d932fdbe8125a7c991801e644b6f072352b9
s172_1028_regularized.cert regularized view, same side 0ab41bff6847fc3929e91253b9a2db021db0f9406915d32b6eec40d523d2eb1a
s204_1028.cert dilation certificate of s204_1028.input.txt (delta 1e-12) 2b371e81d568ad5c4490257dcfdb87cd1e238232bb60bd1ece4844340af0a2c3
s260_1028.cert dilation certificate of s260_1028.input.txt d6d6f45f600f6552416ea3708d8ee04416cfe88820ee4c3c422d8e131d7cdf87
s293_1028.cert dilation certificate of s293_1028.input.txt 236bc05f057a28df402c09453f4ccce35d63b518f4f0305419889612f07c42bc

The f64 inputs (s<n>_1028.input.txt) and the run summaries (s<n>_1028.json) are next to them.

Credit and relationship.

  • 172: a new packing (a different local minimum from the register's: exact sides differ by 1.05·10⁻³, contact graphs differ), found by our search. Its lineage starts at the s(199) record (Nate Chaoweeraprasit (itsnaka), improved by Siddharth Gupta): please credit that packing as the start.
  • 204: a new packing found by our search; its lineage starts at Daniil Ostashev's s(176) packing (s(176) ≤ 13.795872318437, s(211) ≤ 14.993694186584, s(241) ≤ 15.987134249051, s(304) ≤ 17.929427758076: registration request #575), used as a seed at n = 204. Please credit it as the start. It is not a refinement of the register's packing (its certified side is 1.0·10⁻³ below their exact side).
  • 260: a new packing found by our search. Its binding block came from a search started from Kirill T (kirilltym)'s s(260) in his public Kaggle notebook "Square Packing Lab | CPU/CUDA/MPS" (side 16.638543986, 2026-10-26): please credit that packing as the start. It is not a refinement of 232, 260, 307: registration request #844's packing (sides differ by 3.05·10⁻³; 197 squares move more than 0.1).
  • 293: our 260 packing plus one L-shaped strip (a row and a column, Friedman's L step: 260 + 2·16 + 1 = 293, side + 1). Same credit as 260.
Checking

search/exact/verify_cert.py (separating axes) and search/exact/verify_cert2.py (polygon intersection) both report VALID on all five certificate files; exact rational arithmetic, standard library only, e.g. python3 search/exact/verify_cert.py search/packer/candidates/s260_1028.cert. The two checkers share an author (us) and the certificate format; the geometry tests differ.

Local optimality

Numerical evidence at 80 digits, not interval proofs.

  • 172: exact side S* = 13.617935698381415403981…; a KKT point; a local minimum of S, strict modulo 69 exact flat motions; no corner–corner MILP descent; 41 corner–corner contacts, 25 rattlers.
  • 204, 260, 293: not established. Our exact solver did not converge on these, so the certificates dilate the f64 packings (by 1.5·10⁻¹¹ to 1.8·10⁻¹¹). The 204 packing was first exact-descended (corner–corner MILP kick and re-solve, 14.807630214 → 14.807627472).
Relationship to earlier packings: the numbers

Refinement here means the same local minimum only; otherwise a new packing found from it. Matched moves are over the best of the 8 box symmetries (largest move; count of squares moving more than 0.1 / more than 0.01).

n compared with side gap matched moves (max; > 0.1; > 0.01) verdict
172 register (Couzo), exact KKT both 1.053·10⁻³ 0.701; 23; 24 (load-bearing, regularized views) different local minimum: contact pairs 213 shared, 89 only ours, 109 only theirs; load-bearing tilts 44.6064° ×30 (ours) vs 44.7301° ×34, 44.9703° ×2 (theirs)
204 register (Couzo) 1.015·10⁻³ 0.912; 71; 114 new packing (our upper bound is below their exact side)
260 #844 (Couzo) 3.047·10⁻³ 1.096; 197; 230 new packing
260 kirilltym's Kaggle 260 (start) 4.56·10⁻³ 1.064; 190; 202 new packing
293 register (Ellsworth, 723/41) 1.64·10⁻⁴ 1.048; 194; 221 new packing
How it was found

All four are hunts: population searches over our packing store, where the credited start was one packing among many and the records turned up several generations later.

260 (and 293). Every packing involved has a tilted island of about 100 squares inside a grid frame, and the island sets the side (k + a fixed fraction). The public island family (kirilltym's 260, and later the same island at other n in public Kaggle notebooks) has the fraction .63853.

  1. 2026-10-26: a fault-line composition at n = 405 used kirilltym's 260 as a donor (side 20.638543986: the same island).
  2. 2026-10-27: 15 generations of refill (remove a line or disc of squares, re-place them, relax) at n = 405 took it to 20.633982503. The gain is in the island: its tilt went from 24.08° to 24.51°, with a ring of about 15 slightly tilted squares between it and the grid.
  3. 2026-10-28: a composition run put that island into a 260 frame (16.633982502), and into 293 and several larger n. The 293 is the 260 plus an L-shaped strip. This run's log was not kept; steps 1–2 are in our store's move log.
  4. Polish and certify.

172. An explorer search at n = 199 (2026-10-17) started from the s(199) record, and after a fingerprint-diverse sweep (2026-10-20; 24 starts, all from our store except two of David Ellsworth's catalogue packings) gave an s(199) at 14.617935698, not a record. Removing one L-shaped strip gives 172 at side − 1. Polish and certify (a KKT point).

204. An explorer goal at n = 204 (2026-10-24) seeded with Daniil Ostashev's s(176) (#575); nine generations in that goal's runs to 14.807642, then three refill generations (2026-10-27) to 14.807630, then polish and certify (exact descent to 14.807627472, then a dilation certificate).

Activity

  1. added
    intakeTracking intake (saving, validation, tabulation, credits) of new results
    on Oct 31, 2026
  2. added 2 commits that reference this issue on Oct 31, 2026
  3. jlevy commented on Oct 31, 2026

    @jlevy
    Owner

    @evand, thank you; this is the report-order evaluation of every open report at the counts #845 claims.

    At each count, a report is recorded when its side is decidably below every side reported before it (and below the record on main); a tie stays with the earlier report. Sides are rounded up at 12 places.

    n Side Verdict Best now
    172 13.617935698382 recorded: a new packing, continuing the s(199) record of Nate Chaoweeraprasit (itsnaka), improved by Siddharth Gupta, less one L-shaped strip; at least 1.05e-03 below a register entry pending adoption ([Kim exact forms 2026-10-25]) this report 13.617935698382
    204 14.807627471882 recorded: a new packing, continuing Daniil Ostashev's s(176) packing (#575), used as a seed at 204; 1.02e-03 below the record on main (Francisco Couzo, improved by Mishapolk) this report 14.807627471882
    260 16.633982502122 recorded: a new packing, continuing Kirill Tymchishin's (kirilltym) s(260) from his public Kaggle notebook 'Square Packing Lab CPU/CUDA/MPS'; 3.05e-03 below #844 (Francisco Couzo, after Alex Chilton and ntumlnoob)
    293 17.633982502123 recorded: a new packing, continuing the source's own 260 packing of this report, plus an L-shaped strip; 1.64e-04 below the record on main (David Ellsworth, improved by David W. Cantrell) this report 17.633982502123

    All four are below everything reported before them, so each is recorded, a new packing as you say. At 260 the reports before yours are Francisco Couzo's a5a5d76 and #844.

    The registrations are in the records pull request #852, and a follow-up with the result ids and rungs will come once it is on main.


    Generated by Claude Code

  4. jlevy commented on Oct 31, 2026

    @jlevy
    Owner

    @evand, thank you for #845. All four certificates are imported, reviewed and adopted. The report-order verdict is in the comment above; this is where the record on main stands.

    • Confirmed. Each certificate proves the bound it states, and each print rounds up: s(172) ≤ 13.617935698382, s(204) ≤ 14.807627471882, s(260) ≤ 16.633982502122 and s(293) ≤ 17.633982502123. T-257 is confirmed at V3/C3. Two kinds of check re-verified it. This repository's two maintained exact routes share components with your generator, including the evand-cert reader: sqpack.verify and devtools.check_rational_witness_independent, through devtools.upper_bound_reports. The stage 4 review (review-2026-10-31-daniel-845-172-204-260-293.md) is an independent implementation: exact_check.py and controls.py. That clean-room checker uses separating axes over every pair and exact clipped areas, with ten sharp controls at each count. Your own code was not re-run. The review's checker is a Claude agent's, as your commit's co-author is.
    • Houses. Each certificate is now the case's house best packing, and each is drawn by grid-slack's regularized view at the certificate's side. At 293 the case's conjectured optimum, 723/41, is withdrawn: it is 1.64e-4 above your side. On the frontier T-257 is current.
    • Lineage, measured.
      • 293: exactly your 260 up to a mirror, plus one L-shaped strip of 33 squares.
      • 172: fits the 199 record less a 27-square L, with 14 squares beyond 0.1, so it belongs to that record's L-cut family.
      • 204: fits Ostashev's 176 loosely, which is consistent with a seed nine generations back.
      • 260: its start is not retained, so its lineage rests on your word.
    • Wording. For 172, the record says the certificate dilates your 80-digit KKT point by 1 + 10⁻²⁰, not that it is the point. It carries local minimality as your numerical report.

    Evidence entries. E-evand-845-certificate-report, the four certificates as reported, is reviewed. E-evand-845-exact-feasibility, the maintained routes' replay, and E-evand-845-review-exact-feasibility, the review's checker, are confirmed.

    On main and the site.

    The review left four questions. An answer to any of them is welcome, but none holds this issue open:

    1. Is the kirilltym of your 260 the Kirill Tymchishin the record credits at 268 and 304? The case record and the register's notes now name him Kirill Tymchishin, while the credit line keeps the handle until you confirm.
    2. Was the 199 at 14.617935698 descended from the 199 record through the explorer runs, or from one of the sweep's other starts?
    3. Do you expect the exact solver to converge at 204? s204_1028.exact.txt sits 2.56e-11 below the certificate.
    4. Do you plan an enclosure of the 172 KKT point, or an argument along its 69 flat motions?

    Nothing you asked for is queued, so this issue is closed with this comment.


    Generated by Claude Code

  5. added 4 commits that reference this issue on Oct 31, 2026
  6. jlevy commented on Nov 11, 2026

    @jlevy
    Owner

    @evand, a short follow-up to our closing reply of 31 October, which gave T-257 as current.

    Correction. T-257, your #845 certificates, s(172) ≤ 13.617935698382 (with s(204) ≤ 14.807627471882, s(260) ≤ 16.633982502122 and s(293) ≤ 17.633982502123), still stands as a verified bound, V3/C3, confirmed. It is no longer the best known at any count: on the frontier it now reads superseded.

    What superseded it. At 172, its last house, Doğa Özden's T-282, s(172) ≤ 13.614689853287, reported on #935, is a further arrangement of your packing, 3.25e-3 below T-257. The optimal assignment under the identity moves 15 squares beyond a tenth, in a local change within a block of squares turned about 45 degrees. It was confirmed at V3/C3 when #937 merged, and the case at 172 adopted it as its house on 9 November. T-257 is kept at 172 as history. The case still names you as the packing's finder, with Özden as its improver, and the record credits your ALM+SLP quench as the local optimizer of his search. The drawing at 172 is now your regularizer's view of T-282, at its side. At 204, 260 and 293 T-257 had already stopped being the house: your #914 packings, T-268, T-269 and T-271, hold those counts. #935 has its own reply.

    On main and the site.

    The issue stays closed; this reply only brings what the record says up to date.


    Generated by Claude Code

  7. added a commit that references this issue on Nov 11, 2026
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

    intakeTracking intake (saving, validation, tabulation, credits) of new results

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions