¿Cuál es el algoritmo polinomial más simple para PLANARITY?

28

Hay varios algoritmos que deciden en tiempo polinómico si un gráfico se puede dibujar en el plano o no, incluso muchos con un tiempo de ejecución lineal. Sin embargo, no pude encontrar un algoritmo muy simple que uno pudiera explicar fácil y rápidamente en clase y mostrara que PLANARITY está en P. ¿Conoces alguno?

Si es necesario, puede usar el teorema de Kuratowski o Fary, pero no cosas profundas, como el teorema menor del gráfico. También tenga en cuenta que no me importa el tiempo de ejecución, solo quiero algo polinomial.

A continuación se muestran los 3 mejores algoritmos hasta el momento, que muestran una compensación simple / sin teoría profunda.

Algoritmo 1: Utilizando eso podemos verificar si un gráfico contiene un o un como menor en tiempo polinómico, obtenemos un algoritmo muy simple usando la teoría profunda. (Tenga en cuenta que esta teoría ya usa incrustaciones de gráficos, como lo señala Saeed, por lo que este no es un enfoque algorítmico real, solo algo simple para decirles a los estudiantes que ya sabían / ​​aceptaron el teorema menor del gráfico).K 3 , 3K5K3,3

Algoritmo 2 [basado en la respuesta de alguien]: es fácil ver que es suficiente para lidiar con gráficos conectados a 3. Para estos, encuentre una cara y luego aplique el teorema de primavera de Tutte.

Algoritmo 3 [recomendado por Juho]: algoritmo Demoucron, Malgrange y Pertuiset (DMP). Dibuje un ciclo, los componentes del gráfico restante se denominan fragmentos, los incrustamos de manera adecuada (mientras creamos nuevos fragmentos). Este enfoque no utiliza otros teoremas.

domotorp
fuente
1
Creo que muchos están de acuerdo en que el algoritmo de tiempo polinómico más simple es el algoritmo Demoucron, Malgrange y Pertuiset (DMP). Es un algoritmo que los libros de texto generalmente cubren (ver, por ejemplo, Gibbons 1985 o Bondy & Murty 1976). ¿Es suficiente simplemente decidir la planaridad, o el algoritmo también debería generar una inserción plana? IIRC, el documento SODA'99 de Boyer y Myrvold @joro probablemente se refiere a omitir detalles, especialmente en relación con la complejidad del tiempo.
Juho
2
Si solo desea que el problema de decisión ES PLANAR, ¿no son dos menores prohibidos cuya existencia puede verificarse en tiempo polinómico suficiente?
joro
2
@joro: Sí, por supuesto que sería una solución simple, pero preferiría evitar usar un teorema tan fuerte.
domotorp
1
Algoritmo que mencioné fue básicamente el algoritmo Auslander-Parter. El problema en mi algoritmo fue la parte 7 cuando dije que podemos bipartición gráfica de componentes. Podemos en el algoritmo original, pero en el algoritmo que dije que necesitábamos definiciones más precisas de los componentes y estaba fuera de mi interés explicarlo en detalle. La parte recursiva era claramente cierta (si podemos hacer el paso 7, entonces hemos terminado), donde dudas sobre su corrección. No actualicé mi respuesta porque vi que tendría alrededor de dos páginas y no puedo abreviarla más y no es bueno llamarlo simple.
Saeed
3
Reducir a 3 casos conectados es conceptualmente simple y debe explicarse en cualquier caso. Si no estamos demasiado interesados ​​en la eficiencia, se puede reducir fácilmente el caso a 3 conectados. Verifique todos los cortes de 2 nodos.
Chandra Chekuri

Respuestas:

6

Voy a describir un algoritmo. No estoy seguro de que califique como "fácil" y algunas de las pruebas no son tan fáciles.

Primero dividimos el gráfico en 3 componentes conectados, como lo menciona Chandra Chekuri.

  1. Divide el gráfico en componentes conectados.
  2. Divide cada componente conectado en 2 componentes conectados. Esto se puede hacer en tiempo polinómico comprobando para cada vértice de cada componente 2 conectado si está conectado.G i G i - vvGiGiv
  3. Divide cada componente conectado a 2 en componentes conectados a 3. Esto se puede hacer en tiempo polinómico comprobando dos vértices distintos de cada componente 2 conectado si está conectado.G i G i - { v , u }v,uGiGi{v,u}

