En théorie des graphes, le problème du test de planarité est le problème algorithmique qui consiste à tester si un graphe donné est un graphe planaire (c'est-à-dire s'il peut être dessiné dans le plan sans intersection d'arêtes). Il s'agit d'un problème bien étudié en informatique pour lequel de nombreux algorithmes pratiques ont été donnés, souvent en décrivant de nouvelles structures de données. La plupart de ces méthodes fonctionnent en temps O(n) (temps linéaire), où n est le nombre d'arêtes (ou de sommets) du graphe, ce qui est asymptotiquement optimal. La sortie d'un algorithme de test de planarité, plutôt que d'être simplement une valeur booléenne (le graphe est-il planaire, oui ou non ?), peut être un plongement du graphe dans le plan si le graphe est planaire, ou la donnée d'un obstacle à la planarité tel qu'un sous-graphe de Kuratowski s'il ne l'est pas.

Critères de planarité

modifier
Les graphes K3,3 et K5.

Les algorithmes de test de planarité tirent généralement parti des théorèmes de la théorie des graphes qui caractérisent l'ensemble des graphes planaires en termes indépendants du dessin de graphes. Ces critères comprennent notamment :

Le critère de planarité de Fraysseix-Rosenstiehl peut être utilisé directement dans le cadre des algorithmes de test de planarité, tandis que les théorèmes de Kuratowski et Wagner sont des applications indirectes : si un algorithme peut trouver une copie de K5 ou K3,3 dans un graphe donné, cela prouve que le graphe d'entrée n'est pas planaire et il retourne sans calcul supplémentaire.

D'autres critères de planarité, qui caractérisent mathématiquement les graphes planaires mais sont moins centraux pour les algorithmes de test de planarité, comprennent :

Algorithmes

modifier

Méthode d'addition de chemins

modifier

La méthode maintenant classique d'addition de chemins de Hopcroft et Tarjan été le premier algorithme de test de planarité en temps linéaire publié en 1974[1]. Robert Cori a décrit l'historique et les principes de cet algorithme dans un article paru en 2014 dans le Bulletin de la société informatique de France[2] où il mentionne l'activité française dans ce domaine à peu près à la même époque. Une implémentation des algorithmes de Hopcroft et Tarjan est fournie dans la Library of Efficient Data types and Algorithms (en) de Mehlhorn, Mutzel et Näher[3],[4]. En 2012, Taylor[5] a étendu cet algorithme pour générer toutes les permutations d'ordre cyclique des arêtes pour les plongements planaires de composantes biconnexes.

Méthode d'addition de sommets

modifier

Les méthodes d'addition de sommets opèrent en maintenant une structure de données représentant les plongements possibles d'un sous-graphe induit du graphe donné, et en ajoutant les sommets un par un à cette structure de données. Ces méthodes ont commencé avec une méthode en O (n 2) conçue par Lempel, Even et Cederbaum en 1967[6]. Elle a été améliorée par Even et Tarjan[7] en 1976, qui ont trouvé une solution en temps linéaire pour l'étape de numérotation st, et par Booth et Lueker[8], qui ont développé la structure de données d'arbre PQ. Avec ces améliorations, l'algorithme est linéaire et surpasse la méthode d'addition de chemins dans la pratique[9] . Cette méthode a également été étendue pour permettre un calcul efficace d'un plongement planaire (dessin) d'un graphe planaire[10] . En 1999, Shih et Hsu ont simplifié ces méthodes en utilisant un arbre PC (une variante non enracinée des arbres PQ) et un parcours d'arbre postfixe de l'arbre de recherche en profondeur des sommets[11].

Méthode d'addition d'arêtes

modifier

En 2004, John Boyer et Wendy Myrvold[12] ont développé un algorithme simplifié en temps linéaire, inspiré à l'origine de la méthode de l'arbre PQ, qui se libère de l'arbre PQ et utilise des adjonctions d'arêtes pour calculer un plongement planaire, s'il existe. Sinon, une subdivision de Kuratowski (de K 5 ou K 3,3 ) est calculée. Il s'agit de l'un des deux algorithmes les plus récents (l'autre est l'algorithme de test de planarité de de Fraysseix, de Mendez et Rosenstiehl[13]. Le test de Boyer-Myrvold a été étendu pour extraire plusieurs subdivisions de Kuratowski d'un graphe d'entrée non planaire en un temps d'exécution linéairement dépendant de la taille de sortie[14]. Le code source du test de planarité [15],[16] et de l'extraction des subdivisions de Kuratowski est public. Un autre algorithme est donné par Bernhard Haeupler et Robert E. Tarjan[17]. D'autres algorithmes qui localisent un sous-graphe de Kuratowski en temps linéaire ont été développés par Williamson dans les années 1980[18].

Méthode de séquence de construction

modifier

Une méthode différente utilise une construction inductive de graphes 3-connexes pour construire de façon incrémentale des plongements planaires de chaque composante 3-connexe du graphe donné (et donc un plongement planaire du graphe lui-même)[19]. La construction commence par K4 et est définie de telle manière que chaque graphe intermédiaire vers une composante complète est à nouveau 3-connexe. Étant donné que ces graphes ont un plongement unique (au retournement et au choix de la face externe près), le graphe suivant, s'il est toujours planaire, doit être un raffinement du graphe précédent. Cela permet de réduire le test de planéité au test, à chaque étape, si l'arête suivante ajoutée a ses deux extrémités sur la face externe du plongement courant. Bien que conceptuellement très simple (et en temps linéaire), la méthode elle-même est compliquée par la difficulté de trouver la séquence de construction.

Variantes et extensions

modifier

La recherche continue à être active sur des variantes, concernant à la fois la parallélisation et la distribution sur plusieurs sites, et sur des familles particulières de graphes; voici un échantillon :

  • Giuseppe Liotta, Ignaz Rutter et Alessandra Tappini, « Simultaneous FPQ-Ordering and Hybrid Planarity Testing », SOFSEM,‎ , p. 617-626.
  • Seok-Hee Hong et Hiroshi Nagamochi, « A linear-time algorithm for testing full outer-2-planarity », Discret. Appl. Math., vol. 255,‎ , p. 234-257.
  • Guy Barshap et Tamir Tassa, « Privacy-Preserving Planarity Testing of Distributed Graphs », Trans. Data Priv., vol. 12, no 2,‎ , p. 117-144.

Un autre sujet est la variante dynamique des algorithmes : tester la planarité d'un graphe qui évolue par adjonction et suppression de sommets ou d'arêtes : Étant donné un graphe dynamique, sujet à des insertions et des suppressions d'arêtes, la question est de savoir si le graphe admet couramment une représentation planaire. Les auteurs donnent un algorithme déterministe entièrement dynamique pour les graphes généraux, fonctionnant en temps amorti par insertion ou suppression d'arêtes, qui maintient un bit indiquant si le graphe est actuellement planaire ou non. C'est une amélioration du meilleur algorithme précédent, de 1996, et dû à Eppstein, Galil, Italiano, Spencer qui demande un temps amorti par mise à jour.

  • David Eppstein, Zvi Galil, Giuseppe F. Italiano et Thomas H. Spencer, « Separator Based Sparsification: I. Planarity Testing and Minimum Spanning Trees », Journal of Computer and Systems Sciences, vol. 52, no 1,‎ , p. 3-27
  • Zvi Galil, Giuseppe F. Italiano et Neil Sarnak, « Fully Dynamic Planarity Testing with Applications », Journal of the ACM, vol. 46, no 1,‎ , p. 28-91
  • Jacob Holm et Eva Rotenberg, « Fully-dynamic planarity testing in polylogarithmic time », STOC 2020: Proceedings of the 52nd Annual ACM SIGACT Symposium on Theory of Computing,‎ , p. 167–180 (DOI 10.1145/3357713.3384249)

Une présentation est donnée dans Quanta Magazine[20]

Notes et références

modifier
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Planarity testing » (voir la liste des auteurs).
  1. John Hopcroft et Robert E. Tarjan, « Efficient planarity testing », Journal of the Association for Computing Machinery, vol. 21, no 4,‎ , p. 549–568 (DOI 10.1145/321850.321852, hdl 1813/6011 Accès libre).
  2. Robert Cori, « L'algorithme de test de planarité de R. E. Tarjan », 1024– Bulletin de la société informatique de France, no 4,‎ , p. 55-65 (ISSN 2270-1419, lire en ligne, consulté le ).
  3. Kurt Mehlhorn et Petra Mutzel, « On the Embedding Phase of the Hopcroft and Tarjan Planarity Testing Algorithm », Algorithmica, vol. 16, no 2,‎ , p. 233–242 (DOI 10.1007/bf01940648, hdl 11858/00-001M-0000-0014-B51D-B Accès libre)
  4. Kurt Mehlhorn et Stefan Näher, « LEDA: A library of efficient data types and algorithms », Communications of the ACM, vol. 38, no 1,‎ , p. 96–102 (DOI 10.1145/204865.204889, CiteSeerx 10.1.1.54.9556)
  5. Martyn G. Taylor, Planarity Testing by Path Addition, University of Kent, (lire en ligne) — Thèse de Ph. D.
  6. Abraham Lempel, Shimon Even et I. Cederbaum, « An algorithm for planarity testing of graphs », dans Pierre Rosenstiehl, Theory of Graphs, New York, Gordon and Breach, , p. 215–232.
  7. Shimon Even et Robert E. Tarjan, « Computing an st-numbering », Theoretical Computer Science, vol. 2, no 3,‎ , p. 339–344 (DOI 10.1016/0304-3975(76)90086-4).
  8. Kellogg S. Booth et George S. Lueker, « Testing for the Consecutive Ones Property, Interval Graphs, and Graph Planarity Using PQ-Tree Algorithms », J. Comput. Syst. Sci., vol. 13, no 3,‎ , p. 335-379.
  9. Boyer et Myrvold 2004, p. 243: “Its implementation in LEDA is slower than LEDA implementations of many other O(n)-time planarity algorithms.”
  10. Norishige Chiba, Takao Nishizeki, Shigenobu Abe et Takao Ozawa, « A linear algorithm for embedding planar graphs using PQ–trees », Journal of Computer and System Sciences, vol. 30, no 1,‎ , p. 54–76 (DOI 10.1016/0022-0000(85)90004-2).
  11. Wei-Kuan Shih Shih et Wen-Lian Hsu, « A new planarity test », Theoretical Computer Science, vol. 223, nos 1–2,‎ , p. 179–191 (DOI 10.1016/S0304-3975(98)00120-0).
  12. John M. Boyer et Wendy J. Myrvold, « On the cutting edge: simplified O(n) planarity by edge addition », Journal of Graph Algorithms and Applications, vol. 8, no 3,‎ , p. 241–273 (DOI 10.7155/jgaa.00091, lire en ligne).
  13. Hubert de Fraysseix, Patrice Ossona de Mendez et Pierre Rosenstiehl, « Trémaux Trees and Planarity », International Journal of Foundations of Computer Science, vol. 17, no 5,‎ , p. 1017–1030 (DOI 10.1142/S0129054106004248, arXiv math/0610935).
  14. Markus Chimani, Petra Mutzel et Jens M. Schmidt, « Efficient extraction of multiple Kuratowski subdivisions », Symposium on Graph Drawing (GD'07), Sydney, Australia, Springer-Verlag,‎ , p. 159–170.
  15. « OGDF - Open Graph Drawing Framework: Start »
  16. « Boost Graph Library: Boyer-Myrvold Planarity Testing/Embedding - 1.40.0 »
  17. Bernhard Haeupler et Robert E. Tarjan, « Planarity Algorithms via PQ-Trees (Extended Abstract) », Electronic Notes in Discrete Mathematics, vol. 31,‎ , p. 143–149 (DOI 10.1016/j.endm.2008.06.029)
  18. S. G. Williamson, « Depth First Search and Kuratowski Subgraphs », Journal of the ACM, vol. 31, no 4,‎ , p. 681–693 (DOI 10.1145/1634.322451).
  19. Jens M. Schmidt, « The Mondshein Sequence », Proceedings of the 41st International Colloquium on Automata, Languages and Programming (ICALP'14),‎ , p. 967–978 (ISBN 978-3-662-43947-0, DOI 10.1007/978-3-662-43948-7_80).
  20. Stephanie DeMarco, « A New Algorithm for Graph Crossings, Hiding in Plain Sight », (consulté le ).