Допустим, у меня есть график, и в нем есть один тип узла и один тип ребра.Мне нужны центральности между всеми узлами.Я могу использовать neo4j algo library :
CALL algo.betweenness.stream('Node','relation', {direction:'both'})
YIELD nodeId, centrality
Но предполагается, что стоимость каждого ребра равна 1. Мне нужен запрос, который использует затраты ребер при расчете промежуточности.Я не вижу в документации каким-либо образом .
Есть ли способ рассчитать центральность в взвешенных графиках с использованием Neo4j?
РЕДАКТИРОВАТЬ:
Вот пример изображения.
Вы можете создать этот график с помощью этого запроса:
MERGE (a0:A{name:"A0"}) MERGE (a1:A{name:"A1"}) MERGE (a2:A{name:"A2"}) MERGE (a3:A{name:"A3"}) MERGE (a4:A{name:"A4"}) MERGE (a0)-[:r{cost:2}]-(a1) MERGE (a2)-[:r{cost:1}]-(a1) MERGE (a1)-[:r{cost:3}]-(a3) MERGE (a3)-[:r{cost:1}]-(a4) MERGE (a0)-[:r{cost:6}]-(a4)
Если я использую запрос промежуточности, приведенный выше, вот результаты:
**nodeId centrality**
0 1.0
1 3.5
2 0.0
3 1.0
4 0.5
Но если мы используем затраты, указанные на изображении, центральности промежуточности должны быть такими:
**nodeId centrality**
0 0.0
1 5.0
2 0.0
3 3.0
4 0.0
Я рассчитал их вручную.Они могут ошибаться, но это дает представление.