Qual è la complessità di questo problema di copertura?


24

Modifica: ho prima sbagliato a formulare il mio vincolo (2), ora è stato corretto. Ho anche aggiunto ulteriori informazioni ed esempi.

Con alcuni colleghi, studiando qualche altra questione algoritmica, siamo riusciti a ridurre il nostro problema fino al seguente problema interessante, ma non siamo stati in grado di risolvere la questione della sua complessità. Il problema è il seguente.

Istanza: un numero intero n , un numero intero k<n e un set di coppie dal set .S={{s1,t1},,{sn,tn}}n{1,,n}

Domanda: Esiste un set di dimensione tale che per ogni elemento di : (1) se i < n , l'intervallo [ i , i + 1 ] è incluso in un intervallo [ s i , t i ] definito da una coppia in S e (2) almeno uno di i , i + 1 appartiene a una coppia di S ? (2) iSSki{1,,n}
i<n[i,i+1][si,ti]S
ii+1S
iappartiene a una coppia di S .

Esempio
L'insieme {{i,i+1} | i  is odd}{1,n} è una soluzione fattibile (supponendo che n sia pari): la coppia {1,n} garantisce la condizione (1), mentre tutte le altre coppie assicurano la condizione (2).

Note
(I) Poiché ogni coppia contiene esattamente due elementi, al fine di soddisfare la condizione (2), abbiamo bisogno di almeno n2 paia A proposito questo implica una banale approssimazione 2 restituendo l'interaS, dato che assumiamo|S|n.

(II) Un altro modo di considerare il problema è quello di considerare una scala con n gradini (come quella sotto ), insieme a una serie S di n cicli della scala. Ogni gradino della scala corrisponde a qualche elemento e ciascun bordo laterale è un intervallo [i,i+1] . Un ciclo compresi gradini s,t corrisponde esattamente ad una coppia {s,t} : copre tutti gli intervalli consecutivi fra s e t , e si ferma ad entrambe s e t .
La domanda è quindi se esiste un insieme SS di k cicli la cui unione copre tutti i bordi della scala (compresi i bordi dei gradini e i bordi laterali).

(III) Se si chiedesse solo la condizione (1), il problema corrisponderebbe al problema dell'insieme dominante in un grafico degli intervalli definito dagli intervalli indicati dalle coppie di S insieme ad intervalli minuscoli aggiuntivi [ i + ϵ , i + 1 - ϵ ] per ogni i in { 1 , ... , n - 1 } . Questo problema è classicamente risolvibile in tempo lineare (vedere ad esempio qui ).[si,ti]S[i+ϵ,i+1ϵ]i{1,,n1}
Allo stesso modo, se si chiedesse semplicemente la condizione (2), questo potrebbe essere ridotto al problema della copertura del bordo (i vertici sono gli elementi, i bordi sono le coppie), che è anche risolvibile nel tempo polinomiale con un approccio di adattamento massimo.


Quindi la mia domanda è nel titolo:

Questo problema è in P? NP-complete?

Qualsiasi riferimento a un problema simile è il benvenuto.


1
Potrebbe essere una via di mezzo ... chi sa che non può essere equivalente, per esempio, all'isomorfismo grafico? :)
Tsuyoshi Ito

Certo, anche questa è un'opzione ... Ma in realtà sento questo "odore" di essere in P - forse perché spero che sia :)
Florent Foucaud,

Perché una soluzione possibile deve avere una dimensione ? Potresti, per favore, spiegare perché l'insieme di coppie {[1,n-1],[2,n]} non è fattibile. n2[1,n1],[2,n]
hbm

@hbm: la soluzione che stai proponendo non soddisfa la condizione (2) (anche con il vincolo di prima del mio aggiornamento). Ho incluso più spiegazioni ora, spero sia più chiaro.
Florent Foucaud,

Che dire di k = n / 2? Possiamo risolvere il problema per questo caso speciale?
domotorp,

Risposte:


8

Sebbene ciò non risolva la domanda che poni, alcuni dei commenti precedenti considerano algoritmi di approssimazione. FWIW, penso che un PTAS (schema di approssimazione poli-tempo) sia possibile usando la programmazione dinamica. Ecco l'idea.

