Skip to main content

is_perfect_matching

Function is_perfect_matching 

Source
pub fn is_perfect_matching(
    graph: &Graph,
    edge_indices: &[usize],
) -> IgraphResult<bool>
Expand description

Check whether a matching is a perfect matching.

A perfect matching covers every vertex exactly once. Only possible when the graph has an even number of vertices.

ยงExamples

use rust_igraph::{Graph, maximum_matching, is_perfect_matching};

// K_4 has a perfect matching
let g = Graph::from_edges(
    &[(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)], false, Some(4)
).unwrap();
let m = maximum_matching(&g).unwrap();
assert!(is_perfect_matching(&g, &m).unwrap());