Encontrar el corte mínimo de un gráfico no dirigido

25

Aquí hay una pregunta de un examen anterior que estoy tratando de resolver:

Para un gráfico no dirigido con pesos positivos , estoy tratando de encontrar el corte mínimo. No conozco otras formas de hacerlo además de usar el teorema de corte mínimo de flujo máximo. Pero el gráfico no está dirigido, entonces, ¿cómo debo dirigirlo? Pensé en dirigir los bordes en ambos extremos, pero ¿qué vértice sería la fuente y qué vértice sería el sumidero? ¿O hay otra forma de encontrar el corte mínimo?solw(mi)0 0

Jozef
fuente
1
Si no tiene el origen y el destino en el gráfico original, supongo que tendrá que probar varias opciones. (Para cualquier dadas y , el corte mínima no puede separar los dos.)st
Raphael
¿Está tratando de encontrar el corte mínimo para los nodos fuente y sumidero dados o el corte mínimo del gráfico?
Peter
@ Peter: El corte mínimo del gráfico.
Jozef

Respuestas:

13

Hay muchos algoritmos para encontrar el corte mínimo de un gráfico no dirigido. El algoritmo de Karger es un algoritmo aleatorio simple pero efectivo.

En resumen, el algoritmo funciona seleccionando bordes uniformemente al azar y contrayéndolos con los bucles automáticos eliminados. El proceso se detiene cuando quedan dos nodos, y los dos nodos representan un corte. Para aumentar la probabilidad de éxito, el algoritmo aleatorio se ejecuta varias veces. Mientras realiza las carreras, se realiza un seguimiento del corte más pequeño encontrado hasta ahora.

Vea la entrada de Wikipedia para más detalles. Para quizás una mejor introducción, consulte el primer capítulo de Probabilidad e informática: algoritmos aleatorios y análisis probabilístico de Michael Mitzenmacher y Eli Upfal.

Juho
fuente
¿Es este un algoritmo de aproximación?
Strin
@Strin Es un algoritmo aleatorio que encuentra el corte mínimo con alta probabilidad.
Juho
1
No creo que Karger sea apropiado para encontrar un corte de peso mínimo. La derivación de la probabilidad de que encuentre un corte mínimo depende de que encuentre un corte de cardinalidad mínima; Es muy poco probable que Karger encuentre un corte mínimo con muchos bordes livianos.
Sumudu Fernando
8

(tu,v,wmiyosolht)(tu,v,wmiyosolht)(v,tu,wmiyosolht)

... pero entonces, ¿qué vértice sería la fuente y qué vértice sería el sumidero?

No importa

Pratik Deoghare
fuente
1
¿Por qué no importa esto?
The Coding Wombat
1

El algoritmo Ford-Fulkerson debería funcionar para usted. Puede crear dos vértices falsos, a saber. La fuente y el sumidero.

También eche un vistazo al algoritmo Edmonds-Karp . Hay dos variaciones:

  1. Una versión elige el camino más corto
  2. Otro elige un camino con la capacidad máxima

, a diferencia de Ford-Fulkerson, que elige un camino arbitrario.

Este es un buen recurso.

ajmartin
fuente
¡Bienvenido a cs.stackexchange! Podría ayudar al OP si pudiera explicar más cómo se conectan los vértices falsos al gráfico existente. Y cuáles serán los pesos de los bordes nuevos.
Paresh