a package for computing the edge- and node-scanwidth of a directed acyclic graph (DAG)
Project description
scanwidth
scanwidth is a Python package for computing edge-scanwidth and node-scanwidth
of directed acyclic graphs (DAGs). It provides exact and heuristic algorithms,
plus reduction pipelines that make practical computation on larger instances
more tractable.
Key Features
- Tree-extension and Extension classess: classes that support (tree-)extensions of DAGs, provide computations for scanwidth-bags and converting to canonical tree-extenions
- Exact and heuristic solvers: XP, brute-force, partition-based exact methods (edge), ILP backend selection (node), and multiple heuristics for edge- and node-scanwidth.
- Reduction framework: configurable
ReducerConfig/Reducerpipelines for edge and node scanwidth, including optional parallel s-block solving.
Installation
Install the base package:
pip install scanwidth
Install optional ILP dependencies:
# SciPy backend for node_scanwidth(..., algorithm="ilp", backend="scipy")
pip install scanwidth[scipy]
# Gurobi backend for node_scanwidth(..., algorithm="ilp", backend="gurobi")
pip install scanwidth[gurobi]
# Both ILP backends
pip install scanwidth[ilp]
gurobipy requires a working Gurobi installation and a valid Gurobi license
(commercial or academic, depending on your setup).
Version requirements for optional ILP backends:
scipy>=1.9.0gurobipy>=10.0.0
Documentation
For installation instructions, quickstart examples, and full API reference, see the scanwidth docs.
Citation
If you use scanwidth in your research, please cite the corresponding paper:
Niels Holtgrefe, Leo van Iersel, and Mark Jones. Exact and heuristic computation of the scanwidth of directed acyclic graphs. Journal of Computer and System Sciences, 160:103802, 2026. doi: 10.1016/j.jcss.2026.103802
To view the experimental materials of the paper, go to the folder experiments.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scanwidth-0.2.4.tar.gz.
File metadata
- Download URL: scanwidth-0.2.4.tar.gz
- Upload date:
- Size: 42.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63839ada7fa14f8a2d6ed918cf978dcd6e1dc8204ed6ec053a9308e511b2e022
|
|
| MD5 |
267866b3722d2d5111e61def8c68f65b
|
|
| BLAKE2b-256 |
3a668ab13012d09ee3b4d3eac318b127c63d27b75e666206d1ce1e3bd9ae3c2d
|
Provenance
The following attestation bundles were made for scanwidth-0.2.4.tar.gz:
Publisher:
release.yml on nholtgrefe/scanwidth
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scanwidth-0.2.4.tar.gz -
Subject digest:
63839ada7fa14f8a2d6ed918cf978dcd6e1dc8204ed6ec053a9308e511b2e022 - Sigstore transparency entry: 1462016500
- Sigstore integration time:
-
Permalink:
nholtgrefe/scanwidth@92790fc2c589ed77f4d0cfcf946297ee093850f9 -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/nholtgrefe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@92790fc2c589ed77f4d0cfcf946297ee093850f9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file scanwidth-0.2.4-py3-none-any.whl.
File metadata
- Download URL: scanwidth-0.2.4-py3-none-any.whl
- Upload date:
- Size: 49.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd4ec276dcfa50aa2f2cf70111545504efeb784708da97f2d2f620de96dd0228
|
|
| MD5 |
4f0560d40b418734cd389a11e5f7e45d
|
|
| BLAKE2b-256 |
1b4dffb71484a7966c7e17b3533aab9f8cd445f617096a5455162b7fa9f6cb0b
|
Provenance
The following attestation bundles were made for scanwidth-0.2.4-py3-none-any.whl:
Publisher:
release.yml on nholtgrefe/scanwidth
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scanwidth-0.2.4-py3-none-any.whl -
Subject digest:
fd4ec276dcfa50aa2f2cf70111545504efeb784708da97f2d2f620de96dd0228 - Sigstore transparency entry: 1462016506
- Sigstore integration time:
-
Permalink:
nholtgrefe/scanwidth@92790fc2c589ed77f4d0cfcf946297ee093850f9 -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/nholtgrefe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@92790fc2c589ed77f4d0cfcf946297ee093850f9 -
Trigger Event:
push
-
Statement type: