я использую Graphchi для изучения алгоритмов обнаружения сообщества на взвешенном графике.
В документации я не могу найти метод для расчета общий вес ребра.
Есть ли способ сделать это?
Я думал о начальной фазе предварительной обработки, сохраняя глобальную переменную в моем классе GraphChiProgram и суммируя вес ребер в функции обновления для вершин.
Проблема в том, что ребро может быть подсчитано несколько раз: если вершина A является соседом вершины B, то одно ребро AB будет подсчитано два раза.
Сейчас я передаю значение из командной строки, вычисляя его с помощью отдельного сценария в моем графическом файле, но мне не нравится это решение.
Вы можете суммировать общий вес, как вы предлагаете: делать функцию обновления, которая суммирует веса ребер. Но вместо суммирования по всем ребрам, суммируйте только по ребрам (или ребрам). Таким образом, никакое ребро не суммируется дважды.
Других решений пока нет …