Complessità del problema di copertura dell'intervallo


17

Considera il seguente problemaQ n k [ l i , r i ] 1 l iR i2 n 2 n d 1 , ... , d 2 n0 [ l i , r i ] i = 1 , ... , 2 n d i i : Ci viene dato un numero intero e intervalli con . Ci vengono anche dati numeri interi . Il compito è selezionare un numero minimo di intervalli tale che per ogni , almeno intervalli contenenti l'intero siano selezionati.nk[li,ri]1liri2n2nd1,,d2n0[li,ri]i=1,,2ndii

Non è difficile vedere che può essere risolto in tempo polinomiale (vedi sotto).Q

Consideriamo ora il seguente problemaQ leggermente modificato : L'input del problema è lo stesso di prima. Tuttavia, il compito ora è selezionare un numero minimo di intervalli tale che per ogni , almeno intervalli contenenti l'intero numero o almeno intervalli contenenti il vengono selezionati i numeri interi (con “o” intendiamo il solito logico o).d 2 i - 1 2 i - 1 d 2 i 2 ii=1,,nd2i12i1d2i2i

La mia domanda: può essere risolto in tempo polinomiale?Q

Ecco due modi per risolvere efficiente:Q

Un semplice algoritmo avido: scorrere gli intervalli da sinistra a destra e selezionare solo gli intervalli necessari per "soddisfare" i numeri . Ogni volta che è possibile scegliere tra intervalli diversi, scegliere quello / i con endpoint destro massimo.di

Un programma intero: per ogni intervallo introdurre una variabile di decisione con se l'intervallo è selezionato. L'obiettivo è ridurre al minimo , soggetti ai vincoli . La matrice di vincoli di questo programma intero ha le proprietà consecutive e quindi il rilassamento di programmazione lineare di questo programma ha una soluzione intera ottimale.x i{ 0 , 1 } x i = 1 x 1 + + x k j : i [ l j , r j ] x jd i[li,ri]xi{0,1}xi=1x1++xkj:i[lj,rj]xjdi

Grazie per eventuali suggerimenti, e anche per i riferimenti!

Risposte:


-1

Ogni istanza di Q può essere trasformata in un'istanza del Problema di copertura di multipli, in cui le posizioni sono gli intervalli , che coprono una sequenza consecutiva di punti di domanda (= numeri interid i[lio,rio]dio ).


3
Puoi migliorare la risposta aggiungendo la definizione di Multiple Set Cover Problem (MSCP) e maggiori dettagli sulla riduzione? In particolare, un'istanza di MSCP (almeno la "versione" che conosco) è un grafico bipartito e solo V 1 è un'unione di insiemi disgiunti; in che modo la riduzione mappa i bordi da V 1 a V 2 ? sol=(V1,V2,E)V1V1V2
Marzio De Biasi,
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.