pub fn label_propagation(graph: &Graph) -> IgraphResult<LpaResult>Expand description
Run label propagation with the default options
(LpaVariant::Fast, no initial labels, no fixed vertices, seed 0).
§Errors
IgraphError::Unsupportedifgraphis directed (uselabel_propagation_with_optionsonce mode-aware overloads land).
§Examples
use rust_igraph::{Graph, label_propagation};
// Two K4 cliques joined by a single bridge edge — each vertex on the
// bridge endpoints has 3 in-cluster neighbours vs 1 cross-cluster, so
// LPA reliably keeps the bridge cut.
let mut g = Graph::with_vertices(8);
for u in 0..4 {
for v in (u + 1)..4 {
g.add_edge(u, v).unwrap();
}
}
for u in 4..8 {
for v in (u + 1)..8 {
g.add_edge(u, v).unwrap();
}
}
g.add_edge(3, 4).unwrap();
let r = label_propagation(&g).unwrap();
assert_eq!(r.membership[0], r.membership[1]);
assert_eq!(r.membership[4], r.membership[5]);
assert_ne!(r.membership[0], r.membership[4]);