Code to accompany Guarantees on the structure of experimental quantum networks
Andrés Ulibarrena, Jonathan W. Webb, Alexander Pickston, Joseph Ho, Alessandro Fedrizzi, and Alejandro Pozas-Kerstjens
This is a repository containing the computational appendix of the article "Guarantees on the structure of experimental quantum networks. Andrés Ulibarrena, Jonathan W. Webb, Alexander Pickston, Joseph Ho, Alessandro Fedrizzi, and Alejandro Pozas-Kerstjens. npj Quantum Inf. 10, 117 (2024) (arXiv:2403.02376)." It provides the codes for obtaining the results depicted in the figures in the manuscript, and the Bell-like inequalities found.
The code is written in Python.
Libraries required:
- inflation (and its requirements) for setting up and solving the compatibility problems.
- matplotlib and seaborn for plots.
- numpy for math operations.
- pandas for operations with dataframes in the reading and writing of
.csv
files. - qutip for operations with quantum states and measurements.
- sympy and symengine for symbolic computations. Sympy is needed for the inflation codes, while symengine is faster when it comes to symbolic manipulation.
- tqdm for progress bars.
- csv, itertools, numbers, os, pickle.
Files and folders:
-
find_inequalities_ghz.py: Code for obtaining the inequalities for the network corresponding to the experiment of arXiv:2311.14158.
-
find_inequalities_trident.py: Code for obtaining the inequalities for the network corresponding to the experiment of npj Quantum Inf. 9, 82 (2023).
-
inequality_evaluation.py: Code for obtaining the inequalities for the network corresponding to the experiment of arXiv:2311.14158.
-
plots.py: Code for creating the figures in the manuscript.
-
utils.py: Helper functions for importing, exporting and evaluating the inequalities.
-
GHZInequalities: Folder with the inequalities obtained for the network corresponding to the experiment of arXiv:2311.14158.
-
TridentInequalities: Folder with the inequalities obtained for the network corresponding to the experiment of npj Quantum Inf. 9, 82 (2023).
Each inequality is stored in a separate .csv
file, with 13 columns each. The structure is the following:
-
Column 1: coefficient of the term.
-
Columns 2-7: outputs of the measurements performed by the parties.
-
Columns 8-13: inputs of the measurements performed by the parties.
The value -1 in the columns represents the fact that the party does not play a role in the corresponding term. For example, the term is represented by the values -1, 1, 0, -1, 0, -1, -1, 1, -1, 0, -1, -1
in columns 2-13.
Rows are arranged by blocks. Each block begins in a row with a nonempty first column, and finishes in the row before the next row with a nonempty first column. Each row represents a probability, and all probabilities in the block are multiplied. For example, the block
-0.5 | -1 | 0 | 0 | 0 | -1 | -1 | -1 | 0 | 1 | 0 | -1 | -1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | -1 | -1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | -1 | |
-1 | -1 | -1 | -1 | -1 | 0 | -1 | -1 | -1 | -1 | -1 | 1 | |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
corresponds to the term . The inequality is built by summing all the blocks, and it witnesses incompatibility if the evaluation on a given distribution is negative. The functions import_ineq
, read_ineq
and eval_ineq
in utils.py can be used for manipulating the inequalities and give them a human-readable form.
If you would like to cite this work, please use the following format:
A. Ulibarrena, J. W. Webb, A. Pickston, J. Ho, A. Fedrizzi, and A. Pozas-Kerstjens, Guarantees on the structure of experimental quantum networks, npj Quantum Inf. 10, 117 (2024), arXiv:2403.02376
@article{ulibarrena2024guarantees,
title = {Guarantees on the structure of experimental quantum networks},
author = {Ulibarrena, Andrés and Webb, Jonathan W. and Pickston, Alexander and Ho, Joseph and Fedrizzi, Alessandro and Pozas-Kerstjens, Alejandro},
journal = {npj Quantum Inf.},
volume = {10},
pages = {117},
doi = {10.1038/s41534-024-00911-z},
url = {https://www.nature.com/articles/s41534-024-00911-z},
archivePrefix = {arXiv},
eprint = {2403.02376},
year = {2024}
}