Можно ли создать граф свойств в NetworKit?

Например, я хотел бы добавить некоторые атрибуты к узлам и ребрам (скажем, некоторые метки или любую другую дополнительную информацию).

Возможно ли это сделать в NetworKit?

Заранее спасибо!

2 ответа

Решение

NetworKit не хранит внутри себя дополнительные атрибуты узла / ребра. Тем не менее, предполагая, что у вас есть график GВы можете хранить свойства извне (например, в списке или на карте) и использовать идентификаторы узлов / ребер для доступа к ним. В NetworKit идентификаторы узлов всегда индексируются от 0 до G.upperNodeIdBound() - 1в то время как идентификаторы ребер всегда индексируются от 0 до G.upperEdgeIdBound() - 1,

Чтобы использовать пограничные идентификаторы, вам сначала нужно позвонить G.indexEdges(), так как идентификаторы ребер не генерируются по умолчанию. Затем, G.edgeId(u, v) возвращает идентификатор ребра из узла u в узел v,

Вы можете найти больше об этом в документации класса NetworKit Graph.

Теперь последняя версия предоставляет API под названием «attachNodeAttribute» для создания атрибута для каждого узла в графе. Вы можете прикрепить атрибут узла к графу G, а затем получить и установить атрибуты для каждого узла.

Например:

      A = G.attachNodeAttribute("attributeIdentifier", ofType) # attach a node attribute to Graph G

A[node] = value # set

value = A[node] # get

Перейдите по следующей ссылке, чтобы получить дополнительную информацию в документации:https://networkit.github.io/dev-docs/python_api/networkit.html?highlight=attachnodeattribute#networkit.Graph.attachNodeAttribute .

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