Ecco il mio primo tentativo di litigare. Era sbagliato, ma l'ho corretto dopo "EDIT:"
Se potessi risolvere in modo efficiente il problema del taglio massimo con pesi dei bordi negativi, non potresti usarlo per risolvere il problema del taglio massimo con pesi dei bordi positivi? Inizia con un problema di taglio massimo che vuoi risolvere la cui soluzione ottimale è . Ora, metti un grande bordo di peso negativo (con peso ) tra e . La soluzione ottimale del nuovo problema è , quindi il nostro ipotetico algoritmo di approssimazione ti fornirà una soluzione con taglio massimo il cui valore è al massimo peggiore di ottimale. Nel grafico originale, il taglio massimo è ancora al massimo peggiore di quello ottimale. Se si sceglie vicino a- un u v b - a ( b - a ) / 2 ( b - a ) / 2, un b ≠ 16 / 17b−auvb−a(b−a)/2(b−a)/2ab, ciò viola il risultato di inapprossimabilità che se P NP non è possibile approssimare il taglio massimo a un fattore migliore di . ≠16/17
MODIFICARE:
L'algoritmo sopra non funziona perché non è possibile garantire che e siano sui lati opposti del taglio nel nuovo grafico, anche se erano originariamente. Posso risolvere questo come segue, però.vuv
Supponiamo che abbiamo un algoritmo di approssimazione che ci darà un taglio entro un fattore 2 di OPT purché la somma di tutti i pesi del bordo sia positiva.
Come sopra, inizia con un grafico con tutti i pesi non negativi sui bordi. Troveremo un grafico modificato con alcuni pesi negativi tali che se possiamo approssimare il taglio massimo di entro un fattore 2, possiamo approssimare molto bene il taglio massimo diG ∗ G ∗ GGG∗G∗G
Scegli due vertici e e spera che siano sui lati opposti del taglio massimo. (Puoi ripeterlo per tutte le possibili per assicurarti che un tentativo funzioni.) Ora, metti un grande peso negativo su tutti i bordi e per e a grande peso positivo sul bordo . Supponiamo che il taglio ottimale abbia peso .v v - d ( u , x ) ( v , x ) x ≠ u , v a ( u , v ) O P Tuvv−d(u,x)(v,x)x≠u,va(u,v)OPT
Un taglio con valore in , dove i vertici e sono sullo stesso lato del taglio, ora ha valore a dove è il numero di vertici sull'altro lato del taglio. Un taglio con sui lati opposti con valore originale ora ha valore . Pertanto, se si sceglie abbastanza grande, possiamo costringere tutti i tagli con e sullo stesso lato di avere un valore negativo, quindi se c'è qualche taglio con valore positivo, allora il taglio ottimale in avrà eG u v c - 2 d m m ( u , v ) c c + a - ( n - 2 ) d d u v G ∗ u v ( a - ( n - 2 ) d ) u vcGuvc−2dmm(u,v)cc+a−(n−2)dduvG∗uvsui lati opposti. Si noti che stiamo aggiungendo un peso fisso a qualsiasi taglio con e sui lati opposti.(a−(n−2)d)uv
Sia . Scegli così che (lo giustificeremo più avanti). Un taglio con peso in avente e sui lati opposti ora diventa un taglio con peso . Ciò significa che il taglio ottimale in ha un peso di . Il nostro nuovo algoritmo trova un taglio in con un peso di almeno . Ciò si traduce in un taglio nel grafico originale con peso di almeno (poiché tutti i tagli in con peso positivo separatoa f ≈ - 0,98 O P T c G u v c - 0,98 O P T G ∗ 0,02 O P T G ∗ 0,01 O P T G 0,99 O P T G ∗ u vf=(a−(n−2)d)af≈−0.98OPTcGuvc−0.98OPTG∗0.02OPTG∗0.01OPTG0.99OPTG∗u e ), che è migliore del risultato di inapprossimabilità.v
Non c'è nessun problema con la scelta grande abbastanza per fare qualsiasi taglio con e sullo stesso lato negativo, dal momento che possiamo scegliere grande come vogliamo. Ma come abbiamo scelto così che quando non conoscevamo ? Siamo in grado di approssimare davvero bene ... se lasciamo essere la somma dei pesi bordo di , sappiamo . Quindi abbiamo un intervallo di valori abbastanza ristretto per e possiamo iterare su prendendo tutti i valori tra eu v d a f ≈ - .99 O P T O P T O P T T G 1duvdaf≈−.99OPTOPTOPTTGff-.49T-.99T0.005Tf≈-0.98OPT12T≤OPT≤Tff−.49T−.99Tad intervalli di . Per uno di questi intervalli, abbiamo la garanzia che , e quindi una di queste iterazioni è garantita per restituire un buon taglio.0.005Tf≈−0.98OPT
Infine, dobbiamo verificare che il nuovo grafico abbia pesi dei bordi la cui somma è positiva. Abbiamo iniziato con un grafico i cui pesi dei bordi avevano la somma e abbiamo aggiunto alla somma dei pesi dei bordi. Da , siamo a posto f - .99 T ≤ f ≤ - .49 TTf−.99T≤f≤−.49T