Esto se conoce como el "Centro de distancia" y es diferente del centroide.
En primer lugar, debe definir qué medida de distancia está utilizando. Si suponemos que está utilizando la métrica estándar de d = sqrt ((x1-x2)^2 + (y1-y2)^2), entonces no es única, y el problema es minimizar esta suma.
El ejemplo más fácil para mostrar esta respuesta no es único es el ejemplo de línea recta. Cualquier punto entre los dos puntos tiene una distancia total igual a todos los puntos.
En 1D, la respuesta correcta será cualquier respuesta que tenga el mismo número de puntos a la derecha y a la izquierda. Mientras esto sea cierto, cualquier movimiento hacia la izquierda y la derecha aumentará y disminuirá los lados izquierdo y derecho en la misma cantidad, por lo que la distancia será la misma. Esto también prueba que el centroide no es necesariamente la respuesta correcta.
Si ampliamos a 2D, este ya no es el caso, ya que el sqrt hace que el problema se pondere. ¡Sorprendentemente para mí no parece haber un algoritmo estándar! La página here parece usar un método de fuerza bruta. ¡Nunca lo supe!
Si quisiera usar un algoritmo, entonces encontraría el punto medio en X e Y como punto de inicio, luego usaría un gradient descent algorithm - esto daría la respuesta bastante rápido. Toda la ecuación termina como cuadrática, por lo que parece que debería haber una solución exacta.
No cierre esto, los algoritmos de geometría son enteramente dentro del alcance de desbordamiento de pila –
Es tarea? Además, ¿en qué idioma estás tratando de implementar esto? – Piskvor
No, no es tarea. Estoy estudiando algoritmos en geometría computacional. Así que tengo una duda. Lo estoy haciendo en C. – nowonder