Алгоритм поиска точки с минимальным суммарным расстоянием между точками

Я создаю приложение, основанное на поиске "удобного места встречи", учитывая набор мест.

В настоящее время я определяю "удобное" как "минимизацию общего расстояния поездки". Эта проблема отличается от поиска центроида, что иллюстрируется следующим примером (для удобства использую картезианские координаты, а не широту и долготу):

  • A находится в точке (0,0)
  • B находится в точке (0,0)
  • C находится в точке (0,12)

Место минимального общего пробега для этих точек находится в точке (0,0) с общим пробегом 12; центроид находится в точке (0,4) с общим пробегом 16 (4 + 4 + 8).

Если бы местоположение было ограничено нахождением в одной из точек, то задача упростилась бы, но это не то ограничение, которое я хочу иметь (в отличие, например, от этого в остальном похожего вопроса).

Что я не могу сделать, так это придумать какой-нибудь алгоритм для решения этой задачи - предложения приветствуются, пожалуйста!

16
задан Community 23 May 2017 в 12:02
поделиться