Expérience · Géométrie
Friedman Packing Center : des empilements de cercles exacts et certifiés
Cette expérience porte sur deux pages du Packing Center d’Erich Friedman, qui recensent, pour chaque nombre n de cercles, l’empilement de somme des rayons la plus grande connue, dans un rectangle de périmètre 4 et dans un cercle de rayon 1. Résultat : 16 des 20 entrées de la page « rectangle » pour n de 31 à 50, et l’entrée n = 50 de la page « cercle », sont créditées à l’expérience. Chaque empilement est exact, accompagné d’un certificat en arithmétique rationnelle que n’importe qui revérifie.
1. La question
Pour un nombre n de cercles, quelle somme maximale de rayons peut-on atteindre en les plaçant, sans chevauchement, dans un contenant fixé ? Les rayons sont libres. Les deux contenants de l’expérience sont le disque de rayon 1 et le rectangle de périmètre 4 : les côtés W et H vérifient W + H = 2, et la forme du rectangle est libre elle aussi. Aucune formule ne donne la réponse, hors quelques petits cas.
2. Protocole et page de référence
Erich Friedman tient les pages de son Packing Center : pour chaque n, une image de l’empilement, la valeur de Σ r tronquée à cinq décimales (le signe « + » indique une borne inférieure), le nom de l’auteur et le mois. Chaque résultat est un empilement dont les coordonnées sont contrôlées en arithmétique rationnelle exacte par un programme de quelques lignes (section 5).
3. Résultats
Au relevé du 1er octobre 2026, la page « rectangle » s’arrêtait à n = 30 et la page « cercle » indiquait 6,53814+ pour n = 50. Au relevé du 11 octobre 2026, la page « rectangle » compte 50 entrées et la page « cercle » indique 6,53881+ pour n = 50. Le tableau donne, pour n de 31 à 50, la somme exacte des rayons de l’empilement déposé, la valeur affichée par la page et le crédit qu’elle porte.
| n | Σ r exacte | Rectangle W × H | Valeur sur la page | Crédit sur la page |
|---|---|---|---|---|
| 31 | 2,892208387 | 1,008973 × 0,991027 | 2,89238+ | Aaden Abraham |
| 32 | 2,941468789 | 1,001535 × 0,998465 | 2,94146+ | expérience |
| 33 | 2,991187470 | 1,003366 × 0,996634 | 2,99118+ | expérience |
| 34 | 3,033970818 | 1,009637 × 0,990363 | 3,03397+ | expérience |
| 35 | 3,079136255 | 1,024689 × 0,975311 | 3,07913+ | expérience |
| 36 | 3,126819942 | 1,041793 × 0,958207 | 3,12681+ | expérience |
| 37 | 3,165932504 | 1,014578 × 0,985422 | 3,16593+ | expérience |
| 38 | 3,207236090 | 1,021354 × 0,978646 | 3,20723+ | expérience |
| 39 | 3,251064561 | 1,041296 × 0,958704 | 3,25106+ | expérience |
| 40 | 3,296908567 | 1,026103 × 0,973897 | 3,29690+ | expérience |
| 41 | 3,340443603 | 1,019898 × 0,980102 | 3,34065+ | Aaden Abraham |
| 42 | 3,382967862 | 1,011692 × 0,988308 | 3,38296+ | Aaden Abraham (même valeur à cinq décimales) |
| 43 | 3,425984042 | 1,003384 × 0,996616 | 3,42598+ | expérience |
| 44 | 3,466976278 | 1,000629 × 0,999371 | 3,46697+ | expérience |
| 45 | 3,507379502 | 1,002043 × 0,997957 | 3,50737+ | expérience |
| 46 | 3,543034929 | 1,011283 × 0,988717 | 3,54814+ | Aaden Abraham |
| 47 | 3,583612775 | 1,035807 × 0,964193 | 3,58361+ | expérience |
| 48 | 3,623211651 | 1,043396 × 0,956604 | 3,62321+ | expérience |
| 49 | 3,661583940 | 1,045855 × 0,954145 | 3,66158+ | expérience |
| 50 | 3,695318130 | 1,026179 × 0,973821 | 3,69531+ | expérience |
Pour les 16 entrées créditées à l’expérience, la valeur affichée par la page est la somme exacte tronquée à cinq décimales. Pour n = 50 dans le cercle, l’empilement déposé a pour somme exacte 6,538814832 ; la valeur précédente de la page était 6,53814+.
Les empilements, tracés à partir des coordonnées exactes : le centre et le rayon de chaque cercle. La couleur suit le rayon, du violet (petit) au cyan (grand). Les cercles de la figure animée apparaissent de gauche à droite : c’est un balayage d’affichage. Les données de chaque figure sont téléchargeables en JSON.
Les 20 rectangles de n = 31 à 50 sont tracés à la même échelle. Le rectangle est libre : sa largeur W est un paramètre de l’empilement, avec W + H = 2.
valeur de la page créditée à Aaden Abraham · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
valeur de la page créditée à Aaden Abraham · JSON
valeur de la page créditée à Aaden Abraham · JSON
expérience · JSON
expérience · JSON
expérience · JSON
valeur de la page créditée à Aaden Abraham · JSON
expérience · JSON
expérience · JSON
expérience · JSON
expérience · JSON
4. Théorème et certificat
Le certificat est le contrôle exact des n lignes d’un fichier. Il n’utilise ni racine carrée ni tolérance : les valeurs décimales sont lues comme des nombres rationnels, et toutes les comparaisons se font sur ces rationnels.
Énoncé de validité
Proposition. Soit (xi, yi, ri), i = 1…n, des nombres rationnels avec ri > 0, et un contenant C égal soit au rectangle [0, W] × [0, H] (W rationnel, 0 < W < 2, H = 2 − W), soit au disque fermé de rayon 1 centré en l’origine. Si
- pour le rectangle : ri ≤ xi ≤ W − ri et ri ≤ yi ≤ H − ri ; pour le disque : ri < 1 et xi² + yi² ≤ (1 − ri)² ;
- pour tout i < j : (xi − xj)² + (yi − yj)² ≥ (ri + rj)² ;
alors (a) chaque disque fermé Di de centre (xi, yi) et de rayon ri est contenu dans C ; (b) les intérieurs de deux disques distincts sont disjoints ; (c) la somme des rayons vaut exactement Σ ri, un nombre rationnel calculé sans arrondi.
Démonstration
(a) Rectangle : si (X, Y) est dans Di, alors |X − xi| ≤ ri, donc X ∈ [xi − ri, xi + ri] ⊂ [0, W] ; de même pour Y. Disque : si P est dans Di, alors |P| ≤ |ci| + ri ≤ (1 − ri) + ri = 1, où |ci| ≤ 1 − ri vient de la condition 1 par passage à la racine carrée, 1 − ri étant positif.
(b) Si un point P était dans l’intérieur de Di et de Dj, l’inégalité triangulaire donnerait |ci − cj| < ri + rj, donc |ci − cj|² < (ri + rj)², ce qui contredit la condition 2.
(c) C’est une somme finie de rationnels.
Ce que le certificat garantit
- que les n cercles tiennent dans le contenant, sans en sortir, même d’une quantité infime ;
- qu’aucun couple de cercles ne se chevauche : au plus, deux cercles se touchent ;
- la valeur exacte de la somme des rayons du fichier déposé ;
- que n cercles sont bien présents, ni plus ni moins.
L’énoncé porte sur l’admissibilité de la configuration et sur sa somme. Le classement par rapport aux autres valeurs de la page est celui de la page de Friedman.
Une borne démontrée, et le rapport de chaque entrée
Une borne supérieure donne une règle fixe, indépendante des autres entrées de la page.
Proposition. Pour tout empilement de n cercles deux à deux disjoints : (i) dans un rectangle de périmètre 4, Σ ri ≤ √(n/π) ; (ii) dans le disque de rayon 1, Σ ri ≤ √n.
Preuve. (i) Les disques sont disjoints et contenus dans le rectangle, dont l’aire WH est au plus 1 puisque W + H = 2 (WH ≤ ((W + H)/2)² = 1). Donc Σ π ri² ≤ 1. Par Cauchy–Schwarz sur (r1, …, rn) et (1, …, 1), (Σ ri)² ≤ n · Σ ri² ≤ n/π. (ii) Même raisonnement avec l’aire π du disque : Σ π ri² ≤ π, donc (Σ ri)² ≤ n · Σ ri² ≤ n. ∎
Cette borne est élémentaire : elle tient en quelques lignes (aire et Cauchy–Schwarz) et sert ici de règle de mesure.
Le contrôle de la borne (distinct du certificat de validité) vérifie π·(Σ r)² ≤ n pour le rectangle et (Σ r)² ≤ n pour le disque, en arithmétique rationnelle exacte (π est encadré par deux rationnels à 30 décimales, et c’est sa borne supérieure qui sert au test). Le 11/10/2026, il déclare conformes les 20 empilements du rectangle et celui du cercle. Les 16 entrées du rectangle créditées à l’expérience atteignent de 92,2 % (n = 32) à 92,7 % (n = 49) de la borne ; pour le cercle n = 50, 92,5 %. Ce rapport ne change pas quand une valeur de la page est battue.
5. Revérifier soi-même
Télécharger le fichier JSON d’un empilement, puis exécuter ce court programme Python (bibliothèque standard seule). Il lit les coordonnées en rationnels exacts, teste les conditions 1 et 2 pour toutes les paires (n(n − 1)/2 paires, soit 1 225 pour n = 50) et affiche le résultat. Pour le cercle, seule la condition de contenance change :
import json
from fractions import Fraction as F
d = json.load(open("friedman_rect_50.json"))
W = F(d["W"]); H = 2 - W # rectangle [0, W] x [0, H], périmètre 2(W + H) = 4
P = [tuple(F(v) for v in c) for c in d["circles"]] # (x, y, r) en rationnels exacts
dedans = all(r > 0 and r <= x and x + r <= W and r <= y and y + r <= H for x, y, r in P)
disjoints = all((a[0]-b[0])**2 + (a[1]-b[1])**2 >= (a[2]+b[2])**2
for i, a in enumerate(P) for b in P[i+1:])
print(len(P), dedans and disjoints, float(sum(r for _, _, r in P)))
d = json.load(open("friedman_cercle_50.json"))
P = [tuple(F(v) for v in c) for c in d["circles"]]
dedans = all(0 < r < 1 and x*x + y*y <= (1 - r)**2 for x, y, r in P) # le disque est dans le disque unité
# (la condition de disjonction est la même que ci-dessus)
Résultat attendu pour le rectangle n = 50 : 50 True 3.6953181299845124. Les fichiers JSON contiennent aussi l'empreinte sha256 du fichier déposé.
6. La carte du défi
Les 50 entrées de chacune des deux pages, rangées par lignes de 25 (n = 1 à 25, puis 26 à 50). Cyan : créditée à l'expérience ; or : créditée à un autre contributeur pour n de 31 à 50 sur la page « rectangle » ; violet pâle : les autres entrées. Pages relevées le 11 octobre 2026.
7. Ce que modélise cette question
Ce type de question modélise des problèmes de placement qui se posent dans la découpe et l'emballage (disposer des pièces rondes de tailles différentes dans une plaque ou une boîte), le placement de capteurs ou d'antennes à zone de couverture circulaire et l'étude des matériaux granulaires. Les pages de Friedman servent de référence commune pour comparer des empilements ; ceux présentés ici sont exacts, certifiés et revérifiables par n'importe qui.
Mon projet d'IA au service de ma recherche
Ce défi n'est pas un but en soi : c'est un banc d'essai de ma recherche sur une IA embarquée certifiable. Mon projet d'IA, dont le fonctionnement reste confidentiel, me permet d'atteindre 16 des 20 entrées du rectangle et l'entrée du cercle, chacune revérifiée en arithmétique exacte. Le certificat et l'arbitre en font foi : ce n'est pas mon explication qu'il faut croire, c'est le résultat qui se revérifie. Il s'agit du meilleur résultat connu à la date indiquée, pas d'un optimum démontré.
Tous les résultats, avec leurs sources et leurs dates