Estoy trabajando para intentar dividir un gráfico triangulado en subgrafías conectadas con algunas garantías sobre el número de bordes entre particiones. Aquí hay un ejemplo de un gráfico triangulado que se ha dividido en 4 "grupos":
Lo que quería originalmente era un algoritmo que pudiera crear particiones de aproximadamente k triángulos (podría haber algún error siempre que no fuera demasiado grande), y logré descubrir una algoritmo (donde p es el número total de particiones) que podría encontrar dicha partición. Luego me di cuenta de que tener un gran número de bordes entre particiones era perjudicial para la aplicación para la que necesitaba este algoritmo.
Idealmente, me gustaría un algoritmo que pueda mantener cada partición dentro de un rango de , idealmente que sea un factor constante como 2. Además, me gustaría poder hacer que el número de bordes intermedios tenga un límite superior eso es "bajo".
Además, otro problema que tengo es si tengo una partición que tiene estas propiedades, y modifico el gráfico haciendo uno de los siguientes:
- Agregar un conjunto de aristas que se conectan a vértices existentes
- Agregar un vértice y un conjunto de bordes que se conectan al vértice agregado
- Eliminar un conjunto de bordes
- Eliminar un vértice y todos los bordes que se conectan a este vértice
Quiero poder repartir el gráfico y todavía tener cada partición con el tamaño y el número de bordes de corte minimizados. (Esta es la solución por la que estoy ofreciendo una recompensa). Esto significa que usando este algoritmo, podemos construir cualquier partición comenzando con un gráfico vacío y agregando vértices y bordes uno por uno y reparticionando.
Aquí hay algunas restricciones adicionales al problema:
- El grafo es plano
- Cada "triángulo" es un vértice que tiene bordes no dirigidos a triángulos con los que comparte un borde
- De la declaración anterior, es obvio que cada vértice en este gráfico tiene un grado como máximo 3
- El gráfico está conectado
- Cada subgrafo de la partición está conectado
- Cada subgrafo tiene aproximadamente k vértices
- Hay como máximo aristas entre particiones (aristas que contienen vértices de diferentes particiones). Si puede encontrar un límite similar para bordes entre particiones como u entonces eso también podría funcionar. No estoy completamente seguro de que el límite superior para los bordes entre particiones puede ser menor que por lo que si puede demostrar que es imposible hacerlo mejor, también es satisfactorio. 2 √ O(logn)O(n)
Estoy en un punto en el que estoy atascado, por lo que cualquier ayuda con este problema sería encantadora. Si puede resolver este problema, son las abejas de rodillas. De lo contrario, si conoces algún documento, libro de texto o algoritmo que puedas señalarme, te lo agradecería mucho.
¡Avísame si necesito aclarar algo!
EDITAR: Aquí hay algunas restricciones adicionales si facilita el problema.
- Estamos tratando con triangulaciones de Delaunay limitadas
- Las restricciones NUNCA serán un solo vértice
- El gráfico creado a partir de la triangulación se construye de la siguiente manera: cada triángulo se representa como un vértice. Cada borde en el gráfico corresponde a un borde sin restricciones en la triangulación. Esto significa que un borde restringido entre dos triángulos no se mostrará en la representación gráfica de la triangulación.
Otra cosa que me di cuenta es que es posible que necesitemos modificar para crecer a medida que crece, de lo contrario no puede haber garantías sub en el número de bordes entre particiones.n O ( n )
Respuestas:
Rao tiene dos documentos sobre el corte más escaso en gráficos planos, parece posible una aproximación de factor constante en el tiempo cuasi lineal . La bisección recursiva, aunque no es ideal, podría ser un enfoque factible para su problema.
Satish Rao. Encontrar separadores casi óptimos en gráficos planos . En el 28º Simposio sobre Fundamentos de Ciencias de la Computación (FOCS), páginas 225-237, 1987.
Satish Rao. Algoritmos más rápidos para encontrar pequeños cortes de borde en gráficos planos (resumen extendido). En el 24º Simposio de ACM sobre Teoría de la Computación (STOC), páginas 229-240, 1992.
Horst D. Simon y Shang-Hua Teng. ¿Qué tan buena es la bisección recursiva? En SIAM Journal on Scientific Computing, Volumen 18, Número 5, páginas 1436-1445, 1997.
fuente
http://cse.iitkgp.ac.in/~pabitra/paper/barna-sdm07.pdf
BAM, aquí está la respuesta. Particiones de gráfico de corte mínimo incremental en tiempo para inserciones y eliminaciones. Si haces entonces es poli logarítmico para inserciones y eliminaciones, lo cual es muy bueno.k = O ( log n )O(k3) k=O(logn)
fuente
El siguiente algoritmo podría ayudar.
Además, la modificación del gráfico agregando vértices no afectaría la partición. Cualquier partición en la que se encuentre uno de los vecinos del nuevo vértice, que puede ser la partición del nuevo vértice. Por lo tanto, es posible que no se necesite repartir hasta que el tamaño de uno de los clústeres sea demasiado.
Editar:
fuente
busqué un poco sobre esto, pero postergué la publicación de immed para ver qué otras respuestas se materializarían y ahora estoy publicando esto para no tirar algunas ideas / leads misceláneos que podrían tener algún valor (aunque el autor de la pregunta ya ha indicado que ahora ha encontrado un aceptable responder).
En la inspección, existen muchas restricciones dadas a este problema y podría tomar un trabajo completo para crear un algoritmo y demostrar que los satisface a todos (lo que, por supuesto, generalmente está fuera del alcance del formato de intercambio de pila). Sin embargo, hay algunos enfoques básicos para abordar este tipo de problema
empírico. genere gráficos aleatorios que se ajusten a las restricciones o use gráficos de algunos conjuntos de datos que coincidan con las condiciones y pruebe diferentes algoritmos en ellos, y observe el rendimiento. uno puede encontrar que un algoritmo satisface empíricamente las condiciones requeridas. si uno es más estricto, uno podría intentar crear una prueba a partir de la observación empírica si está satisfecho al 100% con grandes conjuntos de datos. También para la investigación empírica, a menudo ayuda saber cómo se obtienen / generan los conjuntos de datos, cuál es su naturaleza / origen.
la pregunta no tiene citas relacionadas de literatura / referencias. ¿Cuáles son los tipos de algoritmos más cercanos en la literatura? Para este tipo de problema, pueden superponerse múltiples tipos de áreas de investigación. hay investigaciones sobre gráficos planos, particiones de gráficos, cortes de gráficos, separadores de gráficos, particiones de gráficos triangulares, etc .; no es obvio descifrar el tema principal de esta pregunta en la medida en que se formule o qué subárea de investigación particular (algoritmo de grafo) lo afectaría más directamente.
Dadas esas calificaciones, un tema básico de la pregunta parece ser "particionar gráficos planos". Aquí hay algunas referencias recientes sobre ese tema que podrían ser útiles y mostrar temas / ángulos adicionales de la investigación relacionada actual. hay algunos algoritmos implementados y pueden estar disponibles a solicitud de los autores.
la 3 rd implica el particionamiento con pesas, lo que generalizar a pesos iguales, pero que da un marco adicional para su examen / investigación: todas las condiciones de preguntas podrían ser cumplidas por algún tipo de esquema de asignación de peso? (Esto también podría estar relacionado con el requisito de tener algún tipo de control dinámico o ajuste sobre las soluciones también mencionadas en la pregunta).
El particionamiento espectral funciona: gráficos planos y mallas de elementos finitos Spielman / Teng
Algoritmos lineales para un problema de partición k de gráficos planos sin especificar bases Wada, Chen
Particionar gráficos planos con costos y pesos Aleksandrov et al.
fuente