Imposta problema copertina - Set cover problem

Il problema del set cover è una domanda classica in combinatoria , informatica , ricerca operativa e teoria della complessità . È uno dei 21 problemi NP-completi di Karp che si è dimostrato NP-completo nel 1972.

Si tratta di un problema "il cui studio ha portato allo sviluppo di tecniche fondamentali per l'intero campo" degli algoritmi di approssimazione .

Dato un insieme di elementi (chiamato universo ) e un insieme di insiemi la cui unione è uguale all'universo, il problema della copertura dell'insieme consiste nell'identificare il più piccolo sottoinsieme la cui unione è uguale all'universo. Ad esempio, si consideri l'universo e l'insieme degli insiemi . Chiaramente l'unione di è . Tuttavia, possiamo coprire tutti gli elementi con il seguente numero inferiore di insiemi: .

Più formalmente, dato un universo e una famiglia di sottoinsiemi di , una copertura è una sottofamiglia di insiemi la cui unione è . Nel problema decisionale che copre l'insieme , l'input è una coppia e un intero ; la domanda è se esiste una copertura fissa di dimensioni o meno. Nel problema di ottimizzazione della copertura degli insiemi , l'input è una coppia , e il compito è trovare una copertura degli insiemi che utilizzi il minor numero di insiemi.

La versione decisionale della copertura dell'insieme è NP-completa e la versione di ottimizzazione/ricerca della copertura dell'insieme è NP-difficile .

Se a ogni set viene assegnato un costo, diventa un problema di copertura del set ponderato .

Formulazione di programmi lineari interi

Il problema di copertura dell'insieme minimo può essere formulato come il seguente programma lineare intero (ILP).

minimizzare (minimizzare il numero di set)
soggetto a per tutti (coprire ogni elemento dell'universo)
per tutti . (ogni set è nella copertina del set o no)

Questo ILP appartiene alla classe più generale di ILP per la copertura dei problemi . Il divario di integralità di questa ILP è al massimo , quindi il suo rilassamento fornisce un algoritmo di approssimazione dei fattori per il problema di copertura dell'insieme minimo (dove è la dimensione dell'universo).

Nella copertina del set ponderato, ai set vengono assegnati dei pesi. Indica il peso di set con . Allora il programma lineare intero che descrive la copertura dell'insieme pesato è identico a quello dato sopra, eccetto che la funzione obiettivo da minimizzare è .

Colpire la formulazione del set

La copertura del set è equivalente al problema del set che colpisce . Ciò si vede osservando che un'istanza di copertura degli insiemi può essere vista come un grafo bipartito arbitrario , con gli insiemi rappresentati dai vertici a sinistra, l'universo rappresentato dai vertici a destra e gli archi che rappresentano l'inclusione di elementi negli insiemi. Il compito è quindi trovare un sottoinsieme di cardinalità minimo di vertici di sinistra che copra tutti i vertici di destra. Nel problema degli insiemi di Hitting, l'obiettivo è coprire i vertici di sinistra utilizzando un sottoinsieme minimo dei vertici di destra. La conversione da un problema all'altro si ottiene quindi scambiando i due insiemi di vertici.

Algoritmo avido

Esiste un algoritmo greedy per l'approssimazione in tempo polinomiale dell'insiemi che copre che sceglie gli insiemi secondo una regola: in ogni fase, scegli l'insieme che contiene il maggior numero di elementi scoperti. Questo metodo può essere implementato in modo lineare nel tempo nella somma delle dimensioni degli insiemi di input, utilizzando una coda di bucket per dare la priorità agli insiemi. Raggiunge un rapporto di approssimazione di , dove è la dimensione del set da coprire. In altre parole, trova una copertura che può essere volte più grande di quella minima, dove è il -esimo numero armonico :

Questo algoritmo greedy raggiunge effettivamente un rapporto di approssimazione di dove è l'insieme di cardinalità massimo di . Per le istanze dense, tuttavia, esiste un algoritmo di approssimazione per ogni .

Image
Esempio stretto per l'algoritmo greedy con k=3

