DeepAI
Log In Sign Up

Compact packings of the plane with three sizes of discs

08/31/2018
by   Thomas Fernique, et al.
0

Discs form a compact packing of the plane if they are interior disjoint and the graph which connects the center of mutually tangent discs is triangulated. There is only one compact packing by discs all of the same size, called hexagonal compact packing. It has been previously proven that there are exactly 9 values of r such that there exists a compact packing with discs of radius 1 and r. This paper shows that there are exactly 164 pairs (r,s) such that there exists a compact packing with discs of radius 1, r and s. In all these 164 cases, there exists a periodic packing.

READ FULL TEXT VIEW PDF

page 20

page 22

page 23

page 24

page 26

page 27

page 28

page 29

08/31/2018

Empilements compacts avec trois tailles de disque

Discs form a compact packing of the plane if they are interior disjoint ...
02/17/2020

Density of Binary Compact Disc Packings

A disc packing in the plane is compact if its contact graph is a triangu...
12/04/2019

Compact packings of space with three sizes of spheres

A sphere packing of the three-dimensional Euclidean space is compact if ...
06/06/2020

A generalized expression for filling congruent circles in a circle

The paper reports a generalized expression for filling the congruent cir...
11/05/2022

Density of triangulated ternary disc packings

We consider ternary disc packings of the plane, i.e. the packings using ...
12/09/2020

COMPACT: Concurrent or Ordered Matrix-based Packing Arrangement Computation Technique

Packing optimization is a prevalent problem that necessitates robust and...
06/23/2019

Reflecting Algebraically Compact Functors

A compact T-algebra is an initial T-algebra whose inverse is a final T-c...

1 Introduction

Un empilement de disques est un ensemble de disques d’intérieurs disjoints. Il est dit compact si le graphe qui relie les centres des disques tangents est triangulé, c’est-à-dire que les interstices entre les disques sont tous des triangles curvilignes (notion introduite par László Fejes Tóth dans [2]).

Il n’y a qu’un seul empilement compact avec des disques tous identiques, celui où les disques sont centrés sur les sommets du réseau triangulaire (empilement hexagonal compact

). Les empilements compacts avec deux tailles de disque ont été classifiés dans

[5]. Il y a neuf ratios de rayons possibles. Dans tous les cas, l’empilement compact le plus dense est périodique (même si des empilements apériodiques peuvent être possibles). De plus, dans des cas, il a également été montré que l’empilement le plus dense avec ces deux tailles de disque est un empilement compact ([3, 4, 6]).

On s’intéresse ici aux empilements compacts avec des disques de rayon , où chaque type de disque apparaît. Sauf précision contraire, un “empilement” désignera un tel empilement dans tout ce qui suit. Ce problème a été examiné dans [7], où il est montré qu’il y a au plus couples possibles. Plusieurs exemples d’empilements sont donnés, mais l’auteur suggère qu’une caractérisation complète est hors de portée des moyens de calcul informatiques actuels. On montre ici :

Théorème 1

Il y a exactement couples permettant un empilement.

Les empilements possibles ne sont pas tous classifiés : on se contente d’en exhiber un, périodique, pour chaque valeur. La question de déterminer quels sont les empilements les plus denses reste ouverte. En particulier, en existe-t-il toujours un périodique ? Reste également ouverte la question de savoir si, quand ils existent, ces empilements maximisent la densité parmi tous les empilements, i.e., sans hypothèse de compacité.

2 Notations

Le grand disque est supposé de rayon . On note et les rayons du moyen et du petit disque, avec . On appelle couronne d’un disque dans un empilement compact saturé l’ensemble des disques auquel il est tangent. Elle est dite petite, moyenne ou grande selon que le disque entouré est petit, moyen ou grand. Un codage d’une couronne est un mot formé des rayons des disques qui la constituent, ordonnés de sorte à ce que l’un soit tangent au suivant et le dernier au premier. Toute permutation circulaire ou renversement de ce mot correspond à la même couronne : on choisira généralement l’écriture minimale pour l’ordre lexicographique. Étant donnés des disques de rayons , et deux à deux tangents, on note l’angle non-orienté entre les segments reliant le centre du disque de rayon aux deux autres centres. La figure 1 illustre cela.

Figure 1: La petite couronne et l’angle .

3 Petites couronnes

Une petite couronne est formée d’au plus disques, et dans ce cas ce sont nécessairement tous des petits disques (c’est l’empilement hexagonal habituel). Si elle comporte un disque moyen ou un grand, elle est donc formée d’au plus disques. En particulier, il y a un nombre fini de petites couronnes différentes, quelque soient les valeurs de et . On va ici toutes les expliciter.

Soit la fonction définie pour et par

Les six angles impliqués sont ceux qui, dans un triangle rejoignant les centres de trois disques deux à deux tangents, peuvent apparaître au centre d’un petit disque. Le vecteur sera appelé vecteur d’angles. Une petit couronne correspond alors une solution de l’équation

(1)

Chacun des six angles impliqués, vu comme une fonction de et , est croissant en et décroissant en . La fonction est donc majorée par sa limite en et minorée par sa plus petite limite sur la diagonale . On calcule

Comme tous ces angles, excepté , sont de plus strictement décroissants en , n’atteint pas son maximum sur l’ouvert et les bornes sont strictes, sauf si , ce qui correspond à une petite couronne formée de petits disques. Outre ce cas, l’équation a donc une solution si et seulement si

(2)

