icentral-bbfs 0.1.0

A Rust crate providing Bidirectional Breadth-First Search (BBFS) for efficient computation of betweenness centrality in large graph structures.
Documentation
# iCentral BBFS

`icentral-bbfs` is a Rust library providing functionality for computing betweenness centrality in large network graphs through a specialized Breadth-First Search variant, namely Bidirectional BFS (BBFS). This crate is designed for advanced network analysis and suits academic researchers and performance-critical computational environments where efficient graph computations are imperative.

## Functionality

The core functionality revolves around calculating the shortest paths and betweenness centrality metric via bidirectional BFS, optimizing traversal from both source and destination nodes. It leverages `BBFSConfig` to allow finer control over computation, with options to handle new sigmas for path count precision.

## Key Structures

### `BBFSConfig`

A structure that defines the configuration for the BBFS algorithm:
- `edge`: An `Option<Edge>` representing the bidirectional edge, assuming `src` is nearer the source than `dst`.
- `handle_new_sigmas`: A boolean to toggle computation of new and old sigma values, disabling the need for partial BFS computations later.

## Example Usage

```rust
use icentral_bbfs::{BBFSConfig, bbfs};

let config = BBFSConfig::new_rbfs_d1(some_edge);
bbfs(Some(config), &mut workspace, &component, source_node_id)?;
```

## Advanced Considerations

- Assumes `edge.src` is closer to the BFS source.
- Toggle `handle_new_sigmas` for more comprehensive sigma computations.

## Installation

Add to your `Cargo.toml`:
```toml
[dependencies]
icentral-bbfs = "0.1.0"
```

## Licensing

This software is distributed under the MIT License.

---

*Note: This README.md was generated by an AI model and may not be 100% accurate however it should be pretty good.*

This crate is in the process of being translated from c++ to rust. Currently, it still needs exhaustive testing.  It is likely there currently exist many glitches which need to be fixed before proper usage. This crate is based on the original icentral program developed by Fuad Jamor. Please see the following repository for details: https://github.com/fjamour/icentral.

For progress updates, see the workspacer rust project.