nauty-pet
Canonical graph labelling.
Leverages nauty and Traces to find canonical labellings for petgraph graphs.
Example
use UnGraph;
use *;
// Two different vertex labellings for the tree graph with two edges
let g1 = from_edges;
let g2 = from_edges;
// There are two equivalent labellings
let automorphism_info = g1.clone.try_into_autom.unwrap;
assert_eq!;
// The canonical forms are identical
let c1 = g1.clone.into_canon;
let c2 = g2.clone.into_canon;
assert!;
// Alternatively, we can use a dedicated `struct` for canonically
// labelled graphs
let c1 = from;
let c2 = from;
assert_eq!;
Features
-
serde-1
: Enables serialisation of CanonGraph objects using serde. -
stable
: Ensures deterministic behaviour when node or edge weights are distinguishable, but compare equal.
To enable features feature1
, feature2
add the following to
your Cargo.toml:
[]
= { = "0.8", = ["feature1", "feature2"] }
License: Apache-2.0