Cette condition donne valeurs de possibles. Pour qu’une valeur de corresponde réellement à une couronne, il faut aussi qu’il existe, dans le graphe représenté Fig. 2, un cycle tel que compte les passages de ce cycle dans chaque type d’arête. Une boucle de ce graphe peut ne pas être empruntée par le cycle, mais si elle l’est il faut pouvoir y accéder, à moins que le cycle n’emprunte qu’elle. Ceci se traduit par les trois conditions

(3)
(4)
(5)

Outre ces boucles, le cycle fait tours entre les trois sommets, plus éventuellement quelques aller-retours qui empruntent un nombre pair de fois chaque arête par laquelle ils passent. Ceci se traduit par les conditions

(6)
Figure 2: Les cycles de ce graphe codent les couronnes associées à .

Toutes les conditions précédentes réduisent à le nombre de vecteurs d’angles possibles. La table 1 donne un codage des couronnes correspondantes444Un vecteur d’angles pourrait correspondre à des couronnes différentes. Par exemple, correspond à 1rsr1s, 1r1srs, 1rs1sr et 1rs1rs. Mais ce n’est jamais le cas ici..

rrrrr rrrrs rrrss rrsrs rrrr rrsss rsrss rrrs rrr rrss
11111 1111s 111ss 11s1s 1111 11sss 1s1ss 111s 111 11ss
1111r 111rs 11rss 11srs 111r 1rsss 1srss 11rs 11r 1rss
111rr 11r1s 1r1ss 1rs1s 11rr 1r1s 1rr
11r1r 11rrs 1rrss 1rsrs 1r1r 1rrs
11rrr 1r1rs r1rss rrs1s 1rrr r1rs
1r1rr 1rr1s
1rrrr 1rrrs
r11rs
r1rrs
Table 1: Les petites couronnes possibles, outre . Les couronnes de la première ligne n’ont pas de grand disque, celles de la deuxième n’ont pas de moyen disque. Les codages d’une même colonne ont tous la même image par l’application qui remplace chaque 1 par un r (utilisé dans le lemme 1).

4 Polynôme associé à une petite couronne

En prenant le cosinus de chaque membre de l’équation 1 puis en développant grâce aux formules d’addition et aux polynômes de Tchebychev, on obtient une équation polynomiale à coefficients entiers en les sinus et cosinus des six angles impliquées dans . La loi des cosinus permet d’exprimer les cosinus des angles , , , , et en fonction de et (dans cet ordre) :

Le carré des sinus s’en déduit (dans le même ordre) :

On exprime les sinus eux-mêmes avec des variables auxiliaires :

où les carrés des valent respectivement

Ceci donne un système d’équations polynomiales à coefficients entiers en les variables , et . Quitte à remplacer par son expression en et , on peut toujours supposer que n’apparaît jamais à une puissance . On élimine ensuite successivement les qui restent en remarquant :

On obtient un polynôme entier bivarié dont les valeurs de et compatibles avec la petite couronne considérée sont racines. Il peut y avoir d’autres racines (l’élimination des n’est pas bijective) qu’il faudra écarter in fine en vérifiant l’équation 1. On peut aussi simplifier le polynôme en supprimant les multiplicités des facteurs, ainsi que les facteurs qui n’ont pas de racine .

11111
1111s
111ss
11s1s
1111
11sss
1s1ss
111s
111
11ss
Table 2: Couronne, polynôme minimal et valeur approchée de .

En procédant ainsi, on obtient un polynôme univarié en pour les petites couronnes qui n’ont pas de moyen disque (Tab. 2). Chacune des petites couronnes sans grand disque donne le même polynôme que la couronne où a été remplacé par , avec la variable au lieu de . Les autres petites couronnes donnent un polynôme explicite mais parfois assez complexe (Tab. 3). Par exemple, 11rs donne :

1r1r 11rr 1rrsr 1rsss 111rr
1r1s 1rss 1111r 1srrs 11rrr
1rsr 11r1s 11r1r 1srss 111rs
111r 11rs 1rs1s 1r1rr 1rrrs
11r 11rsr 11srs 1rrrr 11rss
1rr 1rr1s 1r1ss 1rsrs 1rrss
1rrr 1rrs 1rssr 1r1rs 11rrs
Table 3: Degré du polynôme en et imposé par chaque petite couronne.

5 Moyennes couronnes et polynômes associés

Un moyen disque peut être entouré d’un nombre arbitrairement grand de petits disques si ceux-ci sont suffisamment petits. Il y a donc un nombre infini de moyennes couronnes. Mais les empilements considérés contiennent toujours un petit disque, donc une petite couronne qui, elle, donne une contrainte sur la taille des disques :

Lemme 1

Le ratio est uniformément minoré dans les empilements.

Preuve. Considérons un empilement. Par définition, il contient des disques de toutes les tailles. Il contient donc une petite couronne différente de ssssss. Remplacer tous les 1 par des r (sans changer les autres lettres) dans ce codage s’avère donner le codage d’une autre petite couronne (voir Table 1). De plus, dans cette nouvelle petite couronne, le ratio est plus petit que dans la couronne originale. En effet, les gros disques ayant été “dégonflés” en moyens, le périmètre de la couronne a diminué, donc la taille du disque qu’elle entoure aussi. Or il n’y a que ratios possibles pour une couronne de disques de tailles autour d’un disque de taille (Table 2).

Soit la minoration de donné par une petite couronne de l’empilement considéré. On a alors un nombre fini de moyennes couronnes possibles. Plus précisément, soit la fonction définie pour et par

