Rimuovere il numero minimo di vertici per disconnettere il grafico


9

Considera un grafico non indirizzato con una fonte e un vertice di sink. Vorremmo rimuovere il numero minimo di vertici in quel grafico per disconnettere qualsiasi percorso tra sorgente e sink.

Possiamo farlo usando per esempio un algoritmo max-flow, min-cut?


4
Dovrebbe funzionare (suppongo che tutti i bordi abbiano la stessa capacità).
A. Schulz,

Risposte:


3

(Questa risposta è stata originariamente fornita come parte della domanda, con l'obiettivo di essere verificata.)

La mia intuizione mi dice che possiamo usare l'algoritmo max-flow e min-cut per risolvere questo problema:

  1. Sostituisci ciascuno dei bordi non indirizzati con una coppia di bordi diretti.
  2. vvinvoutvvinvvout
  3. MM

vinvout

Per supportare la risposta di FrankW, segui i collegamenti sottostanti, c'è un documento di Abdol – Hossein Esfahanian che supporta la sostituzione di un bordo non diretto con due bordi diretti. - networkx.github.io/documentation/latest/reference/generated/… - cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf
Pawan Puttaswamy

1
@pawanp, non ti seguo. Ovviamente puoi sostituire un bordo non diretto con due bordi diretti. La domanda non è se è possibile farlo, ma se dopo aver applicato l'algoritmo elencato in FrankW, se l'output è garantito per essere una soluzione corretta al problema originale. Non vedo come la pagina man della libreria NetworkX sia rilevante. Per quanto riguarda il documento: è lungo 14 pagine, con 11 algoritmi diversi, la maggior parte senza prove di correttezza. Puoi essere più specifico su quale parte vedi pertinente qui?
DW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.