Algoritmos para ubicar puntos de manera óptima

8

Estoy tratando de comparar ubicaciones de donde se han construido varios miles de instalaciones en donde se ubicarían de manera óptima para minimizar los tiempos de viaje de la población (representados por bloque censal o centroides del tracto). Tengo problemas para encontrar mucho de cómo localizar puntos de manera óptima.

Tengo una idea de cómo elegir estas ubicaciones, pero la gran cantidad de puntos que se colocarán en el espacio significa que cualquier algoritmo no optimizado inteligentemente llevará mucho tiempo, posiblemente años. Por lo tanto, mi pregunta: ¿existen algoritmos estándar para elegir dónde ubicar un número fijo de puntos ?

Finalmente tomaré cualquier algoritmo que encuentre como punto de partida y lo adaptaré para incorporar más información que solo los recuentos de población. Por lo tanto, la respuesta preferida incluiría una descripción detallada del algoritmo, el código o estar escrito en un lenguaje de código abierto, para que pueda replicarlo y extenderlo. Sin embargo, si ArcGIS tiene una función conveniente para esta optimización, me encantaría comenzar con eso.

Ari B. Friedman
fuente
1
Sería útil tener una descripción más clara, preferiblemente cuantitativa, de lo que significa "óptimo". Por ejemplo, ¿le interesa el tiempo promedio de viaje de ida y vuelta a la instalación más cercana o alguna otra medida de proximidad? Independientemente de su medida del costo del viaje, ¿desea comparar el costo de la configuración existente con el mejor costo que podría lograrse al reubicar cualquier instalación existente, o también desea permitir que se eliminen las instalaciones por completo? Aunque la eliminación de una instalación aumenta el tiempo medio de viaje, reduce el costo de construcción y mantenimiento de las instalaciones.
whuber
@whuber Por ahora solo estoy interesado en minimizar alguna función razonable de la distancia (ya sea en línea recta o el cuadrado de la misma). El problema de optimización eventual incluirá los factores que ha identificado y más (costo para reubicar una instalación, etc.). Pero por ahora solo quería una forma estándar de elegir ubicaciones para minimizar la distancia, tanto porque es un punto de partida para avanzar hacia el algoritmo final, como porque estoy en la cerca de continuar este proyecto y quiero explorar la estimación más cruda antes de refinarlo.
Ari B. Friedman

Respuestas:

3

Es posible que desee consultar el algoritmo de agrupación de K-means .

En la minería de datos, la agrupación de k-medias es un método de análisis de conglomerados que tiene como objetivo dividir n observaciones en k conglomerados en los que cada observación pertenece al conglomerado con la media más cercana. Esto da como resultado una partición del espacio de datos en celdas Voronoi.

Aquí hay otra definición :

La agrupación k-means es un método para clasificar / agrupar elementos en k grupos (donde k es el número de grupos preseleccionados). La agrupación se realiza minimizando la suma de las distancias al cuadrado (distancias euclidianas) entre los elementos y el centroide correspondiente.

Un centroide es "el centro de masa de un objeto geométrico de densidad uniforme", aunque aquí consideraremos los vectores medios como centroides.

ingrese la descripción de la imagen aquí

Figura 1. Un diagrama de dispersión agrupado. Los puntos negros son puntos de datos. Las líneas rojas ilustran las particiones creadas por el algoritmo k-means. Los puntos azules representan los centroides que definen las particiones.

En su situación, el bloque del censo o los centroides de la pista serían la entrada y el número de puntos N sería el número de grupos. Aquí hay un tutorial para comenzar.

RK
fuente
Interesante. Nunca pensé en K-means para esto, pero supongo que los centroides prefieren tener la propiedad que quiero.
Ari B. Friedman
Es posible que desee probarlo y ver cómo funciona :)
RK
Parece funcionar bien en datos de muestra, pero la implementación de R carece de la capacidad de ponderar (por población, en este caso). Puede que tenga que reescribir la función para permitir la ponderación. Ahí va mi fin de semana ;-)
Ari B. Friedman
1
Tenga cuidado: k-means no localiza puntos de manera óptima para la mayoría de los problemas de viaje. Es óptimo cuando el costo de un viaje es proporcional al cuadrado de su distancia. La solución para los costos típicos, que tienen una relación lineal con la distancia, es extremadamente difícil de obtener.
whuber
@whuber De hecho. Esto se aclara en una exposición rápida con código detallado (Fortran y C ++) aquí . Los costos de viaje están en relación con la atención de emergencia, por lo que un costo de viaje supra-lineal no es del todo irracional, aunque es poco probable que el cuadrado sea exactamente correcto.
Ari B. Friedman
1

Co-escribí un artículo sobre este problema en 1996, vea

Modelado y optimización de flujos utilizando modelos de interacción espacial paralelos (1996), Turton y Openshaw, PROCEDIMIENTOS DE EURO-PAR'96, VOLUMEN II.

Puede descargar una copia de citeseer

También escribimos

Turton I., Openshaw S. (1997) Modelos de interacción espacial paralelos. Modelización geográfica y ambiental, Volumen 1, número 2, páginas 179-197.

pero no puedo encontrar una copia en línea.

Ian Turton
fuente