Les angles impliqués sont tous strictement décroissants en , sauf (qui n’apparaît seul que dans la couronne rrrrrr qu’on ignore ici) et tous croissants en . La fonction est donc strictement majorée par sa plus grande limite sur la diagonale et strictement minorée par sa plus petite limite sur la droite . D’un côté on a

d’où

De l’autre côté, la loi des cosinus permet de montrer

Comme , on en déduit

Une moyenne couronne correspond à une solution de l’équation . L’existence d’une moyenne couronne impose donc

(7)

Comme une moyenne couronne a au plus disques moyens ou grands, on a aussi

(8)

Combinée avec des conditions de cycle similaires au cas des petites couronnes, on en déduit une majoration du nombre de moyennes couronnes possibles selon la minoration de donnée par une petite couronne de l’empilement (Tab. 4).

Table 4: Majoration du nombre de moyennes couronnes en fonction de .

Pour associer ensuite un polynôme en et à chaque moyenne couronne, on procède comme pour les petites couronnes. On développe le cosinus de chaque membre de l’équation . La loi des cosinus permet d’exprimer les cosinus des angles , , , , et en fonction de et (dans cet ordre) :

Le carré des sinus s’en déduit (dans le même ordre) :

On exprime les sinus eux-mêmes avec des variables auxiliaires :

ont déjà été définies et et ont respectivement pour carré

L’élimination des donne un polynôme entier bivarié associé à la moyenne couronne considérée. Comme il y a en généralement plus de disques dans une moyenne couronne que dans une petite (jusqu’à petits disques), ces polynômes sont plus compliqués que ceux associés aux petites couronnes555Le calcul de tous les polynômes prend 2h 21min sur notre ordinateur et crée un fichier de Mo. Il montre que le degré moyen est , avec un maximum à pour ..

6 Rayons et couronnes

Pour déterminer les rayons possibles, il suffit en théorie de considérer chaque couple formée d’une petite couronne et d’une moyenne couronne, de calculer les deux polynômes associés et de trouver les racines de ce système d’équations polynomiales vérifiant . La résolution d’un tel système est cependant en pratique souvent délicate.

Par exemple, la petite couronne 111rr et la moyenne couronne 111rrs donnent deux polynômes de degré respectifs et (avec des coefficients valant jusqu’à pour le second), et leur résolution exacte avec le logiciel SageMath [1] nécessite une heure et minutes sur notre ordinateur de bureau.

La résolution d’un système polynomial par un logiciel de calcul formel utilise généralement les bases de Gröbner pour calculer la variété de l’idéal engendré par les polynômes (quand elle est de dimension ). Mais le calcul de ces bases peut être très coûteux, même pour seulement deux équations quand celles-ci sont de degré élevé. Les ont d’ailleurs été éliminés des équations (Parties 4 et 5) sans recourir aux bases de Gröbner mais par une méthode plus “manuelle” (multiplier par ) qui utilise le fait que s’exprime facilement en fonction de et (ce que le logiciel de calcul formel, destiné à traiter le cas général, n’utilise sans doute que partiellement). On s’inspire ici de [8] (page 201).

Rappelons que le résultant de deux polynômes univariés est un scalaire qui s’annule si et seulement si les deux polynômes ont une racine commune. Si et sont deux polynômes de , on peut les voir comme des polynômes en à coefficients dans : leur résultant est alors un polynôme qui s’annule en si et seulement si et ont une racine commune. Symétriquement, échanger et donne un polynôme qui s’annule en si et seulement si et ont une racine commune. Les couples annulant et sont alors dans le produit cartésien des racines de ces résultants.

Le calcul des résultants est rapide : ce sont les déterminants des matrices de Sylvester des polynômes. Le calcul exact de leurs racines aussi666Pour un logiciel de calcul formel, calculer une racine d’un polynôme revient juste à déterminer un intervalle qui ne contient que cette racine, à partir de quoi il peut fournir à l’utilisateur une approximation à la précision voulue de cette racine (via, par exemple, la méthode de Newton).. Le produit cartésien nous donne alors de nombreux couples candidats parmi lesquels il faut trouver les solutions des équations d’angles associées aux couronnes.

On filtre d’abord ces candidats en trois passes en utilisant l’arithmétique d’intervalles. Chaque passe ne garde que les couples tels que :

  1. , et , où est l’intervalle représentant ;

  2. est dans les intervalles représentant et , où et correspondent à la petite et à la moyenne couronnes ayant donné ;

  3. il existe tel que soit dans l’intervalle représentant , où

En d’autres termes, la première passe élimine des couples hors du domaine, la seconde des couples qui n’admettent pas de petite ou moyenne couronne, la dernière des couples qui n’admettent pas de grande couronne777Les valeurs de et permettent de borner la norme des vecteurs à rechercher. Plus la précision sur les intervalles est grande et plus le filtrage est efficace, mais plus il est lent. Une quatrième et dernière passe vérifie alors que les candidats restants sont réellement des racines des équations de couronnes. On procède pour chaque couronne comme pour calculer son polynôme associé (Partie 4), avec deux ajouts :

  1. Lors de chaque multiplication par , on vérifie que ce terme n’est pas nul. On essaie d’abord en arithmétique d’intervalle (plus rapide), et seulement à défaut888Cas qui ne s’est présenté que pour le couple petite/moyenne couronnes 1r1r/11r1s. avec les valeurs exactes de et .

  2. Lorsque les ont tous été éliminés, on vérifie l’équation obtenue avec les valeurs exactes de et .

On peut alors, pour chaque couple retenu, procéder comme dans les troisième et dernière passes pour trouver toutes les couronnes (petites, moyennes et grandes) compatibles. Ceci afin de pouvoir ensuite déterminer (de façon combinatoire) les empilements possibles.