Hemos reducido el problema a verificar si un componente del gráfico conectado a 3 es plano. Deje denotar un componente de 3 conectados.G

  1. Tome cualquier ciclo de .GCG
  2. Fija los vértices de como vértices de un polígono convexo. Coloque cada uno de los otros vértices en el baricentro de sus vecinos. Esto lleva a un sistema de ecuaciones lineales que indican las coordenadas de cada vértice. Deje ser el dibujo resultante; Puede tener cruces.DCD
  3. Si no tiene cruces, hemos terminado.D
  4. Tome los vértices en cualquier componente conectado de . La restricción de al subgrafo inducido debe ser plana. De lo contrario, no es plano. Tome cualquier cara en el dibujo restringido al subgrafo inducido , y dejar que sea el ciclo de la definición de . Si debe ser plano, entonces debe ser un ciclo facial. (Cuando es un ciclo hamiltoniano, entonces debe construirse usando una arista).G - V ( C ) D G [ U V ( C ) ] G F D G [ U V ( C ) ] C F G C C C UGV(C)DG[UV(C)]GFDG[UV(C)]CFGCCC
  5. Repita el paso 2 con C 'en lugar de C. Si el dibujo resultante es plano, entonces es plano. Else no es plano.GGG

Observaciones:

  • Argumentar que la incrustación de primavera de Tutte da una incrustación plana no es sencillo. Me gustó la presentación en el libro de Edelsbrunner y Harer, Topología computacional, pero es solo para triangulaciones. Colin de Verdiere discute la incrustación de primavera en http://www.di.ens.fr/~colin/cours/algo-graphs-surfaces.pdf , sección 1.4. Una referencia general es Linial, Lovász, Wigderson: bandas de goma, incrustaciones convexas y conectividad gráfica. Combinatorica 8 (1): 91-102 (1988).
  • Resolver un sistema lineal de ecuaciones en un número poliomial de operaciones aritméticas es fácil a través de la eliminación gaussiana. Resolverlo usando un número de bits polionómico no es tan fácil.
alguien
fuente
Edité la respuesta para evitar el uso de puentes y el gráfico de superposición.
alguien
Supongamos que cada componente conectado a 3 se puede incrustar. Entonces, ¿qué podemos deducir sobre el gráfico original? Usando que los gráficos conectados a 3 tienen (como máximo) una inserción, probablemente podamos terminar desde aquí, pero este paso también debe hacerse.
domotorp
Al final, en el paso 4, ¿qué es una cara en un dibujo no plano? Supongo que esto todavía se puede definir de forma natural. Y al final, "Else G no es plano", de hecho, parece bastante trivial.
domotorp
La restricción de a G [ U V ( C ) ] debe ser plana. De lo contrario, G no es plano. DG[UV(C)]G
alguien
En esto estamos de acuerdo, pero no veo cómo esto ayuda.
domotorp
3

El algoritmo de Boyer y Myrvold se considera entre los algoritmos de prueba de planaridad más avanzados.

En la vanguardia: planaridad O (n) simplificada por Edge Addition por Boyer y Myrvold.

Este capítulo del libro examina muchos algoritmos de prueba de planaridad y esperamos que encuentre un algoritmo lo suficientemente simple.

Mohammad Al-Turkistany
fuente
No estoy interesado en la vanguardia de los algoritmos de planaridad, quiero algo fácil de explicar. Tampoco pude encontrar nada más simple que el algoritmo Demoucron, Malgrange y Pertuiset (DMP) en el libro.
domotorp
0

¿Qué pasa con el algoritmo Hopcroft y Tarjan de 1974 {1} ?


{1} Hopcroft, John y Robert Tarjan. "Pruebas de planaridad eficientes". Revista de la ACM (JACM) 21.4 (1974): 549-568.

Ari Trachtenberg
fuente
Es un algoritmo rápido y no simple.
domotorp
0

Dos algoritmos, ambos en LogSpace

  1. Eric Allender y Meena Mahajan - La complejidad de las pruebas de planaridad
  2. Samir Datta y Gautam Prakriya - Revisar las pruebas de planaridad

El segundo es mucho más simple que el primero.

Anónimo
fuente
No es simple en absoluto.
domotorp