C'è un esempio standard in cui l'algoritmo greedy raggiunge un rapporto di approssimazione di . L'universo è costituito da elementi. Il sistema di insiemi consiste di insiemi disgiunti a coppie con dimensioni rispettivamente, nonché di due insiemi disgiunti aggiuntivi , ciascuno dei quali contiene metà degli elementi di ciascuno . Su questo input, l'algoritmo greedy prende gli insiemi , in quell'ordine, mentre la soluzione ottima consiste solo di e . Un esempio di tale input per è raffigurato a destra.

I risultati di inapprossimabilità mostrano che l'algoritmo greedy è essenzialmente il miglior algoritmo di approssimazione del tempo polinomiale per set cover fino a termini di ordine inferiore (vedi i risultati di inapprossimabilità di seguito), sotto ipotesi di complessità plausibile. Un'analisi più rigorosa per l'algoritmo greedy mostra che il rapporto di approssimazione è esattamente .

Sistemi a bassa frequenza

Se ogni elemento si trova al massimo in f insiemi, allora si può trovare una soluzione in tempo polinomiale che approssima l'ottimo entro un fattore di f usando il rilassamento LP .

Se il vincolo viene sostituito da for all S in nel programma lineare intero mostrato sopra , allora diventa un programma lineare (non intero) L . L'algoritmo può essere descritto come segue:

  1. Trova una soluzione ottima O per il programma L usando un metodo in tempo polinomiale per risolvere programmi lineari.
  2. Scegli tutti gli insiemi S per i quali la corrispondente variabile x S ha valore almeno 1/ f nella soluzione O .

Risultati di inapprossimabilità

Quando si fa riferimento alla dimensione dell'universo, Lund e Yannakakis (1994) hanno mostrato che la copertura degli insiemi non può essere approssimata in tempo polinomiale entro un fattore di , a meno che NP non abbia algoritmi di tempo quasi polinomiale . Feige (1998) ha migliorato questo limite inferiore sotto le stesse ipotesi, che sostanzialmente corrispondono al rapporto di approssimazione raggiunto dall'algoritmo greedy. Raz & Safra (1997) hanno stabilito un limite inferiore di , dove è una certa costante, nell'ipotesi più debole che P NP . Un risultato simile con un valore maggiore di è stato recentemente dimostrato da Alon, Moshkovitz & Safra (2006) . Dinur & Steurer (2013) hanno mostrato un'inapprossimabilità ottimale dimostrando che non può essere approssimata a meno che P NP .

Coperchio del set ponderato

Rilassando il programma lineare intero per la copertura dell'insieme ponderato sopra indicato , si può utilizzare l' arrotondamento casuale per ottenere un'approssimazione del fattore. L'analisi corrispondente per la copertura del set non ponderata è delineata in Arrotondamento casuale#Algoritmo di arrotondamento casuale per la copertura del set e può essere adattata al caso ponderato.

Problemi correlati

  • Colpire il set è una riformulazione equivalente di Set Cover.
  • La copertura del vertice è un caso speciale di Hitting Set.
  • La copertura del bordo è un caso speciale di Set Cover.
  • La copertura dell'insieme geometrico è un caso speciale di copertura dell'insieme quando l'universo è un insieme di punti e gli insiemi sono indotti dall'intersezione dell'universo e delle forme geometriche (ad es. dischi, rettangoli).
  • Imposta l'imballaggio
  • Il problema della copertura massima consiste nello scegliere al massimo k insiemi per coprire il maggior numero possibile di elementi.
  • L'insieme dominante è il problema di selezionare un insieme di vertici (l'insieme dominante) in un grafo in modo tale che tutti gli altri vertici siano adiacenti ad almeno un vertice nell'insieme dominante. È stato dimostrato che il problema del set dominante è NP completo attraverso una riduzione dalla copertura del set.
  • Il problema esatto della copertura è scegliere un set di copertura senza elementi inclusi in più di un set di copertura.
  • Copertina del set rosso blu


Appunti

Riferimenti

link esterno