Data qualsiasi istanza e , crea una soluzione come segue. Segna ogni ( 1 / ϵ ) 'vertice. Per ogni vertice contrassegnato i , tra tutti i bordi ( j , k ) che "si estendono" i (cioè che soddisfano il vincolo (1) per i ), scegliere un bordo che minimizzi j e uno che minimizzi massimizza k . Aggiungi questi 2 ϵ n bordi alla soluzione.ϵ>0(1/ϵ)i(j,k)iijk2ϵn

Questi bordi soddisfano i vincoli di tipo (1) per molti vertici. Nel frattempo contribuiscono con bordi alla soluzione, che è solo O ( ϵ OPT ) . Per finire, troveremo una soluzione ottimale al problema rimanente di trovare un insieme di bordi che soddisfi tutti i vincoli rimanenti di tipo (1) e tipo (2).2nϵO(ϵOPT)

Definire un "blocco" di vertici come un insieme di vertici consecutivi i cui vincoli di tipo (1) sono soddisfatti dai bordi aggiunti finora. Tra due blocchi consecutivi, c'è una sequenza di vertici i cui vincoli di tipo (1) non sono soddisfatti. (Qualsiasi sequenza di questo tipo ha lunghezza al massimo , poiché i vertici contrassegnati hanno i loro vincoli di tipo (1) incontrati dai bordi già aggiunti.) Chiamare una tale sequenza un "vicinato" dei due blocchi adiacenti (quindi ogni blocco ha un quartiere alla sua sinistra e un quartiere alla sua destra).1/ϵ

All'interno di ciascun vicinato, per ciascun vertice nel vicinato, ciascun bordo che lascia il vertice si estende al massimo a (poiché il bordo non si estende su nessun vertice contrassegnato). Pertanto, il vertice ha grado al massimo 1 / ϵ . Pertanto, ogni quartiere ha al massimo 1 / ϵ vertici e tocca al massimo 1 / ϵ 2 bordi. Chiamare qualsiasi sottoinsieme di tali bordi una "configurazione" del vicinato. Se una configurazione soddisfa tutti i vincoli di tipo (1) e tipo (2) per i vertici nelle vicinanze, chiamare la configurazione "valida".1/ϵ1/ϵ1/ϵ1/ϵ2

Per ogni blocco , per ogni coppia ( C i , C i + 1 ) di configurazioni valide dei due quartieri del blocco, calcolare (in tempo polinomiale, usando la corrispondenza massima ecc.), La dimensione minima F i ( C i , C i + 1 ) di qualsiasi set S di spigoli (se presente) in modo tale che i bordi in C iS C i + 1 soddisfino i vincoli di tipo (2) per i vertici nel blocco. Dal momento che ci sono al massimo 2 1i(Ci,Ci+1)Fi(Ci,Ci+1)SCiSCi+1configurazioni, questo può essere fatto in tempo polinomiale (per eps fisso). 21/ϵ2=O(1)

Ora è possibile risolvere l'istanza originale trovando una sequenza di configurazioni valide, una per ciascun quartiere, che minimizza i | D i | + F i ( D i , D i + 1 ) , dove F i è definito nel paragrafo precedente. Questo può essere fatto trovando un percorso più breve nel grafico formato da tutte le configurazioni valide, con un limite di costo | D i | +D1,D2,..,Dki|Di|+Fi(Di,Di+1)Fi da ciascuna configurazione D i per quartiere i ad ogni configurazione D i + 1 per quartiere i + 1 . (Questo grafico ha dimensione O ( 2 1 / ϵ 2 n ) , che è O ( n ) per ϵ fisso.)|Di|+Fi(Di,Di+1)DiiDi+1i+1O(21/ϵ2n)O(n)ϵ


1
Bello. e benvenuto su cstheory!
Suresh Venkat,

Grazie per la risposta, Neal (e scusa, non ho avuto il tempo di controllare prima)! Anche se questo non risponde pienamente alla mia domanda, è ancora un passo avanti. Solo due commenti: penso che dovrebbe essere "massimizza k" piuttosto che "minimizza k" (secondo paragrafo). Inoltre, per la precisione, se si vuole un ( ) -approximation, si dovrebbe contrassegnare ogni k = 4 / ε 'th vertice (poiché O P T n / 2 e poi dare 2 n / k ε O P T bordi nel primo passaggio). 1+ϵk=4/ϵOPTn/22n/kϵOPT
Florent Foucaud,
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.