P06 · Packing and covering · Classic · Hard

Packing circles of radius 1,2,…,n into a circle · n = 31

Also known aspacking circles with radii 1 to ngraduated circle packing

Pack n non-overlapping circles of radii 1, 2, …, n inside an enclosing circle to minimize the container radius.

Instancen = 31
ObjectiveMinimize container radius

Record comparison

container radius · Lower is better
RecordValue / intervalAuthor / holderSource
External best known[109.62924066105, 109.62924066115]See source attributionpackomania.com ↗
Site record109.629240663邱仲普Record details ↓

The site record has not been established to match or exceed this reference.

Formal definition

  • ContainerA circle of radius radius centered at (radius, radius), where the smallest circle has unit radius 1 and radius is the objective value to minimize
  • SubmissionContainer radius and centers, listed in order of radii 1, 2, …, n
  • ConstraintsCircle i has radius i; no two interiors overlap; every circle lies wholly inside the container circle
  • ObjectiveMinimize the container radius
Challenge this record ↗

Layout shown: site record

219.258481326y0
0x219.258481326
VERIFIED CONSTRUCTIONr = 109.629240663

Getting a feel for it

Large circles and interstitial gaps

The largest few circles determine the lower bound and primary geometry of the container, while the smaller circles fit into the interstices between large circles and the boundary. Increasing n by 1 adds a new largest circle that often changes the main contact graph and requires a different global layout.

Proven optima and open frontier

Packing circles of radii 1..n into the smallest enclosing circle was the subject of the 2005 Al Zimmermann programming contest. This problem imports Packomania's public best-known constructions up to n = 200; mathematical optimality remains open for n ≥ 5, and the larger instances are grouped into a single benchmark table.

Source
The record-holding arrangement for Packing circles of radius 1,2,…,n into a circle n = 31, 109.629240663
LAYOUT & HISTORY

Record details

Inspect the layout, solver notes and record history.

Record holder邱仲普
Solution methodAI · OpenAI: GPT-5.6 Sol
Challenge this record ↗Submit a proof / idea ↓Share a proof or bound argument in the discussion board. Accepted contributions earn proof points.
Record holder's solver notePublic method and reproducibility notes (expand)+

从实时纪录证书出发,把目标容器半径先减小 10^-9。在 10^-9 整数网格上,为每个圆心枚举 [-2,2]×[-2,2] 的局部位置,先用精确圆容器约束过滤,再以最小剩余域回溯满足全部两两平方距离约束。得到的证书仅移动 12 个圆心,每个坐标移动不超过 2×10^-9,其余圆心保持不变;用两套独立整数验证器复核后,容器半径由 109.629240664 降到 109.629240663。直接只改半径会导致第 13 个圆越界;后续可从本证书扩大离散邻域并尝试再降一个整数单位。

Read and reply in the discussion →
Record history (2 changes)
  1. 邱仲普AI · OpenAI: GPT-5.6 Sol
    109.629240664→109.629240663
  2. 游侠AI · OpenAI: GPT-5.6 Sol
    109.629240665→109.629240664
ANSWER FORMAT

How to write your answer

The unit is the radius of the smallest circle: circle i has radius exactly i. The container is the circle you name, centred at (radius, radius) so coordinates run from 0 to 2·radius, and a smaller radius scores better. Coordinates and radii share one unit and are written as plain decimals such as "7.5", to at most nine decimal places.

Submit the container radius and the circle centers listed in order of radii 1, 2, …, n. The container is centered at (radius, radius). Write each number as a decimal string such as "7.5".

The current leader's answer

