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 )