Сумма весов соседних узлов в питоне - PullRequest
0 голосов
/ 30 апреля 2018

Мне нужно сложить общий вес соседнего узла. Например, у меня есть узел (1), где его соседями являются (2) и (4). Его ребра имеют вес: (1-2, вес = 3) и (1-4, вес = 5). Затем мне нужен результат суммирования весов (8).

Я пытался:

sum_tot = []
for neigh in G.neighbors(1):
    sum_tot.append(G[1][neigh]['weight'])
sum(sum_tot)

Но результаты 0 Есть идеи по программированию на питоне?

1 Ответ

0 голосов
/ 30 апреля 2018

Я очень плохо знаком с Python, но похоже, что ваша проблема должна быть представлена ​​матрицей nxn для n узлов. Пусть каждая запись в матрице представляет вес между каждым узлом в столбце для каждого узла в строке. Таким образом, вы представляете расстояние между узлами 1 и 2 с 3 в этом месте. Теперь у Python нет массивов, но вы можете сделать это с помощью списков.

После инициализации этого списка в 0, вы можете назначить что-то вроде этого:

network[1][2]=3
network[2][1]=3
network[1][4]=5
network[4][1]=5

написать операции со строками и столбцами для добавления весов, пройдя матрицу, начиная с строки узла, затем переключив строку узла с помощью столбца и повторив попытку. Если вы НЕ МОЖЕТЕ найти соединение, отличное от того, где вы были на предыдущей итерации, тогда вы находитесь в конце и вам нужно будет начать с нового узла и повторить процесс. Я сделал бы итерацию для каждой строки и распечатал бы таблицу узлов и весовых сумм. Надеюсь, что это дает вам некоторые идеи.

Надеюсь, я ответил на ваш вопрос. Я математик, но любитель Python.

...