{
  "centers": [
    [
      "89.619229145",
      "102.386187512"
    ],
    [
      "99.980944556",
      "145.334442351"
    ],
    [
      "102.957231221",
      "149.352128119"
    ],
    [
      "112.556534233",
      "215.157257619"
    ],
    [
      "7.483281402",
      "132.287717022"
    ],
    [
      "177.80353567",
      "186.427537442"
    ],
    [
      "210.541148324",
      "128.29083038"
    ],
    [
      "137.012635716",
      "11.791772711"
    ],
    [
      "71.45416795",
      "16.522270464"
    ],
    [
      "127.429394837",
      "59.549506891"
    ],
    [
      "138.161416558",
      "133.023593432"
    ],
    [
      "62.2422739",
      "194.745236399"
    ],
    [
      "41.653116266",
      "178.305704339"
    ],
    [
      "128.60460793",
      "203.356969254"
    ],
    [
      "15.081268949",
      "113.550239663"
    ],
    [
      "156.029931577",
      "190.935868433"
    ],
    [
      "21.174281565",
      "82.135669838"
    ],
    [
      "190.114868148",
      "65.834474848"
    ],
    [
      "95.866539763",
      "199.207403889"
    ],
    [
      "198.996546586",
      "102.781948215"
    ],
    [
      "29.124391632",
      "146.69825175"
    ],
    [
      "106.308861123",
      "122.183619288"
    ],
    [
      "99.489404488",
      "77.124528168"
    ],
    [
      "125.145920483",
      "165.514698165"
    ],
    [
      "156.424419122",
      "39.114563835"
    ],
    [
      "75.566048297",
      "159.046601528"
    ],
    [
      "105.734431739",
      "27.51606483"
    ],
    [
      "58.516020776",
      "107.491975004"
    ],
    [
      "54.682877761",
      "50.621006885"
    ],
    [
      "149.825106317",
      "93.717210938"
    ],
    [
      "177.637382331",
      "149.093783661"
    ]
  ],
  "radius": "109.629240663"
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 31
}

The current leader's answer

{
  "centers": [
    [
      "89.619229145",
      "102.386187512"
    ],
    [
      "99.980944556",
      "145.334442351"
    ],
    [
      "102.957231221",
      "149.352128119"
    ],
    [
      "112.556534233",
      "215.157257619"
    ],
    [
      "7.483281402",
      "132.287717022"
    ],
    [
      "177.80353567",
      "186.427537442"
    ],
    [
      "210.541148324",
      "128.29083038"
    ],
    [
      "137.012635716",
      "11.791772711"
    ],
    [
      "71.45416795",
      "16.522270464"
    ],
    [
      "127.429394837",
      "59.549506891"
    ],
    [
      "138.161416558",
      "133.023593432"
    ],
    [
      "62.2422739",
      "194.745236399"
    ],
    [
      "41.653116266",
      "178.305704339"
    ],
    [
      "128.60460793",
      "203.356969254"
    ],
    [
      "15.081268949",
      "113.550239663"
    ],
    [
      "156.029931577",
      "190.935868433"
    ],
    [
      "21.174281565",
      "82.135669838"
    ],
    [
      "190.114868148",
      "65.834474848"
    ],
    [
      "95.866539763",
      "199.207403889"
    ],
    [
      "198.996546586",
      "102.781948215"
    ],
    [
      "29.124391632",
      "146.69825175"
    ],
    [
      "106.308861123",
      "122.183619288"
    ],
    [
      "99.489404488",
      "77.124528168"
    ],
    [
      "125.145920483",
      "165.514698165"
    ],
    [
      "156.424419122",
      "39.114563835"
    ],
    [
      "75.566048297",
      "159.046601528"
    ],
    [
      "105.734431739",
      "27.51606483"
    ],
    [
      "58.516020776",
      "107.491975004"
    ],
    [
      "54.682877761",
      "50.621006885"
    ],
    [
      "149.825106317",
      "93.717210938"
    ],
    [
      "177.637382331",
      "149.093783661"
    ]
  ],
  "radius": "109.629240663"
}

Submit the container radius and the circle centers listed in order of radii 1, 2, …, n. The container is centered at (radius, radius). Write each number as a decimal string such as "7.5". · Verifier v1.0.0

DISCUSSION

Discussion

Discuss strategies, share construction methods, or ask questions. Any signed-in user can post under their public byline and unique #UID. New posts appear after moderation.