Expand description
Compressed sparse graph algorithms module
This module provides graph algorithms optimized for sparse matrices,
similar to SciPy’s sparse.csgraph
module.
§Features
- Shortest path algorithms (Dijkstra, Bellman-Ford)
- Connected components analysis
- Graph traversal utilities (BFS, DFS)
- Laplacian matrix computation
- Minimum spanning tree algorithms
- Graph connectivity testing
§Examples
§Shortest Path
use scirs2_sparse::csgraph::shortest_path;
use scirs2_sparse::csr_array::CsrArray;
// Create a graph as a sparse matrix
let rows = vec![0, 0, 1, 2];
let cols = vec![1, 2, 2, 0];
let data = vec![1.0, 4.0, 2.0, 3.0];
let graph = CsrArray::from_triplets(&rows, &cols, &data, (3, 3), false).unwrap();
// Find shortest paths from vertex 0
let distances = shortest_path(&graph, Some(0), None, "dijkstra").unwrap();
§Connected Components
use scirs2_sparse::csgraph::connected_components;
use scirs2_sparse::csr_array::CsrArray;
// Create a graph
let rows = vec![0, 1, 2, 3];
let cols = vec![1, 0, 3, 2];
let data = vec![1.0, 1.0, 1.0, 1.0];
let graph = CsrArray::from_triplets(&rows, &cols, &data, (4, 4), false).unwrap();
// Find connected components
let (n_components, labels) = connected_components(&graph, false).unwrap();
Re-exports§
pub use connected_components::*;
pub use laplacian::*;
pub use minimum_spanning_tree::*;
pub use shortest_path::*;
pub use traversal::*;
Modules§
- connected_
components - Connected components analysis for sparse graphs
- laplacian
- Laplacian matrix computation for sparse graphs
- minimum_
spanning_ tree - Minimum spanning tree algorithms for sparse graphs
- shortest_
path - Shortest path algorithms for sparse graphs
- traversal
- Graph traversal algorithms for sparse graphs
Enums§
- Graph
Mode - Graph representation modes
Functions§
- num_
edges - Get the number of edges in a graph matrix
- num_
vertices - Get the number of vertices in a graph matrix
- to_
adjacency_ list - Convert a sparse matrix to adjacency list representation
- validate_
graph - Check if a sparse matrix represents a valid graph