Analytical and numerical tools for studying multipartite entanglement distribution in star-network architectures, with a focus on memory-induced dephasing during stochastic link generation.
This repository contains the code used to produce the plots in arxiv:2606.07043 on GHZ-state distribution under dephasing noise, including comparisons between the factory and piecemaker protocols.
Multipartite entanglement forms the core of many networking applications. In the near-term future, it is expected that multipartite distribution will be achieved first through star topologies, making it important to understand the noise incurred during the distribution process. In such networks, elementary links are created stochastically and successful links must be stored while waiting for the remaining links, causing memory decoherence that depends on the random waiting times. We derive analytical expressions for both the average noise and its distribution, when distributing GHZ states under memory dephasing in star networks. We study and compare two distribution protocols: the factory and piecemaker protocol. Furthermore, we find expressions for the case of a global cut-off (allowing fast optimization of the cut-off without requiring Monte Carlo simulations) and extend the analysis for the factory protocol to depolarizing noise for arbitrary states.
- Closed-form and high-precision evaluations of average noise parameters for:
- Factory protocol
- Piecemaker protocol
- Global cut-off variants
- Distribution-level analysis via generating functions.
- Conference key rate (CKA) related quantities under dephasing and depolarizing models.
- Plotting scripts to reproduce publication-style figures.
.
|-- README.md
|-- requirements.txt
|-- src/
| |-- functions.py # Core analytical and numerical functions
| |-- plotting.py # Figure generation scripts
| |-- style.py # Plot style configuration
| |-- test.py # Numerical/high-precision consistency tests
| `-- Makefile # Utility targets (currently clean)
-
$n$ : number of users/elementary links in the star network. -
$q$ : failure probability per elementary-link attempt (many plots use$p=1-q$ as success probability). -
$\lambda$ : memory parameter describing dephasing during waiting. -
$T_c$ : global cut-off time.
The code computes quantities such as expected effective noise parameters
From repository root:
python3 -m venv src/.venv
source src/.venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtDependencies:
- numpy
- matplotlib
- sympy
Run from src/ (recommended because local imports are used):
cd src
pythonExample:
from functions import lambda_factory_high_precision, lambda_piecemaker_high_precision
n = 5
q = "0.7"
lam = "0.98"
lf = lambda_factory_high_precision(n=n, q=q, lam=lam, precision=120)
lp = lambda_piecemaker_high_precision(n=n, q=q, lam=lam, precision=120)
print("factory :", lf)
print("piecemaker:", lp)Note: for high-precision routines, passing q and lam as strings preserves decimal precision better than binary floats.
cd src
python plotting.pyThis generates multiple .pdf and .png figure files in src/.
Important: plotting.py sets matplotlib.rc('text', usetex=True), so a LaTeX installation is required for figure rendering.
cd src
python -m unittest test.pyThe tests compare standard floating-point implementations and Decimal high-precision implementations over representative parameter sets.
- Run scripts from
src/unless you explicitly setPYTHONPATH=src. - Avoid parameter combinations at known singular points (for example
$\lambda=q$ in some factory expressions). - Use high-precision routines for numerically sensitive regimes, especially when
$q$ or$\lambda$ are close to 1.
To delete all generated figures, execute
cd src
make clean