Reprenons l’exemple de la petite couronne 111rr et de la moyenne 111rrs. Les résultants sont deux polynômes de degré , chacun ayant racines réelles. Il y a donc couples candidats. La première passe en garde . La deuxième n’en laisse qu’un seul. La troisième l’élimine. Aucune vérification finale n’est donc nécessaire ! Le tout en environ secondes sur un ordinateur de bureau avec bits de précision pour les intervalles.

Certains cas restent néanmoins impraticable. Par exemple, la petite couronne 11rrs et la moyenne couronne donnent un polynôme de degré et un de degré avec des coefficients ayant jusqu’à chiffres. Rien qu’obtenir ce polynôme de degré demande minutes de calcul, et le calcul du résultant excède la capacité mémoire de notre ordinateur.

Surtout, si l’on croise le nombre de petites couronnes selon la minoration du ratio associée (Tab. 1) et le nombre de moyennes couronnes pour cette minoration (Tab. 4), on obtient un total de couples de couronnes ! L’approche purement calculatoire précédente semble donc vouée à l’échec. Aussi l’avons nous complétée par une approche combinatoire. Le principe est d’éliminer autant de cas que possible en montrant que la combinatoire des petites et moyennes couronnes exclue la possibilité d’un empilement, indépendamment des valeurs de et (et donc des grandes couronnes). Nous avons pour cela partitionné les empilements en trois types, successivement étudiés dans les trois parties suivantes.

7 Deux phases

Un empilement est dit admettre deux phases s’il n’y a pas de contact entre petits et moyens disques. Les grands disques font “tampon” entre les petits et les moyens. Une petite couronne ne contenant pas de moyen disque, elle donne une des équations en données Tab. 2. De même pour une moyenne couronne, qui ne contient pas de petit disque, en remplaçant par dans les équations Tab. 2. Comme , il y a couples candidats.

Parmi ces candidats, admettent un empilement périodique (voir Annexe A). Ce sont exactement ceux qui ont une grande couronne qui contient à la fois un petit et un moyen disque et permet ainsi de lier les deux phases. Montrons que l’absence d’une telle couronne dans les cas restants interdit l’existence d’un empilement (qui a, par définition, des disques des trois tailles).

Lemme 2

Si aucune grande couronne d’un candidat à deux phases

  1. ne contient trois grands disques consécutifs et un moyen disque ;

  2. ne contient à la fois un petit et un moyen disque.

Alors aucun empilement n’est possible.

Preuve. Supposons qu’un tel empilement existe et obtenons une contradiction. Appelons disque un grand disque en contact avec au moins un moyen disque. Considérons un grand disque dans la couronne d’un disque . Comme cette couronne contient un moyen disque (par définition d’un disque ), la première hypothèse assure que a un voisin qui n’est pas un grand disque. La seconde hypothèse assure que ce voisin est forcément moyen, et donc que est lui-même un disque . Ainsi, les seuls voisins d’un disque sont des disques moyens ou . De même, les seuls voisins d’un moyen disque sont moyens ou (il ne peuvent pas être petits par définition d’un empilement à deux phases, et s’ils sont grands ils sont par définition d’un disque ). Considérons maintenant un moyen disque de l’empilement. Ses voisins sont des disques moyens ou . Les voisins de ses voisins aussi d’après ce qu’on vient de voir, et ainsi de suite. L’empilement ne contient pas de petit disque : contradiction.

Figure 3: Un des candidats à deux phases, représenté par ses couronnes, qui n’admet pas d’empilement d’après le lemme 2.

Le lemme 2 reste valable en échangeant partout “moyen” et “petit” (dans l’énoncé et dans la preuve). Il élimine des candidats restants (Fig. 3). Il en reste trois (Fig. 4), éliminés en allant un cran plus loin que dans le lemme 2 :

Figure 4: Trois candidats à deux phases, représentés ligne par ligne par leurs couronnes, qui n’admettent pas d’empilement d’après le lemme 3.
Lemme 3

Aucun des candidats représentés Figure 4 ne permet d’empilement.

Preuve. Supposons qu’un empilement existe. Considérons la seule grande couronne qui contienne un moyen disque et trois grands consécutifs (en quatrième position Fig. 4). Si elle n’apparaît pas dans l’empilement, alors le lemme 2 s’applique et donne une contradiction. Sinon, soit a le grand disque de cette couronne qui a deux grands voisins (Fig. 5, premier dessin). Supposons qu’il n’ait aucun moyen voisin. Ses deux grands voisins dans la couronne lui imposent deux grands voisins b et c (Fig. 5, deuxième dessin). Comme ces mêmes voisins ayant au plus trois grands disques consécutifs dans leur couronne, ils imposent à b et c des moyens voisins d et e (Fig. 5, troisième dessin). Par ailleurs, a ayant maintenant grands voisins, il a forcément un sixième et dernier grand voisin f (Fig. 5, troisième dessin). Enfin, b et c ayant eux aussi au plus trois grands disques consécutifs dans leur couronne, ils imposent à f des moyens voisins g et h (Fig. 5, dernier dessin). Ainsi, les seuls grands disques sans moyen voisin de l’empilement sont encerclés par des grands disques avec un moyen voisin. L’empilement ne contient donc pas de petit disque : contradiction.

Figure 5: Dans un empilement avec la couronne de gauche, un grand disque touche un moyen ou est encerclé par grands disques qui touchent un moyen.

8 Deux petites couronnes

