Experimental evaluation of the Baswana–Sen randomized algorithm for constructing (2k-1)-spanners on Erdős–Rényi random graphs, with a Greedy Spanner baseline comparison.
| Command | Purpose |
|---|---|
make install |
Create venv and install Python dependencies |
make test |
Run setup verification and smoke tests |
make lint |
Byte-compile Python sources |
make agent:check |
Drift + feature equivalence + platform targets |
python scripts/run_all_experiments.py |
Full experiment suite |
python scripts/run_comparison.py |
Baswana-Sen vs Greedy comparison |
src/graphs/— Erdős–Rényi graph generationsrc/spanners/— Baswana-Sen and Greedy spanner algorithmssrc/evaluation/— Metrics, stretch, experiment orchestrationnotebooks/— Analysis and visualization (Colab-friendly)data/processed/— Timestamped CSV experiment results
- Never commit secrets, credentials, or large generated datasets beyond checked-in samples
- Use deterministic seeds (
src/utils/seeding.py) for reproducible experiments - CI uses
ubuntu-latestonly - Prefer
make install/make testover ad-hoc pip commands in docs
- Graphs use adjacency lists; stretch via BFS on unweighted graphs
- Disconnected graphs: largest connected component is extracted before spanner construction
- Baswana-Sen requires
k >= 2andk <= log(n)per graph size
See docs/engineering/build-and-release/versioning.md.
Update docs/CHANGELOG.md and root CHANGELOG.md under [Unreleased] before each release.
- Dependabot manages
requirements.txt(weekly) and GitHub Actions (monthly) - Do not blindly merge Dependabot PRs — require CI green first