¿Cómo obtener la mediana geométrica en 1D resolviendo un problema de optimización?

tengo un conjunto de numeros { X 1 , X 2 , } . La mediana podría obtenerse ordenando, pero quiero obtenerla resolviendo un problema de optimización. Sé que los medios minimizan

i | X i m |

Sin embargo, al resolver el problema de optimización a través de un solucionador, obtengo una discrepancia entre la mediana real y la mediana obtenida. qué puede salir mal ?

PD: la mediana podría considerarse como el punto que, si se coloca entre los puntos, la distancia entre él y todos los puntos es la más pequeña.

Por lo que vale, hay un algoritmo de búsqueda de la mediana de tiempo lineal (que evita la clasificación).

Respuestas (1)

Es cierto que la mediana tiene esta propiedad.

Si el número de puntos es impar, entonces la mediana es el único número con esta propiedad. Si obtiene una discrepancia allí, entonces el solucionador no es preciso o hay un problema con su entrada.

Sin embargo, si tiene un número par de puntos, podría haber muchas soluciones igualmente buenas. Supongamos que los puntos están en orden creciente: X 1 X 2 X 2 norte . Entonces para cualquier punto m [ X norte , X norte + 1 ] , tenemos

i = 1 2 norte | X i m | = i = 1 norte ( m X i ) + i = norte + 1 2 norte ( X i m ) = i = norte + 1 2 norte X i i = 1 norte X i .
Hay norte términos donde m es positivo y norte términos donde m es negativo, por lo que cancelan, y no hay dependencia de m : ¡todos los puntos en este rango son igualmente buenos!

De hecho, todos los puntos en el rango [ X norte , X norte + 1 ] serán las soluciones óptimas. (Si m > X norte + 1 , entonces hay más + m términos que m términos, por lo que disminuimos la suma al disminuir m . Si m < X norte , entonces hay más m términos que + m términos, por lo que disminuimos la suma aumentando m .)

La mediana generalmente se define como X norte + X norte + 1 2 en este caso, pero es más probable que un solucionador de LP proporcione X norte o X norte + 1 como la solución óptima.