On cherche ici les empilements où peuvent apparaître (au moins) deux petites couronnes différentes (autres que ssssss). L’intérêt est double. D’une part, comme il n’y a que petites couronnes, il y a au plus couples à considérer (au lieu de ). D’autre part, les petites couronnes correspondent à des équations généralement beaucoup plus simples que les moyennes.

Si les deux petites couronnes ne contiennent que des petits et grands disques, alors chacune caractérise une valeur différente de . On élimine donc ces paires, tout comme celles qui ne contiennent que des petits et moyens disques (valeur différente de ). Il reste systèmes de deux équations en et .

On calcule les résultants et leurs racines comme détaillé Partie 6. Il y a trois paires pour lesquelles le calcul des racines par SageMath est problématique : l’exécution s’arrête pour rrrs/11rss et rrss/1111r en renvoyant respectivement AssertionError et RuntimeError(’maximum recursion depth exceeded’), quant à 1rrss/1111r, nous avons interrompu l’exécution au bout de heures. Dans ces trois cas, les racines sont (facilement) calculées en arithmétique d’intervalles : on obtient un ensemble de couples candidats. Les autres cas ne posent pas de problème et donnent un ensemble de couples candidats.

La première passe, sur le domaine, réduit à couples et à couples. La deuxième passe est ici effectuée sur les équations d’angles des deux petites couronnes, et non sur celles d’une petite et d’une moyenne couronne comme dans le cas général exposé Partie 6. Elle réduit à couple, ce qui règle le problème des trois erreurs ci-dessus, et à couples. La troisième passe réduit à couples, que la dernière passe valide tous (avec toutes leurs couronnes). Le tout (résultants, racines et les quatre passes) en moins de minutes sur notre ordinateur de bureau.

Ces couples peuvent donc former des petites, moyennes et grandes couronnes, mais il reste à vérifier qu’ils admettent un empilement. Ils s’avèrent tous partager une propriété bien particulière : il n’y a jamais de moyen disque dans leurs grandes couronnes. Ceci permet de montrer :

Lemme 4

Si aucune petite couronne d’un candidat à deux petites couronnes

  1. ne contient trois petits disques consécutifs et un grand disque ;

  2. ne contient à la fois un moyen et un grand disque.

Alors aucun empilement n’est possible.

Preuve. Supposons qu’un tel empilement existe et obtenons une contradiction. Appelons disque un petit disque en contact avec au moins un grand disque. Considérons un petit disque dans la couronne d’un disque . Comme cette couronne contient un grand disque (par définition d’un disque ), la première hypothèse assure que a un voisin qui n’est pas un petit disque. La seconde hypothèse assure que ce voisin est forcément grand, et donc que est lui-même un disque . Ainsi, les seuls voisins d’un disque sont des disques grands ou . De même, les seuls voisins d’un grand disque sont grands ou (il ne peuvent pas être moyen car les grandes couronnes des candidats ne contiennent jamais de moyen disque, et s’ils sont petits ils sont par définition d’un disque ). Considérons maintenant un grand disque de l’empilement. Ses voisins sont des disques grands ou . Les voisins de ses voisins de même, et ainsi de suite. L’empilement ne contient donc pas de moyen disque : contradiction.

Figure 6: Un candidat à deux petites couronnes qui n’a pas d’empilement.
Figure 7: Le seul candidat à deux petites couronnes admettant un empilement.

Le lemme 4 reste valable en échangeant partout “moyen” et “grand” (dans l’énoncé et dans la preuve). Il élimine tous les candidats (Fig. 6), sauf le cas des petites couronnes 1srrs et 1s1ss (Fig. 7). Ce cas admet en effet un empilement (périodique, voir Appendix A), bien qu’une seule petite couronne soit utilisable :

Proposition 1

Pour et compatibles avec les deux petites couronnes 1srrs et 1s1ss, il n’existe pas d’empilement contenant la petite couronne 1s1ss.

Preuve. Les deux petites couronnes caractérisent et , donc toutes les couronnes. Il n’y a que ces deux petites couronnes, les moyennes couronnes rrsssrs et rrssrss (même vecteur d’angles), et la grande couronne . Supposons qu’un empilement contienne la petite couronne 1s1ss et considérons le centre de cette couronne. On montre par induction sur que les disques à distance de ce centre sont soit des grands disques, soit des petits disques qui ont un facteur 1ss, 1s1 ou s1s dans leur couronne. C’est vrai pour . Supposons que ce soit vrai pour et considérons un disque à distance . Il est dans une couronne d’un disque à distance , donc soit une grande couronne, soit une petite couronne qui, par hypothèse d’induction, contient 1ss, 1s1 ou s1s : ça ne peut être que 1s1ss. C’est donc un disque petit ou grand, et comme tout petit disque dans la grande couronne ou la petite couronne 1s1ss a un facteur 1ss, 1s1 ou s1s dans sa couronne, l’hypothèse d’induction est vérifiée pour . On en déduit qu’il ne peut y avoir de moyen disque dans cet empilement, ce qui contredit la définition d’un empilement.

9 Une petite couronne

Le dernier type d’empilement sont ceux qui n’ont qu’une phase et qu’une petite couronne (autre que ssssss). Chacun contient donc (au moins) une moyenne couronne avec un petit disque (sinon il y a deux phases), et tous les petits disques de cette moyenne couronne ont la même couronne. Aussi supposera-t-on toujours que, dans les couples petite/moyenne couronnes utilisés pour calculer , la moyenne couronne contient un petit disque. L’intérêt est que cela impose une contrainte combinatoire simple mais forte sur les couples considérés.

