Scelta di un sottoinsieme per massimizzare la distanza minima tra i punti


12

Ho una serie di punti e ho la distanza tra ogni punto D ( P i , P j ) . Queste distanze sono euclidee ma i punti si trovano in realtà in uno spazio di caratteristiche.CD(Pi,Pj)

Tra i punti voglio scegliere un sottoinsieme di n punti. Chiama questo sottoinsieme s . Voglio scegliere questo sottoinsieme in modo da massimizzare la distanza minima tra tutti i punti nel nuovo set di s .Cnss

maxsC|s|=n(mini,jsijD(Pi,Pj))

In questo momento sto usando l'arrampicata per risolvere questo problema. Comprendo che la ricottura simulata potrebbe fornire una soluzione migliore.

Esiste una soluzione nota a questo tipo di problema? O questo problema può essere riformulato in un altro problema che può essere facilmente risolto?


Sono interessato a un problema simile. Sulla base dei miei risultati di ricerca fino ad ora, è paragonabile al problema della dispersione p nel problema di localizzazione della struttura per il quale questo è un bel documento di revisione.
XTZ

Sai come si chiama questo problema?
Tarassaco

Risposte:


7

La versione del problema decisionale di questo problema di ottimizzazione è:

Data una soglia , si desidera sapere se è possibile trovare un sottoinsieme di punti in modo tale che ogni coppia di punti nel sottoinsieme sia almeno unità.tnt

Naturalmente, se riesci a risolvere il problema decisionale, possiamo risolvere il tuo problema di ottimizzazione (mediante ricerca binaria sulla soglia ).t

Ora questo problema di decisione è il problema di trovare un insieme indipendente in un grafico euclideo, dove i punti hanno un vantaggio tra di loro se sono a distanza a parte. Un approccio sarebbe quello di esaminare algoritmi di approssimazione standard per set indipendenti.x,yt

Ancora meglio, puoi guardare gli algoritmi per un set indipendente nei grafici delle intersezioni geometriche . Prendere in considerazione una serie di dischi, in cui ogni disco ha un diametro ed è centrata in uno dei punti nella vostra serie . Ora possiamo formare un grafico di intersezione geometrica, in cui esiste un vertice per ciascun disco e un bordo tra due vertici se i loro dischi corrispondenti si intersecano. È stato studiato il problema di trovare un set indipendente in questo tipo di grafico e ci sono algoritmi di approssimazione per questo problema che potresti provare a usare.tC

Se si desidera l'esatto ottimale anziché un'approssimazione, è possibile utilizzare uno qualsiasi dei "martelli grandi" standard, come un solutore SAT o un risolutore ILP. Esiste un modo semplice per formulare il problema del set indipendente come istanza SAT, quindi è possibile applicare un solutore SAT per scoprire se esiste un sottoinsieme di punti che sono tutti unità distanti tra loro.nt

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.