Logical Min-Cut NP-Complete è completo?


24

Definizione del problema Logical Min Cut (LMC)

Supponiamo che è un grafo orientato pesato, s e t sono due vertici di V , e t è raggiungibile da s . Il problema LMC studia come possiamo rendere t irraggiungibile da s rimuovendo alcuni bordi di G seguendo i seguenti vincoli:G=(V,E)stVtstsG

  1. Il numero dei bordi rimossi deve essere minimo.
  2. Non possiamo rimuovere tutti i bordi di uscita di alcun vertice di (cioè, nessun vertice con bordi in uscita può avere tutti i suoi bordi in uscita rimossi).G

Questo secondo vincolo si chiama rimozione logica. Quindi cerchiamo una rimozione logica e minima di alcuni bordi di tale che t sia irraggiungibile da s .Gts

Tentativi di soluzione

Se ignoriamo il vincolo di rimozione logica del problema LMC, sarà il problema del taglio minimo nel digrafo non ponderato , quindi sarà risolvibile polinomialmente (teorema del taglio minimo del flusso massimo).G

Se ignoriamo il vincolo di rimozione minima del problema LMC, sarà nuovamente risolvibile polinomialmente in un DAG: trova un vertice tale che k è raggiungibile da s e t non è raggiungibile da k . Quindi considera un percorso p che è un percorso arbitrario da s a k . Ora considera il percorso p come un sottografo di G : la risposta sarà ogni bordo di uscita del sottografo p . È ovvio che il vertice k può essere trovato da DFS in G in tempo polinomiale. Purtroppo questo algoritmo non funziona in generalekkstkpskpGpkG per un grafico diretto arbitrario.

Ho cercato di risolvere il problema LMC con una tecnica di programmazione dinamica ma il numero di stati richiesti per risolvere il problema è diventato esponenziale. Inoltre, ho cercato di ridurre al problema LMC alcuni problemi NP-Complete come 3-SAT, max2Sat, max-cut e clique e non sono riuscito a trovare una riduzione.

Personalmente penso che il problema LMC sia NP-Complete anche se è un DAG binario (cioè un DAG in cui nessun nodo ha un grado di out-maggiore di 2).G

Domande

  1. Il problema LMC è NP-completo in un digrafo arbitrario ? (domanda principale)G
  2. Il problema LMC è NP-Complete in un DAG arbitrario ?G
  3. Il problema LMC è NP-Complete in un DAG binario arbitrario ?G

Sono abbastanza sicuro che il problema sia in se il tuo grafico non è diretto . Sarebbe una risposta sufficiente alla tua domanda? P
Alex ten Brink,

@SaeedAmiri: trova un taglio minimo per e t . Se disconnette un vertice, allora questo vertice deve essere s o t . Se è entrambi, allora non esiste un taglio minimo del genere. Supponiamo che t sia il vertice disconnesso e ( t , v ) il bordo. Rimuovere questo bordo ed eseguire un taglio sulla min- s e v ricorsivo. ststt(t,v)sv
Alex ten Brink,

Con una semplice osservazione, si può concludere che se il seguente problema è NP-Complete anche il problema LMC sarà NP-Complete (non sono sicuro che sia vero il contrario). Supponiamo che sia un digrafo. Come possiamo avere un taglio minimo su G (la partizione da V a S e T il numero di spigoli da S a T è minima) e non esiste un vertice v appartiene a V st la testa di ogni bordo di uscita di v appartiene a T (il bordo di uscita va da S aG=(V,E)GVSTSTvVvTS ). T
amirv,


2
Amirv, per il problema con solo il vincolo (2), l'algoritmo che suggerisci, a quanto ho capito, non è del tutto corretto. Potrebbe esserci una soluzione anche se, per tutti i nodi v, esiste un percorso da s a v e un percorso da v a t. Considera il grafico con V = { s , t , a } ed E = { ( s , t ) , ( s , a ) , ( a , s ) } .G=(V,E)V={s,t,a}E={(s,t),(s,a),(a,s)}
Neal Young,

Risposte:


1

Sia G = (V, E) un DAG ponderato, s et due vertici di G, e LSTMC = (G, s, t) sia un'istanza del problema logico di taglio min. È ovvio che il problema LSTMC è NP.Ora, dovremmo dimostrare che LSTMC è NP-Hard. Riduciamo il problema dell'hitting-set al problema LSTMC. Sia S = {s1, s2, ..., sn} gli insiemi dati e {a1, a2, ..., am} sia l'unione di tutti gli insiemi. Dato il numero k1, il problema decisionale del problema del set di percussioni indica se esiste un set A con elementi k1 in modo tale che ogni elemento di S (ogni set si st i = 1..n) contenga almeno un elemento di A. We denotare il problema del set di colpi come HS (S). Costruiamo il DAG ponderato G ′ dal set S di Algorithm HS2LSTMC. Questo algoritmo considera s come il vertice sorgente del DAG G ′. Per ogni set si di HS st i = 1..n, l'algoritmo considera il vertice corrispondente, si, e aggiunge un bordo con peso infinito da s a ciascun si. Quindi, per ogni elemento aj dell'unione dei set di input st j = 1..m, l'algoritmo considera il vertice corrispondente, aj e aggiunge un bordo con peso zero da ciascun si a qualsiasi aj st aj ∈si in HS. Infine, l'algoritmo considera due vertici finali chiamati t e k e aggiunge due bordi da ciascuno aj st j = 1..m a entrambi i vertici finali. È chiaro che G 'può essere fatto in tempo polinomiale.

