Rápida eliminación / contracción en la integración combinatoria

8

Me pregunto si hay un algoritmo sublineal para eliminar o contraer un borde en una incrustación combinatoria de, digamos, un gráfico plano.

Dado que en la incrustación combinatoria tenemos que mantener los vértices de G y G * al mismo tiempo, teniendo en cuenta que la contracción en el primario es la eliminación en el dual, es suficiente solo para hacer eliminaciones, actualizando la permutación primaria según dual y viceversa . Pero la forma obvia de hacerlo es recalcularlos, lo que lleva tiempo lineal. ¿Podemos hacer algo mejor?

Segunda pregunta : ¿hay alguna técnica que ayude a deshacerse de múltiples bordes entre los mismos vértices? (la única solución que veo para el segundo problema es posponer la eliminación de múltiples aristas hasta que obtengamos un gráfico con, por ejemplo, m = 6n, donde m - número de aristas, n - número de vértices, esto hará que el tiempo se amortice O (1)) ¿Quizás hay algunas técnicas que pueden hacer que este tiempo no se amortice? (También estoy interesado en solo o (n) soluciones, no necesariamente O (1))

¡Muchas gracias!

Finsky
fuente
En la segunda pregunta quise decir que queremos deshacernos de múltiples bordes mientras hacemos contracciones y eliminaciones.
Finsky

Respuestas:

10

Esta pregunta está incompleta sin especificar qué información sobre el gráfico a medida que cambia desea que su estructura de datos de gráfico dinámico genere o admita consultas. Pero es probable que el siguiente artículo sea relevante, a pesar de que se describe en un entorno más general de incrustaciones combinatorias en un género arbitrario en lugar de solo plano. Definitivamente admite contracciones y eliminaciones, así como sus operaciones inversas, en tiempo logarítmico por operación.

Generadores dinámicos de gráficos integrados topológicamente. D. Eppstein. arXiv: cs.DS / 0207082 . SODA 2003, pp. 599-608.

En cuanto a la segunda pregunta: no veo cómo manejar múltiples adyacencias en general, pero es fácil deshacerse de los bigones (múltiples bordes sin nada entre ellos) ya que solo pueden provenir de las dos caras que están a cada lado de un borde contraído o desde la cara que rodea un borde eliminado. Eso debería ser suficiente para muchos propósitos, ya que deshacerse de los bigones asegura que el gráfico restante tenga una cantidad de aristas proporcional a su número de vértices.

David Eppstein
fuente
1
Para resumir la técnica en el artículo de David: Almacene la secuencia cíclica de los bordes que salen de cada vértice, tanto en el gráfico primario como en el gráfico dual, en un árbol binario equilibrado que admite divisiones y uniones en el tiempo (por ejemplo, un árbol B, un treap o un árbol splay), en lugar de una lista enlazada sin formato. O(logn)
Jeffε