Metadata-Version: 2.4
Name: dress-graph
Version: 0.4.0
Summary: DRESS: A deterministic, parameter-free framework for canonical graph fingerprinting via continuous structural edge refinement.
Author: Eduar Castrillo Velilla
Maintainer: Eduar Castrillo Velilla
License-Expression: MIT
Project-URL: Homepage, https://github.com/velicast/dress-graph
Project-URL: Documentation, https://velicast.github.io/dress-graph/
Project-URL: Repository, https://github.com/velicast/dress-graph
Keywords: graph,similarity,community-detection,isomorphism,link-prediction,network-analysis
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: native
Requires-Dist: pybind11>=2.6; extra == "native"
Requires-Dist: numpy; extra == "native"
Provides-Extra: networkx
Requires-Dist: networkx; extra == "networkx"
Provides-Extra: cuda
Requires-Dist: nvidia-cuda-runtime-cu12; extra == "cuda"
Dynamic: license-file

# dress-graph (Python)

**A Continuous Framework for Structural Graph Refinement**

DRESS is a provably continuous relaxation of the Weisfeiler–Leman algorithm.
At depth k, higher-order DRESS is **provably at least as powerful as (k+2)-WL**
in expressiveness — the base algorithm (k=0) already matches 2-WL, and each
level adds one WL dimension.
Yet it is dramatically cheaper to compute: a single DRESS run costs
O(I · m · d_max) where I is the number of iterations, and depth-k requires
C(n,k) independent runs — a total of O(C(n,k) · I · m · d_max), compared to
O(n^(k+3)) for (k+2)-WL.  Space complexity is O(n + m), compared to
O(n^(k+2)) for (k+2)-WL.
The algorithm is embarrassingly parallel in two orthogonal ways — across the
C(n,k) subproblems and across edge updates within each iteration — enabling
distributed/cloud and multi-core/GPU/SIMD implementations.

## Install

```bash
pip install dress-graph
```

## Quick start

```python
from dress import dress_fit

result = dress_fit(
    n_vertices=4,
    sources=[0, 1, 2, 0],
    targets=[1, 2, 3, 3],
)
print(result.edge_dress)  # DRESS value for each edge
```

For the full API and documentation, see the [main repository](https://github.com/velicast/dress-graph).
