Найти ближайшие узлы между множеством соседей к цели - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь воссоздать в python модель Клейнберга (явления маленького мира). Я начал создавать циклический одномерный граф, добавляя m случайных длинных ссылок. Сейчас я изо всех сил пытаюсь создать такую ​​функцию, чтобы, начиная со случайного узла, мы должны были перейти к одной из его окрестностей, которая является ближайшей к целевому узлу t. Теперь моя проблема в том, что я не могу использовать функцию shorttest_path, так как в модели Кляйнберга информация является частичной, то есть с первого узла мы не можем наблюдать, какие ребра находятся между нашими соседями и другими узлами, но мы просто знаем, что мы находимся в графе цикла. , Например, рассмотрим граф циклов с 10 узлами. Узел 3 является отправителем, а узел 7 является целью. Узел 3 имеет узлы 2,4,5 в качестве соседей, и он не может наблюдать за связями своих соседей. Итак, он отправил сообщение на узел 5, тем не менее узел 2 был связан с узлом 7. Я написал функцию расстояния, но я застрял здесь, так как совершенно не представляю, как это написать.

def distance(i,j,d,n):
    left = (n - abs(i-j))/d #distance counter clockwise
    right = abs(i-j)/d #distance clockwise
    if np.ceil(left) > np.ceil(right):
        return np.ceil(right)
    else :
        return np.ceil(left)

Моя идея состояла в том, чтобы создать вид l oop, используя эту функцию расстояния, где j - целевой узел, а i - соседи нашего отправляющего узла, в результате чего ближайший узел (с точки зрения расстояния) к цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...