Tiling a Polygon with Parallelograms Richard Kenyon rapport par Yassine Hamoudi 7 janvier 2016 Table des matières 1 Introduction 1 2 Contexte et état de l’art 2 3 Algorithme de pavage par des parallélogrammes 3.1 Recherche d’une correspondance valide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Correspondance à périphérie monotone et construction d’un pavage . . . . . . . . . . . . . 2 2 3 4 Autres résultats 4.1 Ensemble des pavages possibles et rotations . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Définition alternative d’un "pavage" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 NP-complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 5 5 Conclusion 5 Références 5 1 Introduction Nous présentons le travail exposé dans [Ken93], concernant le pavage d’un polygone par des parallélogrammes. L’auteur s’intéresse au problème suivant : Problème 1. Soit P un polygone simple (i.e. qui ne s’intersecte pas avec lui-même). Existe-t-il un pavage de P par un ensemble de parallélogrammes {Ti } tel que : S 1. Ti recouvre la région délimitée par P 2. deux tuiles Ti et Tj ne peuvent s’intersecter que via un point ou une arête entière en commun 3. chaque tuile Ti ne peut intersecter P que via un sommet ou une arête entière en commun. Figure 1 – Le pavage de gauche ne respecte pas les conditions 2 et 3 du problème (par exemple, l’arête en gras n’intersecte qu’à moitié l’arête supérieure). Le pavage de droite est correct. R. Kenyon propose un algorithme qui résout ce problème en temps quadratique, et construit un pavage valide le cas échéant. Il démontre également que tous les pavages possibles sont équivalents à rotations près. Enfin, différents résultats de NP-complétude sont établis (pavage par des polygones, des triangles ou des trapèzes ; pavage d’une zone comportant un trou). 1 2 Contexte et état de l’art Notons tout d’abord que le travail mené dans [Ken93] est très similaire à celui présenté dans [KS92]. L’algorithme développé dans ce dernier est cependant conçu pour une version légèrement différente du Problème 1. Nous comparerons les deux approches dans la suite du rapport. Plusieurs résultats de calculabilité existent concernant le pavage d’un plan infini. Berger prouva par exemple dans [Ber66] que ce problème est indécidable pour un ensemble fini de tuiles. Une preuve alternative de ce résultat, issue de [Rob71], peut être adaptée au cas de la recherche d’un pavage périodique. Concernant le pavage d’une région polygonale (éventuellement trouée), les problématiques abordées concernent la NP-complétude, la recherche d’un pavage minimal (i.e. utilisant le moins de tuiles possible) et le développement d’algorithmes de pavage efficaces. Le pavage d’une surface polygonale par un ensemble fini prédéterminé de tuiles est NP-complet ([GJ79]). Ce n’est cependant plus le cas pour certaines variantes de ce problème, notamment lorsqu’une infinité de tuiles différentes est disponible. B. Chazelle propose par exemple un algorithme linéaire ([Cha91]) pour trianguler n’importe quel polygone simple. Des algorithmes quadratiques existent aussi pour les trapézoïdes ou les rectangles horizontaux, voir respectivement [AAI86] et [KK92]. L’article étudié ici obtient un résultat identique pour les parallélogrammes. Il est intéressant de constater que le pavage d’une région polygonale trouée redevient un problème NP-complet dans la plupart des cas précédents. Ceci a par exemple été démontré pour les trapézoïdes ([AAI86]) et les rectangles ([J.M91]). Nous verrons que c’est également le cas pour les parallélogrammes. Enfin, le pavage d’une surface finie par des polygones élémentaires (triangles, losanges...) connaît une utilité pratique en traitement de l’image et en modélisation par exemple. 3 Algorithme de pavage par des parallélogrammes Nous présentons sommairement l’algorithme exposé dans [Ken93]. 3.1 Recherche d’une correspondance valide L’idée principale des algorithmes détaillés dans [Ken93] et [KS92] est de constater que tout pavage d’une surface polygonale implique un appariement naturel entre arêtes de P . En effet, partant d’un arête quelconque e de P , il existe une (unique) chaîne de parallélogrammes adjacents, qui ont tous deux côtés identiques à e et qui rejoignent une autre arête e0 située sur un bord opposé. Figure 2 – En gras, la chaîne de parallélogrammes qui apparie e et e0 . On oriente dorénavant P dans le sens antihoraire. Un appariement est ainsi une paire (e, e0 ) telle que e et e0 ont même longueur, même direction, et sont de sens opposés. Une correspondance est un ensemble d’appariements disjoints contenant toutes les arêtes de P . Il est facile de constater que tout pavage correct de P implique une correspondance particulière (obtenue en suivant les chaînes de parallélogrammes). On dit également que deux paires (e1 , e01 ) et (e2 , e02 ) d’une correspondance se croisent s’il n’est pas possible de tracer deux chemins (dans la surface polygonale) qui relient e1 à e01 , et e2 à e02 , sans s’intersecter. Figure 3 – Correspondance entre arêtes. Les paires (e1 , e01 ) et (e2 , e02 ) se croisent. 2 L’objectif est de déterminer l’ensemble de propriétés que doit vérifier une correspondance pour qu’il existe un pavage qui la réalise (i.e. les appariements impliqués par les chaînes de parallélogrammes du pavage sont exactement ceux de la correspondance). Par exemple, s’il est possible de réaliser la correspondance de la Figure 3, alors les deux chaînes de parallélogrammes associées aux paires (e1 , e01 ) et (e2 , e02 ) devront forcément s’intersecter selon un parallélogramme [e1 , e01 , e2 , e02 ] (voir un exemple Figure 4). Cette observation sur les croisements permet d’établir plusieurs conditions nécessaires. Figure 4 – Illustration d’un pavage qui réalise le croisement entre (e1 , e01 ) et (e2 , e02 ). Définition 1. Une correspondance est valide si elle vérifie les deux conditions suivantes : 1. Pour toutes paires (e1 , e01 ) et (e2 , e02 ), si e1 et e2 ont même longueur et même direction alors les deux couples ne se croisent pas. 2. Pour toute paire (e, e0 ), il existe un chemin "croissant" (dans la surface polygonale) qui relie les deux arêtes (i.e. e et e0 peuvent se “voir” à l’intérieur de P ). Figure 5 – Deux exemples ne respectant pas respectivement les conditions 1 et 2 de la Définition 1. Toute correspondance impliquée par un pavage correct est valide. R. Kenyon démontre alors le résultat suivant : Proposition 2 (section 2.1 de [Ken93]). Tout polygone P admet au plus une correspondance valide. Éléments de preuve. La preuve présentée dans [Ken93] est constructive. On détermine d’abord l’ensemble des paires qui se “voient” (cf condition 2 de la Définition 1), en construisant une triangulation de P (algorithme linéaire de [Cha91] par exemple). Ensuite, la correspondance est obtenue en étudiant la hauteur à laquelle chaque arête est placée dans le polygone. 3.2 Correspondance à périphérie monotone et construction d’un pavage Lorsque deux paires (e1 , e01 ) et (e2 , e02 ) se croisent, avec e2 entre e1 et e01 (P parcouru dans le sens antihoraire), on dit que le croisement est convexe si l’angle (orienté) entre e1 et e2 est inférieur à 180° : Cette condition est rendue nécessaire par le fait que l’intersection entre deux chaînes reliant e1 à e01 et e2 à e02 doit former un parallélogramme [e1 , e2 , e01 , e02 ] (cf Figure 4). Définition 3. Une correspondance est à périphérie monotone si toutes ses paires croisées sont convexes. 3 La correspondance illustrée Figure 3 est à périphérie monotone. R. Kenyon déduit de cette caractéristique la propriété suivante : Proposition 4 (théorème 3 de [Ken93]). P admet une correspondance à périphérie monotone si et seulement s’il existe un pavage par des parallélogrammes qui réalise cette correspondance. Éléments de preuve. Le sens inverse de la preuve est évident. Le sens direct s’obtient par une démonstration constructive. On considère une paire (e, e0 ) qui croise toutes les autres paires ayant une arête entre e et e0 (P parcouru dans le sens antihoraire). On relie alors e et e0 par une chaîne de parallélogrammes adjacents aux arêtes situées entre e et e0 , puis on appelle récursivement l’algorithme sur le reste de la surface polygonale à paver. Dans l’exemple de la correspondance à périphérie monotone de la Figure 3, le raisonnement précédent peut s’appliquer à la paire (e2 , e02 ). Cela conduit au placement d’une chaîne de parallélogrammes adjacents aux arêtes inférieures du parallélogramme, illustré Figure 6 (à gauche). Une seconde étape de l’algorithme, appliquée sur la sous-surface polygonale restante, conduit au pavage final (à droite, Figure 6). Figure 6 – Exécution de l’algorithme de la Proposition 4 sur la correspondance de la Figure 3. Toute correspondance à périphérie monotone étant aussi valide (puisqu’il existe un pavage correct la réalisant), il existe donc au plus une correspondance à périphérie monotone possible (d’après la Proposition 2). Afin de paver une surface polygonale délimitée par P , il suffit donc de rechercher l’unique correspondance valide potentielle (Proposition 2) puis d’essayer de la paver selon l’algorithme de la Proposition 4. L’algorithme global s’exécute en temps quadratique (cf section 2.1 de [Ken93]). 4 Autres résultats Nous présentons brièvement les autres résultats détaillés dans [Ken93]. 4.1 Ensemble des pavages possibles et rotations Tout polygone admet au plus une correspondance à périphérie monotone (Proposition 4). Cependant, il peut exister plusieurs pavages possibles comme en témoigne la Figure 7. Figure 7 – Deux pavages corrects associés à la correspondance à périphérie monotone de la Figure 3. Il est aisé de constater que tous les pavages possibles contiennent le même nombre de tuiles. En effet, chaque tuile correspond exactement à l’intersection de deux chaînes de parallélogrammes associées à deux paires (e1 , e01 ) et (e2 , e02 ) qui se croisent. R. Kenyon démontre alors par récurrence sur le nombre de tuiles que tous les pavages possibles s’obtiennent en effectuant des rotations autour des points intérieurs adjacents à trois parallélogrammes. 4.2 Définition alternative d’un "pavage" [Ken93] et [KS92] présentent de grandes similarités dans leur travail. La plupart des concepts et résultats précédemment énoncés sont communs aux deux articles (par exemple, la Proposition 4 et sa 4 preuve correspondent au théorème 1 de [KS92]). La preuve de la Proposition 2 se conclut toutefois différemment dans [KS92], en résolvant un problème de flot dans un arbre. Cependant, contrairement au Problème 1 étudié dans [Ken93], les auteurs de [KS92] autorisent les intersections partielles entre arêtes (les deux exemples de la Figure 1 sont alors valides). Le travail présenté dans [Ken93] peut toutefois s’adapter à ce cas. Il suffit en effet d’ajouter certains sommets au contour de P pour que les deux problèmes deviennent équivalents. Cela peut cependant conduire à obtenir n2 sommets (au lieu des n initiaux), et donc une complexité en O(n4 ). Dans ce cas-là, il est plus intéressant d’utiliser directement l’algorithme de [KS92] qui reste quadratique. 4.3 NP-complétude Différents résultats de NP-complétude ont déjà été décrits Partie 2. R. Kenyon présente également un corollaire direct à [GJ79] : Corollaire 5. Soit Ω un ensemble de tuiles polygonales de surfaces supérieures à un, et comportant chacune O(n) arêtes. Si P est un polygone simple d’aire O(nk ) et avec O(n) arêtes, alors paver P par des tuiles de Ω est un problème NP-complet. [Ken93] démontre que ce résultat persiste lorsque Ω comporte uniquement des triangles, ou des trapézoïdes. En effet, dans le premier cas on peut effectuer une réduction depuis le Corollaire 5 en découpant chaque polygone en triangles qui devront forcément se réemboiter dans le pavage final. L’auteur réduit ensuite ce résultat au deuxième cas, en découpant cette fois-ci chaque tuile triangulaire en trapézoïdes. Par ailleurs, le Problème 1 devient NP-complet si le pavage comporte des trous. La preuve s’effectue par réduction depuis le problème SUBSET-SUM. Elle consiste à placer un trou carré au centre d’un polygone convexe bien choisi, afin que tout pavage valide contienne une chaîne depuis ce trou jusqu’à une arête prédéterminée du bord. Les longueurs des parallélogrammes de cette chaîne constituent alors la réponse à l’instance de SUBSET-SUM considérée. 5 Conclusion Nous avons présenté dans ce rapport quelques résultats établis dans [Ken93] concernant le pavage d’une région polygonale par des parallélogrammes. L’algorithme quadratique proposé par R. Kenyon a notamment été esquissé. Bien que l’on sache construire l’ensemble des pavages possibles (section 4.1), il ne semble pas exister de manière de les dénombrer. Par ailleurs, il reste à trouver une caractérisation précise des types de tuiles pour lesquels des algorithmes polynomiaux de pavage existent. Références [AAI86] Takao Asano, Tetsuo Asano, and Hiroshi Imai. Partitioning a polygonal region into trapezoids. J. ACM, 33(2) :290–312, April 1986. [Ber66] Robert Berger. The Undecidability of the Domino Problem. American Mathematical Society, 1966. [Cha91] Bernard Chazelle. Triangulating a simple polygon in linear time. Discrete Comput. Geom., 6(5) :485–524, August 1991. [GJ79] Michael R. Garey and David S. Johnson. Computers and Intractability : A Guide to the Theory of NP-Completeness. W. H. Freeman & Co., New York, NY, USA, 1979. [J.M91] J.M.Robson. Sur le pavage de figures du plan par des barres. Actes des journées polyominos et pavages, pages 95–103, 1991. [Ken93] Richard Kenyon. Tiling a polygon with parallelograms. Algorithmica, 9(4) :382–397, 1993. [KK92] Claire Kenyon and Richard Kenyon. Tiling a polygon with rectangles. In Proc. 33rd Symp. Foundations of Computer Science, pages 610–619, 1992. [KS92] Sampath Kannan and Danny Soroker. Tiling polygons with parallelograms. Discrete & Computational Geometry, 7(2) :175–188, 1992. [Rob71] RaphaelM. Robinson. Undecidability and nonperiodicity for tilings of the plane. Inventiones mathematicae, 12(3) :177–209, 1971. 5