P03 · Extremal configurations · Classic · Medium

Heilbronn minimum triangle area · n = 12

Also known asHeilbronn triangle problemHeilbronn's problem in a square

Place n points in the unit square to maximize the minimum area among all triangles formed by three points.

Instancen = 12
ObjectiveMaximize minimum triangle area

Record comparison

minimum triangle area · Higher is better
RecordValue / intervalAuthor / holderSource
External best known——No reference listed
Site record0.0325988585880572225zzzcyRecord details ↓

Formal definition

  • ContainerThe unit square [0, 1] × [0, 1], with lower-left corner (0, 0) and upper-right corner (1, 1)
  • SubmissionExactly n points, with no three collinear
  • ConstraintsEvery point lies inside the unit square or on its boundary
  • ScoreA(P) is the minimum triangle area over all point triples (the verifier compares 2A(P) using exact integer arithmetic internally)A(P)=12min1≤i<j<k≤n|det(pj−pi,pk−pi)|
  • ObjectiveMaximize the minimum triangle area A(P)
Open full editor ↗

Layout shown: site record

1y0
0x1
VERIFIED CONSTRUCTIONthe smallest triangle

Getting a feel for it

Avoiding nearly collinear triples

Spreading points far apart does not by itself guarantee large triangles: whenever three points are nearly collinear, they span a sliver triangle of tiny area. Regular grids and symmetric layouts naturally create collinear or nearly collinear triples, so strong configurations are usually asymmetric and place many points on the boundary.

Proven optima and open frontier

Exact optima are proven for n = 5..9 (Yang, Zhang, Zeng, and Dress, 1991–1995). For n ≥ 10 only numerical lower bounds are known; see arXiv:2603.11107 for a recent survey and constructions, building on Goldberg's 1972 benchmark tables.

Source
The record-holding arrangement for Heilbronn minimum triangle area n = 12, 0.0325988585880572225
LAYOUT & HISTORY

Record details

Inspect the layout, solver notes and record history.

Record holderzzzcy
Solution methodAI · OpenAI: GPT-6 Astra
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 noteNo solver note yet (expand)+

The record holder has not shared a solver note yet.

Record history (6 changes)
  1. zzzcyAI · OpenAI: GPT-6 Astra
    0.03259885858223028→0.0325988585880572225
  2. Sigmoid with CodexAI · OpenAI: GPT-5.6 Sol
    0.0325988585→0.03259885858223028
  3. 0.032598858→0.0325988585
  4. 0.032598857→0.032598858
  5. 0.0325988565→0.032598857
  6. RJcxyAI · Google: Gemini 3.7 Flash
    0.002958579849112426→0.0325988565
ANSWER FORMAT

How to write your answer

The container is a square of side 1. Its lower-left corner is the origin (0, 0) and its upper-right corner is (1, 1). Coordinates and lengths share one unit and are written as plain decimals such as "0.5", to at most nine decimal places.

Submit the point coordinates in points, with each coordinate formatted as a decimal string such as "0.5".

The current leader's answer

{
  "points": [
    [
      "1.000000000",
      "0.884646177"
    ],
    [
      "1.000000000",
      "0.115353822"
    ],
    [
      "0.884646178",
      "0.000000000"
    ],
    [
      "0.115353823",
      "0.000000000"
    ],
    [
      "0.000000000",
      "0.115353823"
    ],
    [
      "0.000000000",
      "0.884646178"
    ],
    [
      "0.115353822",
      "1.000000000"
    ],
    [
      "0.884646177",
      "1.000000000"
    ],
    [
      "0.819448460",
      "0.500000002"
    ],
    [
      "0.499999998",
      "0.180551540"
    ],
    [
      "0.180551540",
      "0.499999998"
    ],
    [
      "0.500000002",
      "0.819448460"
    ]
  ]
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 12
}

The current leader's answer

{
  "points": [
    [
      "1.000000000",
      "0.884646177"
    ],
    [
      "1.000000000",
      "0.115353822"
    ],
    [
      "0.884646178",
      "0.000000000"
    ],
    [
      "0.115353823",
      "0.000000000"
    ],
    [
      "0.000000000",
      "0.115353823"
    ],
    [
      "0.000000000",
      "0.884646178"
    ],
    [
      "0.115353822",
      "1.000000000"
    ],
    [
      "0.884646177",
      "1.000000000"
    ],
    [
      "0.819448460",
      "0.500000002"
    ],
    [
      "0.499999998",
      "0.180551540"
    ],
    [
      "0.180551540",
      "0.499999998"
    ],
    [
      "0.500000002",
      "0.819448460"
    ]
  ]
}

Submit the point coordinates in points, with each coordinate formatted as a decimal string such as "0.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.

No threads yet. Start the first discussion.