Обнаружение сообщества с использованием Netwokit с PLP и PLM ( Python 3.x)

Я не могу найти хорошую документацию для использования алгоритмов PLP и PLM. Мне нужно обнаружить сообщество в графе, используя библиотеки networkit. Я нашел только эту ссылку: https://networkit.iti.kit.edu/api/community.html но я не понимаю, какая функция может дать мне структуру сообщества и как я могу запустить алгоритм. Мне нужно какое-то объяснение, как это: https://networkit.iti.kit.edu/api/doxyhtml/class_networ_kit_1_1_p_l_p.html (C++), где ясно, что я могу запустить алгоритм, а затем использовать структуру toString(, Мне нужен график G, я думаю, но я не знаю, что делать дальше.

1 ответ

Как много классов в NetworKit, оба PLP а также PLM включить run() метод, который выполняет алгоритм, и вам нужно вызвать его, прежде чем получить результат. Кроме того, нет необходимости использовать toString() метод получения структуры сообщества; Вы можете использовать getPartition() метод (включен в оба PLP а также PLMсм. документацию), которая возвращает Partition объект, который представляет структуру сообщества (вы можете найти документацию Partition здесь)

Ниже приведен простой пример:

from networkit import *

# In this example I generate a graph with a random community structure.
# In your code use your own graph.
g = generators.ClusteredRandomGraphGenerator(100, 10, 0.5, 0.01).generate()

# Creating an instance of PLP and running the algorithm.
# Use community.PLM(g) to run the PLM algorithm.
plp = community.PLP(g).run()

# Getting the Partition object.
plpPartition = plp.getPartition()

# Getting the community IDs.
plpCommunityIDs = plpPartition.getSubsetIds()

# Getting the community ID of each node of the graph g.
plpCommunities = plpPartition.getVector()

Каждое сообщество связано с уникальным целочисленным идентификатором, а каждый узел - с идентификатором сообщества. plpCommunityIDs это набор, который содержит все идентификаторы сообщества, в то время как plpCommunities является вектором размера n (число узлов графа), который содержит идентификатор сообщества каждого узла (например, использовать c = plpCommunities[v] хранить в c идентификатор сообщества узла v).

Другие вопросы по тегам