En un gráfico dado, quiero calcular el costo mínimo de desconectar un nodo uno del otro en un gráfico. Ejemplo:
En este gráfico, supongamos que quiero desconectar node A
, node C
y node F
eliminando algunos bordes entre estos nodos. es decir, al eliminar edge A-B
y edge F-E
, los nodos A
, C
y F
se desconectarán. Aquí, costo significa la longitud del borde que se está eliminando. en este ejemplo, el costo mínimo total para desconectar Node A
, Node C
y Node F
entre sí es 2 + 1 = 3.
¿Puede alguien dar alguna pista? No puedo categorizar este problema, si este es un tipo de shortest path problem
o minimum spanning tree problem
?Cómo obtener el costo mínimo de desconectar un nodo entre sí en un gráfico
Respuesta
Esto se llama problema de corte multiterminal . Lamentablemente parece que no hay una entrada de Wikipedia. El problema es que, dado un gráfico ponderado y un subconjunto de vértices llamados terminales , calcule el conjunto de bordes de peso mínimo cuya eliminación desconecta cada par de terminales. La mala noticia es que este problema es NP-hard, por lo que si realmente necesita una solución óptima en una instancia que no puede ser forzada, es probable que deba recurrir a la programación entera. La buena noticia es que hay un algoritmo simple de 2 aproximaciones (no es el mejor factor conocido, pero puede que tenga que repasar su programación lineal y leer la literatura de investigación para usar las "mejores"), lo que se puede lograr tomando la unión de cortes de st separando cada terminal de los demás.
- 1. Problema de ruta en un gráfico: minimizar el costo marginal promedio en lugar del costo total
- 2. Segundo árbol de expansión de costo mínimo
- 3. Un árbol de expansión mínimo bidireccional de un gráfico dirigido
- 4. ¿Hay alguna ventaja que podamos eliminar sin desconectar el gráfico?
- 5. Encontrar altura común de edificios con un costo mínimo
- 6. Obtener el valor mínimo entre varias columnas
- 7. ¿Cómo desconectar un evento anónimo?
- 8. obtener el atributo de un nodo padre
- 9. Insertar un nodo entre texto
- 10. ¿Cómo obtener el nodo de texto de un elemento?
- 11. Cómo prevenir bordes en graphviz a superponerse entre sí
- 12. ¿Cómo se elimina un nodo en networkx?
- 13. Cómo encontrar el costo mínimo de vincular dos conjuntos de puntos
- 14. ¿Qué es un algoritmo rápido y estable para una ruta aleatoria en un gráfico de nodo?
- 15. Encontrar el corte mínimo en un gráfico tal que los vértices dados están desconectados
- 16. Cómo configurar un clúster de bajo costo
- 17. Cómo obtener atributos de un nodo en libxml2
- 18. Obtener el valor mínimo de un mapa (clave, doble)
- 19. cómo obtener la identificación de un nodo en TinyMCE?
- 20. Encontrar el valor mínimo en un mapa
- 21. Desconectar un conector bluetooth en Android
- 22. ¿Cómo se fuerza el rango en un nodo en punto?
- 23. OBJ-C: obteniendo el valor mínimo/máximo en un NSMutableArray
- 24. ¿Cómo puedo crear el guion gráfico desde un controlador de vista a sí mismo?
- 25. ¿Cómo crear un nodo duplicado desde un nodo en Neo4j?
- 26. ¿Cómo obtener el nodo principal en Capibara?
- 27. Cómo obtener el nodo XML de XDocument
- 28. ¿Cuál es el costo de un #define?
- 29. ¿Cómo obtener el nombre de nodo primario del nodo actual?
- 30. ¿Cómo obtener el xpath de un nodo determinado al visualizar un archivo xml en Visual Studio?
Creo que, la única manera de hacerlo es la búsqueda de fuerza bruta. – Anton
@ Anton: Por favor, no digas eso :(. No puedo imaginar mi vida con la fuerza bruta –