Я не могу найти хорошую документацию по использованию алгоритмов 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#abeb42305639e48a3160a45aee354783a (C++), где ясно, что я могу запустить алгоритм, а затем использовать toString (), чтобы увидеть структуру. Думаю, мне нужен Graph G, но я не знаю, что делать дальше.
Как и многие классы в 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
- это вектор размера п (количество узлов графа), который содержит идентификатор сообщества каждого узла (например, используйте c = plpCommunities[v]
для хранения в c
идентификатора сообщества узла. v
).