In N (~ 500) dimensioni, desidero trovare la sfera o il rettangolo più grande in modo che la sfera/il rettangolo non contenga punti già esistenti. L'intera serie di punti è limitata in una casella rettangolare allineata all'asse (limiti inferiore e superiore sui valori).sfera o rettangolo vuoto più grande
Esiste un metodo/codice temporale polinomico noto che è possibile utilizzare per risolvere il problema?
I due algoritmi noti: i) il rettangolo vuoto più grande all'interno di un rettangolo (http://www.cs.princeton.edu/~chazelle/pubs/ComputLargestEmptyRectangle.pdf) e, ii) trovare il cerchio vuoto più grande all'interno dei vincoli di posizione (http://www.cs.dartmouth.edu/reports/TR86-130.pdf) non funzionano.
Sebbene la complessità degli algoritmi di cui sopra sia N log N o N^2 log N, dove N è il numero di punti già esistenti, la complessità è anche una funzione lineare del numero di vertici dello scafo convesso o del limite poligono. Un rettangolo in 500 dimensioni avrà 2^500 angoli che rende le tecniche di cui sopra non fattibili.
Idealmente, sto cercando un metodo (non deve essere esatto) che può determinare il più grande cerchio/rettangolo in tempo polinomiale in N (numero di punti) e D (la dimensione).
Grazie.
Si potrebbe provare un algoritmo greedy: scegliere un punto a caso, trova la più grande rettangolo che lo contiene fattibile, o la più grande sfera fattibile centrato su di esso; per la sfera, puoi quindi provare a migliorare la soluzione con una ricerca locale; ripetere più volte, con punti diversi. Non sono convinto che funzionerà bene in alta dimensione, però: anche se c'è un grosso buco nella tua nuvola di punti, il suo volume relativo diminuisce con la dimensione ... –