Taglio minimo della st nei grafici aciclici diretti ponderati con pesi eventualmente negativi


9

Ho riscontrato il seguente problema:

Dato un grafico aciclico diretto con pesi dei bordi a valore reale e due vertici s e t, calcolare il taglio minimo della st.

Per i grafici generali questo è NP-difficile, poiché si può ridurre banalmente il taglio massimo ad esso semplicemente invertendo i pesi del bordo (correggimi se sbaglio).

Qual è la situazione con i DAG? Min-cut (o max-cut) può essere risolto in tempo polinomiale? NP è difficile e, in tal caso, esistono algoritmi di approssimazione noti?

Ho cercato di trovare lavoro su questo, ma non sono stato in grado (forse sto solo usando parole chiave sbagliate nelle mie ricerche), quindi speravo che qualcuno potesse sapere (o trovare) qualcosa al riguardo.


2
Dove fallisce qui la formulazione di programmazione lineare di min-cut?
Peter Shor,

(usando la notazione di en.wikipedia.org/wiki/… ): per i bordi con pesi negativi d_ {ij} può essere arbitrariamente grande. Anche se uno limita d_ {ij} dall'alto, prenderà sempre il valore massimo possibile per i bordi con pesi negativi. Quindi la soluzione a un tale programma non sempre produrrà un taglio valido. Potrei sbagliarmi poiché non ho molta esperienza con tali problemi, in tal caso, per favore, correggimi. Fondamentalmente vorrei sapere se il max-cut (con pesi arbitrari) può essere risolto in modo efficiente per i DAG o no.
George,

1
Per far funzionare tutto questo, devi cambiare la prima disuguaglianza in una uguaglianza: . Non riesco ancora a capire perché allora fallisca, ma forse mi manca qualcosa. Non ci ho pensato molto. dioj=pj-pio
Peter Shor,

Probabilmente sono io a cui manca qualcosa qui. Fa questa garanzia che tutte le prendo valori interi? Si potrebbe legare p i dall'alto con 1, ma non sono sicuro che funzioni o meno. Il problema sembra essere che se ciò può essere risolto, si potrebbe ridurre il taglio massimo invertendo i pesi del bordo, il che non dovrebbe essere possibile poiché il taglio massimo è NP-difficile. Tuttavia, potrei sbagliarmi qui. piopio
George,

1
NP st max-cut è difficile per i DAG? Se il grafico non è un DAG, non è possibile modificare tale disuguaglianza in un'uguaglianza, perché è necessaria la disuguaglianza se ci sono cicli. Quindi, nel caso generale, l'LP non funziona con pesi negativi.
Peter Shor,

Risposte:


10

Hai affinato di più il tuo problema nei commenti. Per essere più precisi, si dispone di un DAG con tutti i bordi che scorre lontano dalla sorgente e verso il lavandino t (cioè, tutti i bordi sono su un percorso da s a t ). Si desidera trovare il taglio minimo tra due pezzi del DAG, in cui il primo pezzo è collegato a s , e il secondo collegato a t . Per questo problema, funziona una variazione dell'algoritmo di programmazione lineare standard per MIN-CUT, anche con pesi di bordo negativi.StStSt

Usiamo la stessa notazione di Wikipedia . Il costo del bordo è c i j . Mettiamo una potenziale funzione p i su ciascun nodo e lasciamo d i j = p i - p j . L'LP è m i n i m i z e(io,j)ciojpiodioj=pio-pj

mioniomioze Σ(io,j)EciojdiojSuBject to    dioj=pio-pj  (io,j)E   dioj0           (io,j)E   pS=1   pt=0

Queste equazioni garantiscono che , poiché ogni vertice si trova su un percorso s - t . Allo stesso modo, poiché d i j = p i - p j non è negativo, i potenziali su qualsiasi percorso da s a t stanno diminuendo. Dobbiamo ancora dimostrare che esiste una soluzione ottimale al LP tutte p io sia 0 o 1 . Ciò deriva dal fatto che il valore per una soluzione dell'LP sopra è il valore atteso del taglio C w , dove0pio1Stdioj=pio-pjStpio01Cw viene scelto casualmente in [ 0 , 1 ] e dovesi ottiene iltaglio C w inserendo tutti i vertici i con p iw nella prima serie di vertici e tutti i vertici con p i < w nella seconda serie.w[0,1]Cwiopiowpio<w


0pioleq1

@George: è lo stesso argomento che mostra che il normale Min-Cut LP ha soluzioni integrali. Dovrebbe esserci una spiegazione più lunga (e più comprensibile) da qualche parte online.
Peter Shor,

Ok lo cercherò. Grazie ancora per il tuo aiuto!
George,
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.