Considérons, par exemple, le cas de la petite couronne 11rrs et de la moyenne couronne (où le simple calcul du résultant posait problème Partie 6). Si les centres s et r de ces deux couronnes se touchent, alors il existe un facteur xry de la petite999C’est-à-dire un facteur d’une des codages de la couronne. et un facteur xsy de la moyenne, où x et y sont les deux disques qui touchent à la fois s et r. Ici, le facteur sss de impose srs dans 11rrs : ce couple peut être éliminé sans se lancer dans les calculs décrits Partie 6 !

Les couples considérés sont cependant des solutions (potentielles) des équations et , c’est-à-dire des vecteurs d’angles et non leur codage par un mot sur . Les vecteurs d’angles des petites couronnes n’admettent jamais qu’un seul codage, mais ceux des moyennes en ont généralement plusieurs. Dans l’exemple précédent, est l’unique codage de , mais le vecteur , par exemple, admet codages différents. Il faut vérifier qu’au moins un des codages vérifie cette contrainte.

Formellement, on dit qu’un petit vecteur d’angles couvre un moyen vecteur d’angles s’il existe un codage de tel que pour tout facteur xsy de ce codage, le codage de contient . On dit aussi que précouvre s’il existe un codage de tel que pour tout facteur xs de ce codage, le codage de contient . Cette condition est plus faible, mais elle se vérifie directement sur les vecteurs d’angles (qui comptent justement les facteurs de taille ), donc plus rapidement.

Considérons les couples petit/moyen vecteurs d’angles candidats. Ne garder que ceux où la la petite couronne contient un moyen disque et la moyenne un petit réduit à couples. La vérification de précouverture réduit à couples en quelques millisecondes, puis celles de couverture à couples en moins de minutes101010Mais en plus de minutes si on ne vérifie pas la précouverture avant.. Ces couples correspondent à moyennes couronnes différentes, au lieu des initiales, et leurs polynômes sont de plus souvent parmi les plus simples111111Le calcul de ces polynômes prend 1min 51s sur notre ordinateur et crée un fichier de Ko. Il montre que le degré moyen est , avec un maximum à pour 11rrsrss..

Le calcul des résultants donne un ensemble de couples candidats en moins de minutes. Ici encore, il y a quelques cas problématiques : erreurs d’exécution et couples de couronnes qui ne caractérisent pas un nombre fini de valeurs de et . Les erreurs sont traitées en arithmétique d’intervalles et donnent un ensemble de couples candidats (environ minutes). Parmi les cas qui ne caractérisent pas et (i.e., le système d’équations associées aux couronnes n’est pas de dimension ), sont formés de petite et moyenne couronnes qui n’ont pas de grand disque. Ces seules couronnes ne permettent pas un empilement avec trois tailles de disques : il en faut donc une autre, i.e., on retombe dans un des autres cas. Les cas restants sont 1rr/1r1srs et 11r/111s1s. Le premier est impossible car il correspond à une moyenne couronne 1r1r avec des s ajoutés dans les interstices, or une telle moyenne couronne est impossible. Le second est en fait un sous cas de 1rr/1s1s1s1s, où certains trous entre deux grands disques et un moyen ne sont pas remplis par un petit disque.

La première passe, sur le domaine, réduit à couples et à couples. La deuxième passe, sur les petites et moyennes couronnes, réduit à couples et à couples. La troisième passe, sur les grandes couronnes, réduit à couples et à couple. Le tout en minutes environ. Le dernier couple de qui résiste (AssertionError) correspond à la paire petite/moyenne couronnes 1rr1s/11rrs. Résoudre les deux équations bivariées associées (via les bases de Gröbner) donne couples en 45 minutes121212Ce qui montre l’intérêt d’avoir utilisé le résultant pour les autres couples !, réduit à par les trois passes. Il reste donc candidats, que la dernière passe valide tous (et leurs couronnes) en moins de minutes. Il reste à déterminer quand un empilement est possible.

Lemme 5

Si un empilement contient une petite couronne 1rss, 11rss, 1rrss ou 1srss, alors il contient une seconde petite couronne autre que ssssss.

Preuve. La preuve ne repose pas sur les valeurs de ou . Les quatre cas, similaires, sont illustrés Fig. 8. On considère un s (légèrement grisé) et sa petite couronne. On considère un des s de cette couronne (moyennement grisé) : il n’y a qu’une seule façon de disposer sa couronne. Un des s (fortement grisé) a alors dans sa couronne un facteur (1ss1 dans le premier cas, rssr dans les trois autres) qui n’apparaît ni dans une de ces quatre petites couronnes ni dans ssssss.

Figure 8: Quatre petites couronnes qui imposent deux petites couronnes.

Le lemme 5 élimine couples petit/moyenne couronne qui ne permettent pas d’empilement. Le lemme 6 ci-dessous en élimine encore , et les restants admettent tous un empilement périodique (Annexe A).

Lemme 6

Il n’y a pas d’empilement avec des couples petite/moyenne couronnes 1rsrs/1rr1ss, 11rr/11rrs, 1rr1s/11rrs, rrrrr/1rsrsr, rrrrs/11rssr, rrrss/11rssr et rrrs/11rssr.

