Мне нужна помощь в выборе или создании алгоритма кластеризации в соответствии с определенными критериями.
Представьте, что вы управляете лицами, предоставляющими доставку газет.
- У вас есть набор уличных адресов, каждый из которых имеет геокодирование.
- Вы хотите сгруппировать адреса, чтобы каждый кластер был назначен человеку доставки.
- Количество лиц, осуществляющих доставку, или кластеров, не фиксировано. При необходимости я всегда могу нанять больше людей доставки или отложить их.
- Каждый кластер должен иметь примерно одинаковое количество адресов. Однако кластер может иметь меньше адресов, если адреса кластеров более распространены. (Другими словами: минимальное количество кластеров, где каждый кластер содержит максимальное количество адресов, а любой адрес в кластере должен быть разделен на максимальное расстояние.)
- Для бонусных очков, когда набор данных изменяется (адрес добавлен или удален), и алгоритм повторно запускается, было бы неплохо, если бы кластеры оставались неизменными (т.е. это исключает простые k-средства кластеризация, которая носит случайный характер). В противном случае люди доставки сойдут с ума.
Итак... идеи?
UPDATE
График уличной сети, как описано в ответе Arachnid, недоступен.