Massimizza la distanza tra i nodi k in un grafico


8

Ho un grafico non ponderato non orientato e voglio selezionare nodi da tale che siano il più possibile accoppiati l'uno dall'altro, in termini di distanza geodetica . In altre parole, devono essere sparsi nel grafico il più possibile.solKsol

Let la lunghezza di un percorso più breve tra e in . Ora, per un insieme di vertici , definisci d(u,v)uvsolXV(sol)

d(X)=Σ{u,v}Xd(u,v).

Lascia che il problema SCATTERED SET sia il problema che sull'input sol,K chiede di trovare un set di K vertici X massimizzando d(X).

Esiste un algoritmo efficiente che risolve SCATTERED SET?


@DW L'obiettivo sarebbe quello di massimizzare la distanza tra tutti i nodi scelti. Quindi nel tuo esempio 5,5,5 sarebbe meglio dato che sarebbe 15. Un altro modo di osservarlo è che devo massimizzare il numero di nodi intermedi nel grafico che uno dovrebbe attraversare per poter infine visitare tutto il nodi scelti. Non sei così sicuro del clustering, hai in mente un approccio particolare?
jbx,

Questo è in qualche modo simile al problema del numero geodetico. Una serie di verticiX di un grafico solè geodetico se ogni vertice disol si trova su un percorso più breve tra due vertici (non necessariamente) distinti in X. Dato un graficosol e un numero intero K, il problema è decidere se sol ha un insieme geodetico di cardinalità al massimo K. Il problema è NP-completo anche per i grafici bipartiti cordali.
Juho,

L'obiettivo può essere riscritto per massimizzare la distanza media.
Pål GD,

in qualche modo simile alla ricerca di hub / centri in un grafico
vzn

Risposte:


4

Non so se esiste un algoritmo del tempo polinomiale (sembra che potrebbe essere NP-difficile), ma qui ci sono alcuni approcci algoritmici plausibili che potresti prendere in considerazione, se devi risolverlo in pratica:

Euristico

Un algoritmo ben esplorato è Furthest Point First (FPF). Ad ogni iterazione, sceglie un punto più lontano dall'insieme di punti selezionato finora. iterateKvolte. Poiché si tratta di una strategia avida, non c'è motivo di aspettarsi che ciò dia una risposta ottimale o addirittura vicina all'ottimale, ed è stato progettato per ottimizzare una funzione obiettivo leggermente diversa ... ma in alcuni contesti fornisce una ragionevole approssimazione, quindi potrebbe valere la pena provare.

FPF esce dalla letteratura sul clustering basato su grafici ed è stato introdotto nel seguente documento di ricerca:

Teofilo F. Gonzalez. Clustering per ridurre al minimo la distanza massima dell'intercluster . Theoretical Computer Science, vol 38, pagg. 293-306, 1985.

Potresti provare ad esplorare la letteratura sul clustering basato su grafici per vedere se qualcuno ha studiato il tuo problema specifico.

Algoritmi esatti

Se hai questo problema in pratica e hai bisogno di una soluzione ottimale esatta, potresti provare a risolverlo usando un risolutore ILP.

Ecco come. Introdurre variabili 0-o-1xio, dove Xio indica se il ioè stato selezionato il vertice e variabili 0 o 1 yio,j, con il significato previsto che yio,j=1 solo se Xio=1 e Xj=1. Ora massimizza la funzione obiettivoΣio,jd(io,j)yio,j, soggetto ai vincoli ΣXioK e Xioyio,j e Xjyio,j. Ora risolvi questo ILP con un solutore ILP standard. Poiché l'ILP è NP-difficile, non vi è alcuna garanzia che questo sia efficiente, ma potrebbe funzionare su alcune istanze problematiche.

Un altro approccio consiste nell'utilizzare MAX-SAT ponderato . In particolare, introdurre variabili booleaneXio, dove Xio è vero se il ioè stato selezionato il vertice e le variabili yio,j. La formula èφio,jyio,j, dove φ deve essere vero (le sue clausole hanno un peso W per alcuni molto grandi W) e ogni clausola yio,j è dato peso d(io,j). Definisci la formulaφ per essere vero se al massimo K del Xiosono vere (vedi qui per i dettagli su come farlo) e seyio,j=XioXj per tutti io,j. Ora la soluzione a questo problema MAX-SAT ponderato è la soluzione al problema originale, quindi puoi provare a lanciare un solutore MAX-SAT ponderato sul problema. Si applicano gli stessi avvertimenti.


8

No, il problema è NP-completo.

Permettere (sol,K)essere un'istanza di SET INDIPENDENTE. Costruiresol' aggiungendo un vertice universale u per sol. L'osservazione cruciale è che la distanza tra due vertici insol è 1 in sol' se e solo se sono adiacenti in sole 2 altrimenti.

Ora, la soluzione ottimale di SCATTERED SET su input (sol',K) è 2(K2) se e solo se sol ha un set di dimensioni indipendente K.

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.