Ora, dovremmo dimostrare che HS (S) ha una risposta con k1 elementi se e solo se LSTMC = (G ′, s, t) ha una risposta con alcuni bordi logicamente rimossi in modo tale che la somma dei pesi dei bordi rimossi sia k1.

Per semplicità, eseguiamo questa parte di prova, fornendo un esempio:

Nella figura seguente, supponi che S = {s1, s2, s3} tale che s1 = {1, 2, 3}, s2 = {1, 4} e s3 = {2, 5}. La Fig. 2 mostra il DAG ponderato G ′ del problema LSTMC corrispondente al problema del set di colpi HS (S). In questo esempio, l'insieme A, ovvero l'unione di tutti gli elementi di S, è A = {1, 2, 3, 4, 5}. Abbiamo | S | = 3 e | A | = 5. Questo esempio mostra come un'istanza arbitraria del problema del set di colpire può essere risolta con l'aiuto di un'istanza specifica del problema logico st min-cut in un DAG ponderato. Se calcoliamo una risposta a LSTMC = (G ′, s, t) e consideriamo quei bordi rimossi della risposta che sono nella forma di (aj, t) chiamato E1 (1 ≤ j ≤ m), allora l'insieme di coda di E1 è una risposta a HS (S). Una risposta al problema LSTMC è il set di spigoli E1 = {(s1, 2), (s1, 3), (s2, 4), (s3, 5), (1, t), (2, t)}. Quindi, il set di coda del sottoinsieme E2 = {(1, t), (2,

Riduzione


0

Ecco (un tentativo di) un algoritmo polinomiale per LMC su arbitrario binario DAG .G

Questo risponde alla domanda n. 3. (Ci scusiamo per il disordinato risveglio in anticipo. :))

Per iniziare, elimina "per sempre" qualsiasi vertice non raggiungibile da . Non ci interessa su questi, dal momento che non sono parte di qualsiasi s - t percorso.sst

Successivamente, definire i sotto-DAG e B , inizialmente vuoti. Quindi, per tutti i vertici v G - { s , t } ,ABvG{s,t}

Verifica se esiste un percorso da a t . Se è così, aggiungi v a A . In caso contrario, aggiungere v a B .vtvAvB

Lascia che i bordi di e B siano quelli indotti dai vertici all'interno di ogni insieme (per ora, ignora tutti i bordi da s a A , da A a t e da A a B ; nota inoltre che non ci sono bordi da B a t di costruzione).ABsAAtABBt

Quindi, calcolare la chiusura transitiva di . Vale a dire, noi siamo interessati a trovare un insieme di vertici { un * } che sono le "foglie" del sub-DAG A .A{a}A

Fissare tale . Osservare che ci deve essere un arco orientato da un * a t . Questo perché, per costruzione, (i) esiste un percorso s - t attraverso un , (ii) non ci sono percorsi da un a B , e (iii) poiché A è esso stesso un DAG e a è una foglia di a , non v'è alcun percorso da un * attraverso un altro vertice a a t .aatstaaBAaAaAt

Ora, deve esserci anche un bordo diretto da ciascun vertice in ad un vertice in B , oppure alcuni dei { a } hanno un solo margine da t . In entrambi i casi, c'è consentito di eliminare qualsiasi un *t bordo.{a}B{a}tat

Se = 1, quindi o dobbiamo eliminare il bordo dall'unico a t , oppure c'è un vertice precedente nel percorso s - t contenente un che ha due percorsi da t - uno a e uno direttamente. Nel caso in cui quest'ultima potrebbe riservare, registriamo un *T e procedere "a ritroso con avidità" (dettagli su questo qui sotto).|{a}|atstataat

Se > 1, quindi dobbiamo eliminare tutti i bordi da { a } t , oppure esiste un numero di bordi k < | { a } | prima nella chiusura transitiva di A che disconnetteva tutti i percorsi da s attraverso { a } a t .|{a}|{a}tk<|{a}|As{a}t

Qui è dove usiamo il fatto che il grafico è un DAG binario.G

Considera l'insieme dei predecessori di . Poiché ciascuno di questi vertici ha un massimo di due gradi, ci sono esattamente tre casi:{a}

Caso 1. Una predecessore ha un out-bordo per alcuni vertici in e un out-bordo per qualche vertice in B .{a}B

{a}{a}t{a}

{a}{a}

{a}ts

{a}

{a}t{a}tsts

A

O(|E|)O(|E|2)O(|E|).

O(|V|(|V|+|E|))O(|V|3)O(|E|2)O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2)

st


{a}B{a}t(a,t)a{a}

s{a}aA

2
Finalmente sono riuscito a dimostrare che questo problema è NP-Complete.
amirv,

1
@amirv Oh, per favore fare quota di un contorno della prova, sotto forma di una risposta!
Raffaello

1
Il problema è NP-Complete, anche se il digraph sottostante è un DAG binario non ponderato.
amirv,
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.