Preuve. On traite les cas un par un.
1rsrs/1rr1ss. Les valeurs de et ne sont compatibles avec aucune autre moyenne couronne. Le r entre deux s de la petite couronne, qui touche trois s (ses voisins et le centre) n’a pas de couronne.
11rr/11rrs. Les valeurs de et ne sont compatibles avec aucune autre moyenne couronne. Dans la moyenne couronne, la couronne du r avec un voisin s impose 1rr1 dans la couronne de son voisin r : c’est impossible.
1rr1s/11rrs. Les valeurs de et ne sont compatibles avec aucune autre moyenne couronne. Dans la moyenne couronne, la couronne du r voisin de 1 impose le facteur srrs dans la couronne du r voisin de s. C’est impossible car la moyenne couronne n’a pas de facteur srrs.
rrrrr/1rsrsr. Les valeurs de et ne sont compatibles avec aucune autre moyenne couronne. Il y a deux façons symétriques de placer la couronne d’un r dans une petite couronne. Ce choix impose alors, de proche en proche, un placement unique des couronnes des autres r de la petite couronne. Il n’y a pas de couronne possible pour le dernier r.
rrrrs/11rssr. Les valeurs de et sont compatibles avec deux autres moyennes couronnes, rsrsrss et 1111r, ainsi qu’avec la grande couronne, 1r1r1rr. Appelons disque un moyen disque qui touche au moins un grand disque. Si un empilement ne contient pas la moyenne couronne 11rssr, alors en partant d’un disque les autres couronnes ne permettent d’atteindre que des disques ou , donc il n’y a pas de petit disque dans l’empilement : contradiction. Considérons donc une moyenne couronne 11rssr. Soit deux disques r et s voisins dans cette couronne. Il y a une seule façon de placer la couronne du r et elle impose au s un facteur sss dans sa propre couronne, ce que ne permet pas la petite couronne.
rrrss/11rssr. Les valeurs de et sont compatibles avec les moyennes couronnes rrsrrss, rrrsrss et 111rr, ainsi qu’avec les grandes couronnes 11r11rr et 111r1rr. Le même argument que pour rrrrs/rsrsrss impose la présence d’une moyenne couronne 11rssr. Soit deux disques r et s voisins dans cette couronne. Il y a une seule façon de placer la couronne du r et elle impose au s un facteur srrs dans sa propre couronne, ce que ne permet pas la petite couronne.
rrrs/11rssr. Les valeurs de et sont compatibles avec les moyennes couronnes rsrsrsrsss, rsrsrssrss, rsrssrsrss, rrrrsrss, rrrsrrss, rrrsrss, 1rsrsssr, 1rssrssr et 111r. La petite couronne interdit trois s consécutifs dans une couronne, ce qui élimine 1rsrsssr (et rsrsrsrsss). Le même argument que pour rrrrs/rsrsrss impose la présence d’une moyenne couronne 1rssrssr ou 11rssr. Considérons une de ces couronnes (l’autre cas est similaire). La petite couronne force les paires de s voisins dans cette couronne a être encerclés par quatre r. Considérons un des deux r qui, dans cette couronne, est entre 1 et s : il a alors un facteur 1rsr dans sa couronne, ce qui est impossible.

10 Conclusion

Il y a donc couples qui permettent un empilement à deux phases, un seul qui permet deux petites couronnes et admet un empilement (qui ne contient qu’une de ces petites couronnes) et qui ne permettent qu’une seule petite couronne et admettent un empilement avec une seule phase. Au total, il y a donc couples qui permettent un empilement : le théorème 1 est démontré. La figure 9 illustre la répartition des rayons (les numéros correspondent à ceux de l’annexe A) et la table 5 celle de leur degré algébrique.

Figure 9: Répartition des couples qui permettent un empilement, avec en abscisse et en ordonnée. Les couples sous la courbe rouge sont interstitiels : le petit disque tient dans le trou entre trois grands disques. Les cellules de Voronoï donnent une idée de la proximité entre couples.
Table 5: Nombre de rayons et en fonction de leur degré algébrique.

Références

Annexe A Empilements

On présente ici un exemple d’empilement pour chacun des couple possibles. Ils sont tous périodiques et un cadre indique sur chaque dessin un domaine fondamental. On donne pour chacun les codages d’une petite et d’une moyenne couronnes (à partir desquelles le couple se déduit). Les premiers sont ceux à deux phases, le correspond au couple qui permet deux petites couronnes (dont une seule utilisable dans un empilement), les suivant n’admettent qu’une petite couronne et n’ont pas deux phases.

