Il problema k -centre ( problema k -center in inglese) è un problema di ottimizzazione combinatoria , una branca dell'algoritmo . Il problema può essere descritto in modo informale come segue: date n città, è necessario aprire una caserma dei pompieri in k città, in modo tale da ridurre al minimo la distanza tra ogni città e la stazione dei vigili del fuoco più vicina.
Più formalmente, si tratta, dato un insieme di punti V , di scegliere un sottoinsieme di k punti, chiamati centri, in modo tale che il massimo delle distanze dai punti di V al centro più vicino sia minimizzato. Nella maggior parte dei casi si considera implicitamente che lo spazio sia metrico , il problema viene poi espresso naturalmente come problema su un grafo i cui bordi hanno pesi che rispettano la disuguaglianza triangolare .
Questo problema è studiato principalmente dal punto di vista dell'approssimazione . Esistono diverse varianti, con metriche particolari o altri costi da minimizzare. Un'applicazione diversa dal posizionamento dell'installazione è il partizionamento dei dati (clustering) .
Il problema è espresso come segue nel caso metrico.
Dato un intero k e un grafo completo non orientato G = ( V , E ), la distanza d ( v i , v j ) ∈ N rispetto alla disuguaglianza del triangolo, trova un sottoinsieme S ⊆ V con | S | = K che riduce al minimo: . In altre parole, consideriamo il problema di ottimizzazione la cui funzione obiettivo è .
Il caso generale senza metrica è poco studiato perché troppo difficile anche dal punto di vista dell'approssimazione. Più precisamente, senza supposizioni il problema non è in APX . Il resto dell'articolo tratta implicitamente il caso metrico.
Il problema è NP-completo nella sua versione del problema decisionale .
Esistono algoritmi di approssimazione del rapporto 2 e se P è diverso da NP questo risultato è ottimale.
Il seguente algoritmo avido è stato proposto da Gonzalez nel 1985. A volte è chiamato primo attraversamento più lontano .
La soluzione calcolata è nel caso peggiore, la metà della soluzione ottimale. Lo dimostriamo rapidamente. Alla fine dell'algoritmo, sia r la distanza massima da un punto a un centro e sia p tale punto. Sia S l'insieme costituito da centri e p . L'insieme S ha k + 1 punti almeno r l' uno dall'altro. Quindi nella soluzione ottima, almeno due punti di S devono condividere lo stesso centro (ci sono più punti in S che centri nella soluzione ottima). Secondo la disuguaglianza triangolare, almeno uno di questi punti che condividono lo stesso centro si trova a una distanza r / 2 da un centro.
La complessità temporale dell'algoritmo è O (nk) .
Possiamo ottenere un'approssimazione 2 con il metodo della soglia ( chiamato anche potatura parametrica ). Consiste nel testare tutte le possibili soluzioni: il valore ottimale essendo un costo presente su uno spigolo, il numero di spigoli è polinomiale e possiamo fare un test polinomiale per ogni valore. Il test consiste nell'asportare i bordi di maggior peso e verificare che si possa ottenere un'approssimazione 2 nel grafo sfoltito.
Questo algoritmo è dovuto a Hochbaum e Shmoys.
Il problema è NP-difficile da affrontare per un rapporto inferiore a 2. Questo risultato è dovuto a Hsu e Nemhauser. La dimostrazione fornita di seguito è una riduzione al problema dell'insieme dominante .
Sia un'istanza (G, k) per il problema dell'insieme dominante. Lo trasformiamo in un'istanza G ' , il grafo completo avente gli stessi vertici, con i seguenti pesi sui bordi: 1 per i bordi di G e 2 per gli altri. Se l'insieme dominante è di dimensione inferiore a k allora G ' ha una soluzione k-centro di costo 1, altrimenti una soluzione di costo 2. Quindi un algoritmo di approssimazione di rapporto inferiore a 2, fornisce una risposta per il problema dell'insieme dominante che è esso stesso NP-difficile .
Se il grafico è planare esiste uno schema di approssimazione temporale polinomiale per il problema.
Un caso speciale è quando la metrica è euclidea , a volte chiamata k-centro geometrico .
Un modo classico per modificare il problema è aggiungere capacità diverse ai centri. Quindi un certo nodo, se viene scelto come centro, può servire solo un numero limitato di vicini.
Il problema k-median , utilizza lo stesso framework, ma con un'altra funzione da minimizzare. Nel problema ubicazione degli impianti ( impianto posizione problema ), si sostituisce il parametro k dai costi di apertura e collegamento.
Il calcolo di un k -centre può rendere possibile la partizione dei dati . Le distanze rappresentano quindi somiglianze, come per i k-mean .