Articulo de referencia

Pruebas de planitud

En teoría de grafos , el problema de la prueba de planaridad es el problema algorítmico de comprobar si un grafo dado es planar (es decir, si se puede dibujar en el plano sin in...

En teoría de grafos , el problema de la prueba de planaridad es el problema algorítmico de comprobar si un grafo dado es planar (es decir, si se puede dibujar en el plano sin intersecciones de aristas). Este es un problema ampliamente estudiado en informática para el que han surgido muchos algoritmos prácticos , muchos de los cuales aprovechan nuevas estructuras de datos . La mayoría de estos métodos operan en tiempo O ( n ) (tiempo lineal), donde n es el número de aristas (o vértices) del grafo, que es asintóticamente óptimo . En lugar de ser simplemente un único valor booleano, el resultado de un algoritmo de prueba de planaridad puede ser una incrustación de grafo planar , si el grafo es planar, o un obstáculo a la planaridad, como un subgrafo de Kuratowski, si no lo es.

Criterios de planitud

Los algoritmos de prueba de planaridad suelen aprovechar teoremas de la teoría de grafos que caracterizan el conjunto de grafos planares en términos independientes de los dibujos de grafos. Estos incluyen:

El criterio de planaridad de Fraysseix-Rosenstiehl se puede utilizar directamente como parte de algoritmos para pruebas de planaridad, mientras que los teoremas de Kuratowski y Wagner tienen aplicaciones indirectas: si un algoritmo puede encontrar una copia de K 5 o K 3,3 dentro de un grafo dado, puede estar seguro de que el grafo de entrada no es planar y regresar sin cálculos adicionales.

Otros criterios de planaridad, que caracterizan matemáticamente los grafos planares pero que son menos importantes para los algoritmos de prueba de planaridad, incluyen:

Algoritmos

Método de adición de rutas

El método clásico de adición de caminos de Hopcroft y Tarjan [ 1 ] fue el primer algoritmo de prueba de planaridad de tiempo lineal publicado en 1974. Una implementación del algoritmo de Hopcroft y Tarjan se proporciona en la Biblioteca de tipos de datos y algoritmos eficientes de Mehlhorn , Mutzel y Näher . [ 2 ] [ 3 ] [ 4 ] En 2012, Taylor [ 5 ] extendió este algoritmo para generar todas las permutaciones del orden de aristas cíclicas para incrustaciones planas de componentes biconexas.

Método de adición de vértices

Los métodos de adición de vértices funcionan manteniendo una estructura de datos que representa las posibles incrustaciones de un subgrafo inducido del grafo dado, y agregando vértices uno por uno a esta estructura de datos. Estos métodos comenzaron con un método ineficiente O( ) concebido por Lempel , Even y Cederbaum en 1967. [ 6 ] Fue mejorado por Even y Tarjan, quienes encontraron una solución de tiempo lineal para el paso de numeración s , t , [ 7 ] y por Booth y Lueker , quienes desarrollaron la estructura de datos del árbol PQ . Con estas mejoras, es de tiempo lineal y supera al método de adición de caminos en la práctica. [ 8 ] Este método también se extendió para permitir que una incrustación planar (dibujo) se calcule de manera eficiente para un grafo planar. [ 9 ] En 1999, Shih y Hsu simplificaron estos métodos utilizando el árbol PC (una variante sin raíz del árbol PQ) y un recorrido en postorden del árbol de búsqueda en profundidad de los vértices. [ 10 ]

Método de adición de aristas

En 2004, John Boyer y Wendy Myrvold [ 11 ] desarrollaron un algoritmo O( n ) simplificado, inspirado originalmente en el método del árbol PQ, que elimina el árbol PQ y utiliza adiciones de aristas para calcular una incrustación planar, si es posible. De lo contrario, se calcula una subdivisión de Kuratowski (de K 5 o K 3,3 ). Este es uno de los dos algoritmos de vanguardia actuales (el otro es el algoritmo de prueba de planaridad de de Fraysseix, Ossona de Méndez y Rosenstiehl [ 12 ] [ 13 ] ). Véase [ 14 ] para una comparación experimental con una versión preliminar de la prueba de planaridad de Boyer y Myrvold. Además, la prueba de Boyer-Myrvold se extendió para extraer múltiples subdivisiones de Kuratowski de un grafo de entrada no planar en un tiempo de ejecución que depende linealmente del tamaño de la salida. [ 15 ] El código fuente para la prueba de planaridad [ 16 ] [ 17 ] y la extracción de múltiples subdivisiones de Kuratowski [ 16 ] está disponible públicamente. Los algoritmos que localizan un subgrafo de Kuratowski en tiempo lineal en vértices fueron desarrollados por Williamson en la década de 1980. [ 18 ]

Método de secuencia de construcción

Un método diferente utiliza una construcción inductiva de grafos 3-conectados para construir incrementalmente incrustaciones planas de cada componente 3-conectado de G (y por lo tanto una incrustación plana de G mismo). [ 19 ] La construcción comienza con K 4 y se define de tal manera que cada grafo intermedio en el camino hacia el componente completo es nuevamente 3-conectado. Dado que tales grafos tienen una incrustación única (salvo inversión y elección de la cara externa), el siguiente grafo más grande, si aún es planar, debe ser un refinamiento del grafo anterior. Esto permite reducir la prueba de planaridad a simplemente comprobar para cada paso si la siguiente arista agregada tiene ambos extremos en la cara externa de la incrustación actual. Si bien esto es conceptualmente muy simple (y da un tiempo de ejecución lineal), el método en sí sufre de la complejidad de encontrar la secuencia de construcción.

Algoritmos dinámicos

La prueba de planaridad se ha estudiado en el modelo de algoritmos dinámicos , en el que se mantiene una respuesta a un problema (en este caso, planaridad) mientras el grafo sufre actualizaciones locales, típicamente en forma de inserción/eliminación de aristas. En el caso de llegada de aristas, hay un algoritmo de tiempo de actualización de función de Ackermann inversa asintóticamente ajustado debido a La Poutré , [ 20 ] mejorando los algoritmos de Di Battista, Tamassia y Westbrook. [ 21 ] [ 22 ] [ 23 ] En el caso totalmente dinámico donde las aristas se insertan y eliminan, hay una cota inferior de tiempo de actualización logarítmica por Pătrașcu y Demaine , [ 24 ] y un algoritmo de tiempo de actualización polilogarítmico por Holm y Rotenberg , [ 25 ] mejorando los algoritmos de tiempo de actualización sublineales de Eppstein , Galil , Italiano , Sarnak y Spencer. [ 26 ] [ 27 ]

Referencias

  1. Hopcroft, John ; Tarjan, Robert E. (1974), "Efficient planarity testing", Journal of the Association for Computing Machinery , 21 (4): 549–568 , doi : 10.1145/321850.321852 , hdl : 1813/6011 , S2CID 6279825 .
  2. Mehlhorn, Kurt ; Mutzel, Petra (1996), "Sobre la fase de incrustación del algoritmo de prueba de planaridad de Hopcroft y Tarjan" (PDF) , Algorithmica , 16 (2): 233–242 , doi : 10.1007/bf01940648 , hdl : 11858/00-001M-0000-0014-B51D-B , S2CID 10014462 
  3. Mehlhorn, Kurt ; Mutzel, Petra ; Näher, Stefan (1993), Una implementación del algoritmo de prueba de planaridad e incrustación de Hopcroft y Tarjan
  4. Mehlhorn, Kurt ; Näher, Stefan (1995), "LEDA: Una biblioteca de tipos de datos y algoritmos eficientes", Communications of the ACM , 38 (1): 96–102 , CiteSeerX 10.1.1.54.9556 , doi : 10.1145/204865.204889 , S2CID 2560175  
  5. Taylor, Martyn G. (2012). Prueba de planaridad mediante adición de trayectorias (Tesis doctoral). Universidad de Kent. Archivado del original el 5 de marzo de 2016.URL alternativa
  6. Lempel, A. ; Even, S. ; Cederbaum, I. (1967), "Un algoritmo para la comprobación de planaridad de grafos", en Rosenstiehl, P. (ed.), Teoría de los grafos , Nueva York: Gordon and Breach, pp . 215–232 .
  7. Even, Shimon ; Tarjan, Robert E. (1976), "Computing an st -numbering", Theoretical Computer Science , 2 (3): 339–344 , doi : 10.1016/0304-3975(76)90086-4.
  8. Boyer y Myrvold (2004) , pág. 243: “Su implementación en LEDA es más lenta que las implementaciones en LEDA de muchos otrosalgoritmos de planaridad de tiempo O( n )”.
  9. Chiba, N.; Nishizeki, T .; Abe, A.; Ozawa, T. (1985), "Un algoritmo lineal para la incrustación de grafos planares mediante árboles PQ", Journal of Computer and System Sciences , 30 (1): 54–76 , doi : 10.1016/0022-0000(85)90004-2.
  10. Shih, WK; Hsu, WL (1999), "Una nueva prueba de planaridad", Theoretical Computer Science , 223 ( 1–2 ): 179–191 , doi : 10.1016/S0304-3975(98)00120-0.
  11. Boyer, John M.; Myrvold, Wendy J. (2004), "En la vanguardia: planaridad O( n ) simplificada mediante adición de aristas" (PDF) , Journal of Graph Algorithms and Applications , 8 (3): 241–273 , doi : 10.7155/jgaa.00091.
  12. de Fraysseix, H.; Ossona de Mendez, P. ; Rosenstiehl, P. (2006), "Árboles de trémaux y planaridad", International Journal of Foundations of Computer Science , 17 (5): 1017– 1030, arXiv : math/0610935 , Bibcode : 2006math.....10935D , doi : 10.1142/S0129054106004248 , S2CID 40107560 .
  13. Brandes, Ulrik (2009), La prueba de planaridad izquierda-derecha (PDF).
  14. Boyer, John M.; Cortese, PF; Patrignani, M.; Battista, GD (2003), "Deja de preocuparte por las P y las Q: implementación de un algoritmo rápido y sencillo de prueba de planaridad e incrustación basado en DFS", Actas del 11.º Simposio Internacional sobre Dibujo de Grafos (GD '03) , Lecture Notes in Computer Science , vol. 2912, Springer-Verlag, pp . 25–36  
  15. Chimani, M.; Mutzel, P. ; Schmidt, JM (2008). "Extracción eficiente de múltiples subdivisiones de Kuratowski". Actas del 15.º Simposio Internacional sobre Dibujo de Grafos (GD'07) . Lecture Notes in Computer Science. Vol. 4875. Sídney, Australia: Springer-Verlag. pp. 159–170 . doi : 10.1007/978-3-540-77537-9_17 . ISBN   978-3-540-77536-2..
  16. 1 2 "OGDF - Marco de dibujo de gráficos abiertos: Inicio" .
  17. "Biblioteca Boost Graph: Pruebas/Incrustación de planaridad de Boyer-Myrvold - 1.40.0" .
  18. Williamson, SG (1984), "Búsqueda en profundidad y subgrafos de Kuratowski", Journal of the ACM , 31 (4): 681– 693, doi : 10.1145/1634.322451 , S2CID 8348222 
  19. Schmidt, Jens M. (2014), "The Mondshein Sequence", Autómatas, Lenguajes y Programación; Actas del 41.º Coloquio Internacional sobre Autómatas, Lenguajes y Programación (ICALP'14) , Lecture Notes in Computer Science, vol. 8572, pp. 967–978 , doi : 10.1007/978-3-662-43948-7_80 , ISBN   978-3-662-43947-0
  20. La Poutré, Johannes A. (1994), "Algoritmos alfa para pruebas de planaridad incrementales", Actas del Vigésimo Sexto Simposio Anual de la ACM sobre Teoría de la Computación (STOC) , págs. 706–715 , doi : 10.1145/195058.195439 , S2CID 16799743  
  21. Di Battista, Giuseppe; Tamassia, Roberto (1996), "Mantenimiento en línea de componentes triconectadas con árboles SPQR", Algorithmica , 15 (4): 302–318 , doi : 10.1007/BF01961541 , S2CID 7838334 
  22. Tamassia, Roberto (1996), "On-line planar graph embedding", Journal of Algorithms , 21 (2): 201– 239, doi : 10.1006/jagm.1996.0044
  23. Westbrook, Jeffery (1992), "Fast Incremental Planarity Testing", Automata, Languages ​​and Programming, 19th International Colloquium, ICALP92 , Lecture Notes in Computer Science, vol. 623, pp. 342–353 , doi : 10.1007/3-540-55719-9_86 , ISBN   978-3-540-55719-7
  24. Pătrașcu, Mihai ; Demaine, Erik (2004), "Límites inferiores para la conectividad dinámica", Actas del decimocuarto simposio anual ACM-SIAM sobre algoritmos discretos , págs. 546–553 , doi : 10.1145/1007352.1007435 , ISBN  1581138520, S2CID 2121130 
  25. Holm, Jacob; Rotenberg, Eva (2020). "Prueba de planaridad totalmente dinámica en tiempo polilogarítmico". En Makarychev, Konstantin; Makarychev, Yury; Tulsiani, Madhur; Kamath, Gautam; Chuzhoy, Julia (eds.). Actas del 52.º Simposio Anual ACM SIGACT sobre Teoría de la Computación, STOC 2020, Chicago, IL, EE. UU., 22-26 de junio de 2020. Association for Computing Machinery. págs. 167–180 . arXiv : 1911.03449 . doi : 10.1145/3357713.3384249 . ISBN  978-1-4503-6979-4.
  26. Eppstein, David; Galil, Zvi; Italiano, Giuseppe; Spencer, Thomas (1996), "Esparsificación basada en separadores: I. Pruebas de planaridad y árboles de expansión mínima", Journal of Computer and System Sciences , doi : 10.1006/jcss.1996.0002
  27. Galil, Zvi; Italiano, Giuseppe; Sarnak, Neil (1999), "Pruebas de planaridad totalmente dinámicas con aplicaciones", Journal of the ACM , 46 : 28–91 , doi : 10.1145/300515.300517 , S2CID 7009330 
Obtenido de " https://en.wikipedia.org/w/index.php?title=Planarity_testing&oldid=1336627782 "