Vue d’ensemble
La centralité de graph d'un node est mesurée par la distance la plus courte maximale du node à tous les autres nodes accessibles. Cette mesure, ainsi que d'autres mesures comme la centralité de proximité et le diamètre de graphe, peuvent être considérées conjointement pour déterminer si un node est littéralement situé au centre même du graph.
La centralité de graph prend des valeurs entre 0 et 1, les nodes avec des scores plus élevés sont plus proches du centre.
Concepts
Distance la Plus Courte
La distance la plus courte de deux nodes est le nombre de edges contenues dans le chemin la plus court entre eux. Veuillez vous référer à Closeness Centrality pour plus de détails.
Centralité de Graphe
Le score de centralité de graph d'un node défini par cet algorithme est l'inverse de la distance la plus courte maximale du node à tous les autres nodes accessibles. La formule est :
où x
est le node cible, y
est tout node qui se connecte avec x
le long des edges (x
lui-même est exclu), d(x,y)
est la distance la plus courte entre x
et y
.
Dans ce graph, le nombre vert et le nombre rouge à côté de chaque node est la distance la plus courte entre le node et le node vert et le node rouge. Les scores de centralité de graph des nodes vert et rouge sont respectivement 1/4 = 0.25
et 1/3 = 0.3333
.
Concernant la centralité de proximité, le node vert a un score de 8/(1+1+1+1+2+3+4+3) = 0.5
, le node rouge a un score de 8/(3+3+3+2+1+1+2+1) = 0.5
. Lorsque deux nodes ont le même score de centralité de proximité, la centralité de graph peut être vue comme la base subsidiaire pour déterminer quel node est plus proche du centre.
Considérations
- Le score de centralité de graph des nodes isolés est 0.
- L'algorithme de Centralité de Graphe ignore la direction des edges mais les calcule comme des edges non dirigées.
Syntaxe
- Commande :
algo(graph_centrality)
- Paramètres :
Nom |
Type |
Spécification |
Défaut |
Optionnel |
Description |
---|---|---|---|---|---|
ids / uuids | []_id / []_uuid |
/ | / | Oui | ID/UUID des nodes à calculer, calculer pour tous les nodes si non défini |
direction | string | in , out |
/ | Oui | Direction de tous les edges dans le chemin le plus court, in pour direction entrante, out pour direction sortante |
limit | int | ≥-1 | -1 |
Oui | Nombre de résultats à retourner, -1 pour retourner tous les résultats |
order | string | asc , desc |
/ | Oui | Trier les nodes par le score de centralité |
Exemples
Le graph d'exemple est comme suit :
File Writeback
Spécification | Contenu |
---|---|
Nom du fichier | _id ,centrality |
algo(graph_centrality).params().write({
file:{
filename: 'res'
}
})
Résultats : Fichier res
J,0
I,0.25
H,0.2
F,0.333333
G,0.25
D,0.2
E,0.333333
C,0.2
A,0.25
B,0.2
Property Writeback
Spécification | Contenu | Écrire dans | Type de données |
---|---|---|---|
property | centrality |
Node property | float |
algo(graph_centrality).params().write({
db:{
property: 'gc'
}
})
Résultats : Le score de centralité pour chaque node est écrit dans une nouvelle propriété nommée gc
Direct Return
Alias Ordinal |
Type |
Description | Colonnes |
---|---|---|---|
0 | []perNode | Node et sa centralité | _uuid , centrality |
algo(graph_centrality).params({
ids: ['A', 'B', 'C'],
order: 'asc'
}) as gc
return gc
Résultats : gc
_uuid | centrality |
---|---|
2 | 0.2 |
3 | 0.2 |
1 | 0.25 |
Stream Return
Alias Ordinal |
Type |
Description | Colonnes |
---|---|---|---|
0 | []perNode | Node et sa centralité | _uuid , centrality |
algo(graph_centrality).params().stream() as gc
where gc.centrality > 0.25
return gc
Résultats : gc
_uuid | centrality |
---|---|
6 | 0.333333 |
5 | 0.333333 |