1 111 / 1111 2 111 / 111r 3 111 / 111rr
4 111 / 11r1r 5 111 / 11rrr 6 1111 / 11r1r
7 111s / 1111 8 111s / 11r1r 9 111s / 11rrr
10 11ss / 111 11 11ss / 1111 12 11ss / 111r
13 11ss / 111rr 14 11ss / 11r1r 15 11ss / 11rrr
16 11sss / 1111 17 11sss / 111rr 18 11sss / 11r1r
19 1srrs / rrsrsss 20 11r / 1r1s1r 21 11r / 1r1s1s
22 11r / 1r1s1s1s 23 11r / 1rr1s 24 11r / 1rr1s1s
25 11r / 1rrr1s 26 11r / 1s1s1s 27 11r / 1s1s1s1s
28 1rr / 1111srs 29 1rr / 111srrs 30 1rr / 111srs
31 1rr / 11srrrs 32 1rr / 11srrs 33 1rr / 11srs1srs
34 1rr / 1srrs1srs 35 1rssr / 11ss 36 1rsss / 11ss
37 rrr / 111rsr 38 rrr / 11rsr 39 rrr / 11rsrsr
40 rrr / 1r1rsr 41 rrss / 111rssr 42 rrss / 11rssr
43 rrss / 11rssrssr 44 rrss / 1r1rssr 45 111r / 111s1s
46 111r / 11r1s 47 111r / 1r1r1s 48 111r / 1rr1s
49 111r / 1rrr1s 50 111r / 1s1s1s 51 111rr / 1rrrrs
52 111rr / 1srrrs 53 11r1r / 1r1s1s 54 11r1r / 1s1s1s
55 11r1s / 111s1s 56 11r1s / 1r1r1s 57 11r1s / 1rrr1s
58 11r1s / 1s1s1s 59 11rr / 111srs 60 11rr / 11srrs
61 11rr / 11srs 62 11rr / 1r1rs 63 11rr / 1rr1rs
64 11rr / 1rrrrs 65 11rr / 1srrrs 66 11rrr / 1srsrs
67 11rs / 111s1sss 68 11rs / 111ss 69 11rs / 11r1ss
70 11rs / 1r1r1ss 71 11rs / 1r1ss 72 11rs / 1rr1ss
73 11rs / 1rrr1ss 74 11rs / 1s1s1ssss 75 11rs / 1s1sss
76 11rsr / 111ss 77 11rsr / 11r1ss 78 11rsr / 1rr1ss
79 11rsr / 1s1sss 80 1r1r / 1111s 81 1r1r / 111r1s
82 1r1r / 111s1s 83 1r1r / 11r1s 84 1r1r / 11rr1s
85 1r1r / 11s1s 86 1r1r / 11s1s1s 87 1r1r / 1r1r1s
88 1r1r / 1r1s1s 89 1r1r / 1rr1s 90 1r1r / 1rrr1s
91 1r1r / 1s1s1s 92 1r1r / 1srsrs 93 1r1rr / 1s1srs
94 1r1s / 1111s 95 1r1s / 111r1s 96 1r1s / 111s1s
97 1r1s / 11r1s 98 1r1s / 11r1s1s 99 1r1s / 11rr1s
100 1r1s / 11s1s 101 1r1s / 11s1s1s 102 1r1s / 1r1r1s
103 1r1s / 1r1s1s 104 1r1s / 1r1s1s1s 105 1r1s / 1rr1s
106 1r1s / 1rrr1s 107 1r1s / 1s1s1s 108 1r1s / 1s1s1s1s
109 1r1s / 1s1sss 110 1r1ss / 111s1s 111 1r1ss / 11r1s
112 1r1ss / 11rr1s 113 1r1ss / 11s1s 114 1r1ss / 1rrr1s
115 1r1ss / 1s1s1s 116 1rr1s / 111srs 117 1rr1s / 11srrs
118 1rr1s / 11srs 119 1rr1s / 1rrrrs 120 1rr1s / 1srrrs
121 1rrr / 11srsrs 122 1rrr / 1srrsrs 123 1rrrr / 11rsrs
124 1rrrr / 1rrsrs 125 1rrs / 11srsrss 126 1rrs / 1srsrrss
127 1rrsr / 11srss 128 1rrsr / 1srrss 129 1rs1s / 111ss
130 1rs1s / 11r1ss 131 1rs1s / 1s1sss 132 1rsr / 1111ss
133 1rsr / 111r1ss 134 1rsr / 111s1sss 135 1rsr / 111ss
136 1rsr / 11r1ss 137 1rsr / 11rr1ss 138 1rsr / 11s1sss
139 1rsr / 1r1r1ss 140 1rsr / 1r1s1sss 141 1rsr / 1rr1ss
142 1rsr / 1rrr1ss 143 1rsr / 1s1s1ssss 144 1rsrs / 111ssss
145 1rsrs / 11ssss 146 1rsrs / 1r1ssss 147 1rssr / 111ss
148 1rssr / 11r1ss 149 1rssr / 11s1sss 150 1rssr / 1r1ss
151 1rssr / 1rr1ss 152 1rssr / 1s1sss 153 1rsss / 111ss
154 1rsss / 11r1ss 155 1rsss / 11s1sss 156 1rsss / 1r1ss
157 1rsss / 1rr1ss 158 1rsss / 1s1sss 159 rrrr / 11rrsr
160 rrrr / 11rsr 161 rrrr / 1r1rsr 162 rrrr / 1rrrsr
163 rrsrs / 1rssssr 164 rrsss / 1rrsssr

Annexe B Code

L’utilisation de l’ordinateur a été cruciale pour démontrer les résultats de cet article. Le code a été écrit pour SageMath (donc en Python). Il peut être trouvé à l’adresse :

https://lipn.univ-paris13.fr/~fernique/info/code3disques.tgz

Il est articulé en sept programmes :

  1. couronnes.sage : calcul des vecteurs d’angles et de leurs codages (ou inversement), calcul des couronnes compatibles avec des valeurs de et données ;

  2. equations.sage : passage des couronnes aux équations et vérification exacte des candidats ;

  3. biphases.sage : calcul et vérification des candidats dans le cas des empilements à deux phases ;

  4. 2pc.sage : idem dans le cas des empilements avec deux petites couronnes ;

  5. 1pc.sage : idem dans le cas des empilements avec une seule petite couronne.

  6. dessin.sage : fonctions pour représenter couronnes ou empilements ;

  7. empilements.sage : codage des empilements périodiques donné en Annexe A.

Les deux premiers, couronnes.sage et equations.sage, contiennent des fonctions utilisées dans les autres. Les trois suivants, biphases.sage, 2pc.sage et 1pc.sage sont indépendants (et relativement similaires). Les deux derniers, dessin.sage et empilements.sage, peuvent être utilisés pour dessiner couronnes ou empilements.