Я добавляю ноду и соединяю её со всеми, которые доступны по географии. Речь идёт о geocast (
https://ru.wikipedia.org/wiki/Geocast). Далее все поддеревья графа должны остаться поддеревьями графа, а не стать подграфами графа - после того, как я добавил новую связь по географии я должен проверить организовался ли цикл в поддереве и если он организовался - прервать ту связь, которая минимальным путём до корня графа (он же - единый корень всех поддеревьев) длинее другой - например, определив те две связи, которые образуют потенциальный цикл посчитать через них минимальный путь до корня и ту связь, у которой минимальный путь до корня длинее - удалить.