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 gráfico dado es un gráfico plano (es decir, si se puede dibujar en el plano sin intersecciones de bordes). Este es un problema bien estudiado en informática para el cual han surgido muchos algoritmos prácticos , muchos de los cuales aprovechan estructuras de datos novedosas . 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 gráfico, que es asintóticamente óptimo . En lugar de ser simplemente un valor booleano único, la salida de un algoritmo de prueba de planaridad puede ser una incrustación de gráfico plano , si el gráfico es plano, 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 suelen aprovechar los teoremas de la teoría de grafos que caracterizan el conjunto de gráficos planos en términos que son independientes de los dibujos de gráficos. Éstas 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 determinado, puede ser Asegúrese de que el gráfico de entrada no sea plano y regrese sin cálculos adicionales.

Otros criterios de planaridad, que caracterizan matemáticamente los gráficos planos pero que son menos centrales para los algoritmos de prueba de planaridad, incluyen:

Algoritmos

Método de adición de ruta

El método clásico de suma de rutas de Hopcroft y Tarjan [1] fue el primer algoritmo de prueba de planaridad en tiempo lineal publicado en 1974. Se proporciona una implementación del algoritmo de Hopcroft y Tarjan en la Biblioteca de algoritmos y tipos de datos eficientes de Mehlhorn , Mutzel y Naher. [2] [3] [4] En 2012, Taylor [5] amplió este algoritmo para generar todas las permutaciones de orden de aristas cíclicas para incrustaciones planas de componentes biconectados.

Método de suma de vértices

Los métodos de suma de vértices funcionan manteniendo una estructura de datos que representa las posibles incrustaciones de un subgrafo inducido del gráfico dado y agregando vértices uno por uno a esta estructura de datos. Estos métodos comenzaron con un método ineficiente O ( n 2 ) 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 rutas en la práctica. [8] Este método también se amplió para permitir que una incrustación plana (dibujo) se calcule de manera eficiente para un gráfico plano. [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 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 bordes para calcular una incrustación plana, 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 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 amplió para extraer múltiples subdivisiones de Kuratowski de un gráfico de entrada no plano en un tiempo de ejecución que depende linealmente 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 localizan 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 gráficos de 3 conexos para construir incrementalmente incrustaciones planas de cada componente de 3 conexos 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 gráfico intermedio en el camino hacia el componente completo sea nuevamente conexo 3. Dado que tales gráficos tienen una incrustación única (hasta el volteo y la elección de la cara externa), el siguiente gráfico más grande, si aún es plano, debe ser un refinamiento del gráfico anterior. Esto permite reducir la prueba de planaridad a simplemente 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 proporciona un tiempo de ejecución lineal), el método en sí adolece de la complejidad de encontrar la secuencia de construcción.

Algoritmos dinámicos

Las pruebas de planaridad se han 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 gráfico sufre actualizaciones locales, generalmente en forma de inserción/eliminación de aristas. En el caso de llegada de borde, 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 totalmente dinámico en el que se insertan y eliminan bordes, 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] mejorando los algoritmos de tiempo de actualización sublineal de Eppstein , Galil , Italiano , Sarnak y Spencer. [26] [27]

Referencias

  1. ^ Hopcroft, John ; Tarjan, Robert E. (1974), "Pruebas de planaridad eficiente", Revista de la Asociación de Maquinaria de Computación , 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), Implementación de la prueba de planaridad y algoritmo de incrustación de Hopcroft y Tarjan
  4. ^ Mehlhorn, Kurt ; Näher, Stefan (1995), "LEDA: una biblioteca de algoritmos y tipos de datos 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 rutas (Ph.D.). Universidad de Kent. Archivado desde el original el 5 de marzo de 2016.URL alternativa
  6. ^ Lempel, A .; Incluso, S. ; Cederbaum, I. (1967), "Un algoritmo para pruebas de planaridad de gráficos", en Rosenstiehl, P. (ed.), Teoría de los gráficos , Nueva York: Gordon and Breach, págs..
  7. ^ Incluso, Shimón ; Tarjan, Robert E. (1976), "Calcular una numeración st ", Ciencias de la Computación Teórica , 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 .; Una abeja.; Ozawa, T. (1985), "Un algoritmo lineal para incrustar gráficos planos 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", Informática teórica , 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 suma de bordes" (PDF) , Journal of Graph Algorithms and Applications , 8 (3): 241–273, doi : 10.7155/jgaa .00091.
  12. ^ de Fraysseix, H.; Ossona de Méndez, P .; Rosenstiehl, P. (2006), "Trémaux Trees and Planarity", Revista internacional de fundamentos de la informática , 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: implementar un algoritmo de incrustación y prueba de planaridad basado en DFS rápido y simple", Proc. 11° Int. Síntoma. Dibujo de gráficos (GD '03) , Apuntes de conferencias sobre informática , 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. 15° Int. Síntoma. Dibujo de Gráficos (GD'07) . Apuntes de conferencias sobre 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 Boost Graph: prueba/incrustación de planaridad de Boyer-Myrvold - 1.40.0".
  18. ^ Williamson, SG (1984), "Primera 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 ACM sobre teoría de la informática (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), "Incrustación de gráficos planos 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, XIX 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, S2CID  2121130
  25. ^ Holm, Jacob; Rothenberg, Eva (2020). "Prueba de planaridad totalmente dinámica en tiempo polilogarítmico". En Makarychev, Konstantin; Makarychev, Yuri; 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 al 26 de junio de 2020 . Asociación para Maquinaria de Computación. págs. 167–180. arXiv : 1911.03449 . doi :10.1145/3357713.3384249.
  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