Skip to main content

maximal_independent_vertex_sets

Function maximal_independent_vertex_sets 

Source
pub fn maximal_independent_vertex_sets(
    graph: &Graph,
) -> IgraphResult<Vec<Vec<VertexId>>>
Expand description

Returns all maximal independent vertex sets in the graph.

A maximal independent set cannot be extended by adding another vertex without creating an edge within the set. Uses Bron-Kerbosch on the complement adjacency.

Edge directions are ignored for directed graphs.

ยงExamples

use rust_igraph::{Graph, maximal_independent_vertex_sets};

// Triangle: each single vertex is a maximal independent set
let mut g = Graph::with_vertices(3);
g.add_edge(0, 1).unwrap();
g.add_edge(1, 2).unwrap();
g.add_edge(0, 2).unwrap();

let sets = maximal_independent_vertex_sets(&g).unwrap();
assert_eq!(sets.len(), 3);
for s in &sets {
    assert_eq!(s.len(), 1);
}