Hypergraph is a data structure library to generate directed hypergraphs.
A hypergraph is a generalization of a graph in which a hyperedge can join any number of vertices.
This library aims at providing the necessary methods for modeling complex, multiway (non-pairwise) relational data found in complex networks. One of the main advantages of using a hypergraph model over a graph one is to provide a more flexible and natural framework to represent entities and their relationships (e.g. Alice uses some social network, shares some data to Bob, who shares it to Carol, etc).
This library enables you to represent:
- non-simple hypergraphs with two or more hyperedges - with different weights - containing the exact same set of vertices
- self-loops - i.e., hyperedges containing vertices directed to themselves one or more times
- unaries - i.e., hyperedges containing a unique vertex
- 100% safe Rust
- Proper error handling
- Stable indexes assigned for each hyperedge and each vertex
- Parallelism (with Rayon)
Add this to your Cargo.toml
(replace current_version with the latest version of the library):
[dependencies]
hypergraph = "curent_version"
Please read the documentation to get started.