Aspects algorithmiques de la génération de pavages Sébastien Desreux Laboratoire d’Informatique Algorithmique: Fondements et Applications 17 juillet 2003 – p.1/22 Plan de l’exposé Quelques exemples Motivation de l’étude Revue des outils Exposé en quatre actes Conclusion Qu’est-ce qu’un pavage ? – p.2/22 Qu’est-ce qu’un pavage ? Pavage par des dominos La grille carrée Introduction – p.3/22 Qu’est-ce qu’un pavage ? Pavage par des dominos La grille carrée Un domaine à paver Introduction – p.3/22 Qu’est-ce qu’un pavage ? Pavage par des dominos La grille carrée Un domaine à paver Un pavage Losanges Introduction – p.3/22 Qu’est-ce qu’un pavage ? Pavage par des losanges La grille triangulaire Introduction – p.3/22 Qu’est-ce qu’un pavage ? Pavage par des losanges La grille triangulaire Un domaine à paver Introduction – p.3/22 Qu’est-ce qu’un pavage ? Pavage par des losanges La grille triangulaire Un domaine à paver Un pavage... Introduction – p.3/22 Qu’est-ce qu’un pavage ? Pavage par des losanges La grille triangulaire Un domaine à paver Un pavage... ...et des couleurs Pourquoi étudier les pavages ? Introduction – p.3/22 Pourquoi étudier les pavages ? Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Pavage d’une région du plan par des tuiles arbitraires : NP-complet Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Pavage d’une région du plan par des tuiles arbitraires : NP-complet Modélise le sac à dos Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Pavage d’une région du plan par des tuiles arbitraires : NP-complet Modélise le sac à dos les partitions Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Pavage d’une région du plan par des tuiles arbitraires : NP-complet Modélise le sac à dos les partitions les partitions planes Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Pavage d’une région du plan par des tuiles arbitraires : NP-complet Modélise le sac à dos les partitions les partitions planes les partitions solides Introduction – p.4/22 Pourquoi étudier les pavages ? Système dynamique discret Modèle d’Ising Pavage du plan par des tuiles arbitraires : indécidable Pavage d’une région du plan par des tuiles arbitraires : NP-complet Modélise le sac à dos les partitions les partitions planes les partitions solides Les apparences sont trompeuses Situation en 2000 Introduction – p.4/22 La situation en 2000 −1 b c −1 b b a −1 c −1 a −1 c b a −1 a c Groupes de pavage (Conway et Lagarias) 1990 Introduction – p.5/22 La situation en 2000 1 Groupes de pavage (Conway et Lagarias) 1990 Fonctions de hauteur +1 (Thurston) −1 1990 2 3 3 2 2 v0 0 1 3 2 4 5 1 2 2 3 3 0 1 0 1 −1 2 −1 2 4 1 1 1 0 2 1 +1 1 0 −1 1 +1 +1 −1 1 0 +1 Introduction – p.5/22 La situation en 2000 Groupes de pavage (Conway et Lagarias) 1990 Exemple de treillis une Cet ordre induit sur structure de treillis distributif. Structure de treillis distributif (Rémila) 1999 L’ensemble des fonctions de hauteur des pavages d’un domaine est muni de l’ordre point par point. Fonctions de hauteur (Thurston) 1990 Introduction – p.5/22 Exemple de treillis de pavages Introduction – p.6/22 Exemple de treillis de pavages 1 1 2 1 0 2 2 flip montant 2 1 flip descendant 1 3 2 1 2 Introduction – p.6/22 Exemple de treillis de pavages 1 0 3 2 1 1 2 1 0 3 0 1 1 1 0 3 2 0 1 0 2 1 0 1 0 0 1 1 2 −1 1 0 1 2 2 1 1 1 0 0 0 2 −1 1 1 2 −1 1 0 1 0 −1 2 1 3 0 1 2 1 0 1 1 2 −1 2 1 0 1 1 0 flip montant 2 flip descendant 2 0 1 1 1 0 1 2 3 0 1 1 2 1 −1 0 −2 1 −1 0 2 1 Introduction – p.6/22 Exemple de treillis de pavages Axes de la présentation Introduction – p.6/22 Les axes de la présentation Que nous apprend la structure de treillis pour l’étude des pavages ? – p.7/22 Les axes de la présentation Découpage des domaines à paver et treillis produit – p.7/22 Les axes de la présentation Découpage des domaines à paver et treillis produit Structure récursive du treillis – p.7/22 Les axes de la présentation Découpage des domaines à paver et treillis produit Structure récursive du treillis Généralisation de l’algorithme de Thurston – p.7/22 Les axes de la présentation Découpage des domaines à paver et treillis produit Structure récursive du treillis Généralisation de l’algorithme de Thurston Algorithmes Découpage – p.7/22 Première partie Découpage des domaines – p.8/22 Domaines non connexes I. Découpage du domaine – p.9/22 Domaines non connexes Treillis Treillis Treillis Treillis Treillis Le treillis des pavages d’un domaine non connexe est le produit des treillis des pavages des sous-domaines connexes. I. Découpage du domaine – p.9/22 Treillis Treillis Treillis Treillis Treillis Domaines non connexes Conséquence Pour connaître les pavages d’un domaine non connexe, il suffit de connaître les pavages des sous-domaines connexes. Lignes de fracture I. Découpage du domaine – p.9/22 Lignes de fracture Peut-on découper un domaine connexe en sous-domaines indépendants, comme si le domaine n’était pas connexe ? I. Découpage du domaine – p.10/22 Lignes de fracture Thurston I. Découpage du domaine – p.10/22 Lignes de fracture Dual Thurston I. Découpage du domaine – p.10/22 Lignes de fracture Thurston I. Découpage du domaine – p.10/22 Lignes de fracture Thurston Fracture I. Découpage du domaine – p.10/22 Lignes de fracture Zones fertiles Thurston Fracture I. Découpage du domaine – p.10/22 Lignes de fracture Treillis produit Thurston Fracture I. Découpage du domaine – p.10/22 Lignes de fracture Théorème Il n’existe aucun découpage plus fin qui permette d’obtenir le treillis comme produit. Thurston Fracture I. Découpage du domaine – p.10/22 Lignes de fracture Idée de preuve L’ordre des sup-irréductibles du treillis des pavages d’une zone fertile est connexe. Thurston Fracture I. Découpage du domaine – p.10/22 Lignes de fracture Conséquence Il suffit d’étudier les pavages des zones fertiles. Thurston Pavages principaux Fracture I. Découpage du domaine – p.10/22 Deuxième Partie Structure récursive du treillis des pavages d’une zone fertile – p.11/22 Pavages principaux Comment s’organisent les pavages d’une zone fertile ? II. Structure récursive du treillis – p.12/22 Le pavage minimal contient quatre graines. ! Pavages principaux Le premier étage du treillis contient quatre sup-irréductibles. II. Structure récursive du treillis – p.12/22 " " " " Pavages principaux Dans chaque cas, on fige toutes les graines, sauf une, et on effectue tous les flips possibles. II. Structure récursive du treillis – p.12/22 On prend le supremum. ! Pavages principaux II. Structure récursive du treillis – p.12/22 # Pavages principaux Le pavage d’ordre 0 (Pavage minimal) II. Structure récursive du treillis – p.12/22 # $ Pavages principaux Le pavage d’ordre 1 II. Structure récursive du treillis – p.12/22 $ # $ Pavages principaux Le pavage d’ordre 2 II. Structure récursive du treillis – p.12/22 $ $ # $ Pavages principaux Le pavage d’ordre 3 (Pavage maximal) Construction récursive II. Structure récursive du treillis – p.12/22 Construction récursive du treillis %& (D)−1 (' d est le pavage minimal ; est le pavage maximal. % 3 ) # %& (D) % 2 Ce sont les pavages constructibles avec l’algorithme de Thurston. % 1 % 0 II. Structure récursive du treillis – p.13/22 Construction récursive du treillis (' d est le pavage minimal ; *+ (D)−1 * 3 ) # *+ (D) est le pavage maximal. Ce sont les pavages constructibles avec l’algorithme de Thurston. * 2 , Les pavages principaux interpolent entre ces pavages. * 1 * 0 II. Structure récursive du treillis – p.13/22 Construction récursive du treillis -. (D) , Les pavages principaux interpolent entre ces pavages. -. (D)−1 0 - 2 ,1 , / Les intervalles forment une chaîne maximale. 2 - 3 - 1 - 0 II. Structure récursive du treillis – p.13/22 Construction récursive du treillis 34 (D) Les intervalles forment une chaîne maximale. 3 3 ,1 , 0 / 34 (D)−1 2 , Les pavages principaux interpolent entre ces pavages. 3 2 Théorème ,1 , 0 / . on 2 0 ,1 # / , 2 0 # / De et peut déduire 2 3 1 3 0 Algorithme de Thurston II. Structure récursive du treillis – p.13/22 Troisième partie Généralisation de l’algorithme de Thurston – p.14/22 L’algorithme de Thurston Comment déterminer si un domaine est pavable ? III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston Comment déterminer si un domaine est pavable ? Idée : chercher un pavage dans lequel les maxima locaux de la fonction de hauteur se trouvent sur la frontière. III. Généralisation de l’algorithme de Thurston – p.15/22 5 L’algorithme de Thurston 0 −1 0 −1 0 1 0 1 1 0 1 0 −1 0 −1 0 On place les hauteurs sur la frontière. III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston 0 0 −1 0 −1 1 0 1 1 0 1 1 −2 −2 1 0 0 −1 −1 1 −2 −2 1 0 −1 0 −1 0 5 0 −1 0 −1 0 −1 0 −1 0 0 On recouvre chaque sommet de hauteur maximale de l’unique manière qui ne crée pas un maximum local. III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston 0 1 −2 −2 1 0 0 −1 −1 1 −2 −2 1 0 −1 0 −1 0 5 0 −1 0 −1 0 −1 0 −1 −3 1 −2 −2 0 −1 −1 1 −2 −2 −3 0 −1 0 −1 0 1 0 1 0 On continue sur le domaine restant... III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston 0 1 0 1 0 5 0 −1 0 −1 −3 1 −2 −2 0 −1 −1 1 −2 −2 −3 0 −1 0 −1 0 −1 0 −1 −3 1 −2 −2 −1 −1 0 −4 1 −2 −2 −3 0 −1 0 −1 0 1 0 1 0 ...jusqu’à ce que tout le domaine soit recouvert. III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston 0 −1 0 −1 0 −3 1 −2 −2 1 −1 −1 −4 0 0 1 −2 −3 −2 1 0 −1 0 −1 Idée Les maxima locaux de la fonction de hauteur se trouvent sur la frontière. 0 III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston 0 −1 0 −1 0 −3 1 −2 −2 1 −1 −1 −4 0 0 1 −2 −3 −2 1 0 −1 0 −1 0 Idée Les maxima locaux de la fonction de hauteur se trouvent sur la frontière. Réinterprétation C’est l’élément minimal du treillis. III. Généralisation de l’algorithme de Thurston – p.15/22 L’algorithme de Thurston 0 −1 0 −1 0 −3 1 −2 −2 1 −1 −1 −4 0 0 1 −2 −3 −2 1 0 −1 0 −1 Thurston généralisé 0 Réinterprétation C’est l’élément minimal du treillis. Conclusion L’algorithme de Thurston construit l’idéal vide de l’ordre des sup-irréductibles du treillis. III. Généralisation de l’algorithme de Thurston – p.15/22 Généralisation de Thurston Peut-on adapter l’algorithme de Thurston pour constuire n’importe quel idéal de l’ordre des sup-irréductibles du treillis ? III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston Définition Un sup-irréductible du treillis est un pavage qui n’admet qu’un seul antécédent. III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston Définition Un sup-irréductible du treillis est un pavage qui n’admet qu’un seul antécédent. Caractérisation Sa fonction de hauteur admet un unique maximum local. III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston Définition Un sup-irréductible du treillis est un pavage qui n’admet qu’un seul antécédent. Caractérisation Sa fonction de hauteur admet un unique maximum local. Conclusion C’est un cône. III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston 7 6 Superposition de sup-irréductibles Peut-on obtenir n’importe quel pavage de cette manière ? III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston 7 6 Superposition de sup-irréductibles Théorème de Birkhoff Tout treillis distributif fini est isomorphe au treillis des idéaux de l’ordre de ses sup-irréductibles. III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston 7 6 Superposition de sup-irréductibles Théorème de Birkhoff Conclusion Tout treillis distributif fini est isomorphe au treillis des idéaux de l’ordre de ses sup-irréductibles. Tout pavage peut s’obtenir comme superposition de cônes. Exemple III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston Mise en œuvre On impose des valeurs en un nombre arbitraire de sommets. 2 1 2 1 2 1 3 3 5 2 2 3 2 2 3 1 2 1 2 1 2 III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston On procède par ligne de niveau... 2 1 2 1 2 1 3 5 2 3 1 2 1 2 1 2 3 3 2 2 3 3 2 2 1 2 3 1 2 4 3 2 5 3 1 2 1 3 2 1 2 3 3 4 2 2 1 2 8 2 2 III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston ...en couvrant les maxima rencontrés de l’unique manière qui ne crée pas de maximum local... 1 3 3 1 2 4 3 3 1 2 1 3 2 5 2 2 2 2 3 4 1 2 1 2 2 1 2 3 3 3 2 2 2 3 3 3 2 2 1 1 2 4 5 4 2 1 2 1 2 3 3 2 2 3 3 1 2 8 2 III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston ...jusqu’à ce que tout le domaine soit recouvert. 1 2 3 3 2 2 3 3 2 1 1 2 4 5 4 2 1 2 1 2 2 3 3 3 2 2 2 3 3 3 2 2 1 2 1 3 2 3 1 1 2 4 5 4 2 1 2 1 2 3 2 3 3 3 2 1 2 8 2 III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston L’algorithme de Thurston généralisé : permet de construire n’importe quel pavage ; III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston L’algorithme de Thurston généralisé : permet de construire n’importe quel pavage ; est linéaire en le nombre de cellules ; III. Généralisation de l’algorithme de Thurston – p.16/22 Généralisation de Thurston L’algorithme de Thurston généralisé : permet de construire n’importe quel pavage ; est linéaire en le nombre de cellules ; s’exécute en l’espace mémoire nécessaire pour stocker un pavage. Algorithmes III. Généralisation de l’algorithme de Thurston – p.16/22 Quatrième partie Algorithmes – p.17/22 Génération exhaustive Comment engendrer tous les pavages d’un domaine ? IV. Algorithmes – p.18/22 Génération exhaustive 16 9 5 11 12 3 8 17 13 10 14 4 15 2 Imposons une numérotation arbitraire des sommets. 7 1 19 6 18 IV. Algorithmes – p.18/22 Génération exhaustive 16 11 12 3 Imposons une numérotation arbitraire des sommets. 9 5 8 17 13 10 14 4 15 2 7 1 Notons pour chaque sommet sa hauteur normalisée. 19 6 18 3 ∆h λ 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sommet IV. Algorithmes – p.18/22 Génération exhaustive ∆h λ 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sommet En lisant la hauteur normalisée sommet par sommet, on code le pavage par un mot : Successeur 1 0 1 1 1 2 3 4 0 1 1 1 0 6 7 8 5 9 1 0 0 1 10 11 12 2 1 13 14 1 1 15 16 17 0 1 18 19 IV. Algorithmes – p.18/22 Génération exhaustive 1 0 1 1 1 2 3 4 0 1 1 1 0 1 0 6 7 8 9 10 11 12 5 0 1 2 1 13 14 1 1 15 16 17 0 1 18 19 Pour trouver le successeur lexicographique d’un mot codant un pavage : # 9 trouver le sommet de plus grand numéro ( ) qui correspond à un maximum local de la fonction de hauteur ; augmenter sa hauteur normalisée de 1 ; 9 # :9 : calculer avec l’algorithme de Thurston généralisé le plus petit pavage ayant les mêmes hauteurs . normalisées pour IV. Algorithmes – p.18/22 Génération exhaustive Algorithme de génération exhaustive des pavages Construire le pavage minimal avec l’algorithme de Thurston ; appeler récursivement la fonction successeur. IV. Algorithmes – p.18/22 Génération exhaustive Algorithme de génération exhaustive des pavages Construire le pavage minimal avec l’algorithme de Thurston ; appeler récursivement la fonction successeur. Complexité temps : nombre de pavages nombre de cellules ; espace : celui pour stocker un pavage. IV. Algorithmes – p.18/22 Génération exhaustive Algorithme de génération exhaustive des pavages Construire le pavage minimal avec l’algorithme de Thurston ; appeler récursivement la fonction successeur. Complexité temps : nombre de pavages nombre de cellules ; espace : celui pour stocker un pavage. Conclusion L’algorithme est optimal en temps et en espace. Algorithmes reliés IV. Algorithmes – p.18/22 Algorithmes reliés Génération des intervalles # 9 Adapter le choix de ; insérer un infimum. IV. Algorithmes – p.19/22 Algorithmes reliés Génération des intervalles # 9 Adapter le choix de ; insérer un infimum. Génération des sup-irréductibles Calculer les pavages minimal et maximal du domaine ; en déduire la gamme des hauteurs normalisées de chaque sommet ; pour chaque sommet et chacune de ses hauteurs normalisées non nulles, calculer au moyen de l’algorithme de Thurston généralisé l’infimum des pavages dans lesquels le sommet porte cette hauteur. IV. Algorithmes – p.19/22 Algorithmes reliés Méthode « pavages ; Génération des arcs du treillis flips » Calculer les pavages comme précédemment ; pour chaque pavage, déterminer les sommets en lesquels la fonction de hauteur atteint un minimum local ; pour chacun de ces sommets, effectuer un flip et ajouter au treillis l’arête ainsi déterminée. IV. Algorithmes – p.19/22 Algorithmes reliés Génération des arcs du treillis Méthode par les sup-irréductibles Calculer les sup-irréductibles comme précédemment ; calculer leur ordre de la manière suivante : pour chaque sup-irréductible, déterminer les sommets en lesquels la fonction de hauteur atteint un minimum local ; tout voisin d’un sommet minimal non relié à celui-ci donne un sup-irréductible immédiatement supérieur en ajoutant 1 à sa hauteur normalisée puis en appliquant l’algorithme de Thurston généralisé ; utiliser un algorithme générique pour engendrer les idéaux de cet ordre. IV. Algorithmes – p.19/22 Conclusion – p.20/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. Le treillis de leurs pavages a une structure récursive. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. Le treillis de leurs pavages a une structure récursive. Ce découpage est le plus fin possible pour le produit. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. Le treillis de leurs pavages a une structure récursive. Ce découpage est le plus fin possible pour le produit. L’algorithme de Thurston est vu comme cas particulier. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. Le treillis de leurs pavages a une structure récursive. Ce découpage est le plus fin possible pour le produit. L’algorithme de Thurston est vu comme cas particulier. Le théorème de Birkhoff donne un cadre à l’idée intuitive de cône. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. Le treillis de leurs pavages a une structure récursive. Ce découpage est le plus fin possible pour le produit. L’algorithme de Thurston est vu comme cas particulier. Le théorème de Birkhoff donne un cadre à l’idée intuitive de cône. On construit un algorithme optimal en temps et en espace pour générer les pavages d’un domaine. – p.21/22 Conclusion La structure de treillis a permis de mettre en perspective les résultats classiques. On peut ramener l’étude à des zones élémentaires du domaine, les zones fertiles. Le treillis de leurs pavages a une structure récursive. Ce découpage est le plus fin possible pour le produit. L’algorithme de Thurston est vu comme cas particulier. Le théorème de Birkhoff donne un cadre à l’idée intuitive de cône. On construit un algorithme optimal en temps et en espace pour générer les pavages d’un domaine. On en déduit plusieurs autres algorithmes. – p.21/22 > = < = < Pavages d’un hexagone – p.22/22