Skip to main content

link_pred_adamic_adar

Function link_pred_adamic_adar 

Source
pub fn link_pred_adamic_adar(
    graph: &Graph,
    pairs: &[(VertexId, VertexId)],
) -> IgraphResult<Vec<f64>>
Expand description

Compute Adamic-Adar Index for given vertex pairs.

For each pair (u, v), returns Σ_{w ∈ N(u) ∩ N(v)} 1/log(deg(w)). Weights common neighbors by the inverse log of their degree, giving more importance to less-connected shared neighbors.

§Examples

use rust_igraph::{Graph, link_pred_adamic_adar};

let g = Graph::from_edges(
    &[(0,1),(0,2),(1,2),(1,3),(2,3)], false, Some(4)
).unwrap();
let scores = link_pred_adamic_adar(&g, &[(0, 3)]).unwrap();
// Common neighbors of 0,3 are {1,2}; deg(1)=3, deg(2)=3
// AA = 1/log(3) + 1/log(3)
let expected = 2.0 / 3.0_f64.ln();
assert!((scores[0] - expected).abs() < 1e-10);