stringtranslate.com

Prueba de planaridad

En teoría de grafos , el problema de prueba de planaridad es el problema algorítmico de probar si un grafo dado es un grafo planar (es decir, si se puede dibujar en el plano sin intersecciones de aristas). Este es un problema bien 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) en el grafo, que es asintóticamente óptimo . En lugar de ser simplemente un único valor booleano, la salida de un algoritmo de prueba de planaridad puede ser una incrustación de grafo planar , si el grafo es planar, o un obstáculo para la planaridad, como un subgrafo de Kuratowski, si no lo es.

Criterios de planaridad

Los algoritmos de prueba de planaridad generalmente aprovechan los teoremas de la teoría de grafos que caracterizan el conjunto de grafos planares en términos que son 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 gráfico dado, puede estar seguro de que el gráfico de entrada no es planar y regresar sin cálculos adicionales.

Otros criterios de planaridad, que caracterizan matemáticamente a los gráficos planares pero que son menos centrales 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 rutas de Hopcroft y Tarjan [1] fue el primer algoritmo de prueba de planaridad en 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 de orden de borde cíclico para incrustaciones planas de componentes biconectados.

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 añadiendo vértices uno a la vez a esta estructura de datos. Estos métodos comenzaron con un método O( n 2 ) ineficiente 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 de postorden del árbol de búsqueda en profundidad de los vértices. [10]

Método de adición de bordes

En 2004, John Boyer y Wendy Myrvold [11] desarrollaron un algoritmo O( n ) simplificado , originalmente inspirado 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 última generación actuales (el otro es el algoritmo de prueba de planaridad de de Fraysseix, Ossona de Mendez y Rosenstiehl [12] [13] ). Consulte [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 linealmente dependiente del tamaño de 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. Williamson desarrolló algoritmos que ubican un subgrafo de Kuratowski en tiempo lineal en los vértices 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 de manera incremental incrustaciones planas de cada componente 3-conectado de G (y, por lo tanto, una incrustación plana de G en sí). [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 dichos grafos tienen una incrustación única (hasta el giro y la 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 solo probar en cada paso si el siguiente borde agregado tiene ambos extremos en la cara externa de la incrustación actual. Si bien esto es conceptualmente muy simple (y brinda un tiempo de ejecución lineal), el método en sí mismo sufre 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) a medida que el grafo sufre actualizaciones locales, típicamente en forma de inserción/eliminación de aristas. En el caso de llegada de aristas, existe un algoritmo de tiempo de actualización de función de Ackermann inversa asintóticamente ajustado debido a La Poutré, [20] que mejora los algoritmos de Di Battista, Tamassia y Westbrook. [21] [22] [23] En el caso completamente dinámico donde se insertan y eliminan aristas, existe un límite inferior de tiempo de actualización logarítmico de Pătrașcu y Demaine , [24] y un algoritmo de tiempo de actualización polilogarítmico de Holm y Rotenberg, [25] que mejora 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), "Pruebas de planaridad eficientes", 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). Pruebas de planaridad mediante adición de trayectorias (Ph.D.). Universidad de Kent. Archivado desde el original el 5 de marzo de 2016.URL alternativa
  6. ^ Lempel, A .; Even, S .; Cederbaum, I. (1967), "Un algoritmo para la prueba de planaridad de grafos", en Rosenstiehl, P. (ed.), Theory of Graphs , Nueva York: Gordon and Breach, págs. 215–232.
  7. ^ Even, Shimon ; Tarjan, Robert E. (1976), "Computación de una numeración st ", 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 LEDA de muchos otros algoritmos de planaridad de tiempo O( n )”.
  9. ^ Chiba, N.; Nishizeki, T .; Abe, A.; Ozawa, T. (1985), "Un algoritmo lineal para incrustar gráficos planares utilizando á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), "A la vanguardia: planaridad O(n) simplificada mediante la 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), "Deje de preocuparse por las P y las Q: implementación de un algoritmo rápido y simple de prueba e incrustación de planaridad basado en DFS", Proc. 11th Int. Symp. Graph Drawing (GD '03) , Lecture Notes in Computer Science , vol. 2912, Springer-Verlag, págs. 25–36
  15. ^ Chimani, M.; Mutzel, P .; Schmidt, JM (2008). "Extracción eficiente de múltiples subdivisiones de Kuratowski". Proc. 15th Int. Symp. Graph Drawing (GD'07) . Apuntes de clase en informática. Vol. 4875. Sídney, Australia: Springer-Verlag. págs. 159–170. doi :10.1007/978-3-540-77537-9_17. ISBN 978-3-540-77536-2..
  16. ^ ab "OGDF - Marco de dibujo de gráficos abiertos: Inicio".
  17. ^ "Biblioteca de gráficos Boost: pruebas/incrustaciones 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), "La secuencia de Mondshein", 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, págs. 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 incremental", 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 triconectados con árboles SPQR", Algorithmica , 15 (4): 302–318, doi :10.1007/BF01961541, S2CID  7838334
  22. ^ Tamassia, Roberto (1996), "Incorporación de grafos planares en línea", Journal of Algorithms , 21 (2): 201–239, doi :10.1006/jagm.1996.0044
  23. ^ Westbrook, Jeffery (1992), "Pruebas rápidas de planaridad incremental", Autómatas, lenguajes y programación, 19.º Coloquio internacional, ICALP92 , doi :10.1007/3-540-55719-9_86
  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, S2CID2121130 ​
  25. ^ Holm, Jacob; Rotenberg, Eva (2020). "Pruebas de planaridad completamente dinámicas 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.
  26. ^ Eppstein, David; Galil, Zvi; Italiano, Giuseppe; Spencer, Thomas (1996), "Esparcimiento basado 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 completamente dinámicas con aplicaciones", Journal of the ACM , 46 : 28–91, doi : 10.1145/300515.300517 , S2CID  7009330