Dato N punti (in 2D) con coordinate xey. Devi trovare un punto P (in N punti dati) tale che la somma delle distanze da altri (N-1) punti a P sia minima.trova un punto più vicino ad altri punti
per es. N punti dati p1 (x1, y1), p2 (x2, y2) ...... pN (xN, yN). abbiamo trovato un punto P tra p1, p2 .... PN la cui somma di distanze da tutti gli altri punti è minima.
Ho usato un approccio a forza bruta, ma ho bisogno di un approccio migliore. Ho anche provato a trovare la mediana, la media ecc. Ma non funziona per tutti i casi.
quindi mi è venuta l'idea che avrei trattato X come un vertice di un poligono e trovato il centroide di questo poligono, e quindi sceglierò un punto da Y più vicino al centroide. Ma non sono sicuro che il centroide minimizzi la somma delle sue distanze rispetto ai vertici del poligono, quindi non sono sicuro che sia un buon modo? C'è qualche algoritmo per risolvere questo problema?
un ottimizzazione per l'approccio forza bruta sarebbe calcolare la distanza al quadrato anziché la distanza.Questo perché il calcolo della radice quadrata è un'operazione molto costosa. –
@KshitijMehta l'ottimizzazione della somma delle distanze al quadrato non è la stessa cosa dell'ottimizzazione della somma delle distanze. –
Hey coder, credo di aver trovato un algoritmo per risolvere questo problema. È piuttosto complicato e probabilmente ci vorranno alcuni giorni prima che io possa pubblicare una spiegazione decente come risposta. Fammi sapere se sei ancora interessato ... – Cephron