Contextuality is a package that allows to compute various contextuality related quantities and formalize scenarios in quantum theory.
Project description
Contextuality package
This project is a starter project to have many tools to compute various quantities in measurement scenarios as defined by Abramsky and Brandenburger. It can be used in a variety of cases.
Install
To install the package from pypi you can simply run pip:
$ python -m pip install contextuality
Developers
If you wish to improve the package you can install from the sources with poetry:
$ poetry install --with dev
Documentation
The documentation is available on readthedocs.
Compile documentations
The documentation can be compiled in the docs directory.
$ cd docs
$ make html
then navigate to docs/build/html and open index.html to access the documentation.
Usage example
from contextuality.measurement_scenario import MeasurementScenario, MeasurementScenarioImplementations
import numpy as np
from contextuality.empirical_model import EmpiricalModel
from contextuality.utils import compute_max_cf, compute_deterministic_fraction
# Defining the contextuality scenario
X = [0, 1, 2, 3, 4]
M = [[i, (i + 1) % 5] for i in X]
O = [0, 1]
kcbs = MeasurementScenario(X, M, O)
# Equivalently from pre-defined scenarios
chsh = MeasurementScenarioImplementations.CHSH()
# We can make a simple empirical model...
empirical_model_ex = EmpiricalModel(kcbs, np.array([1, 0, 0, 0] * 5))
# ... or make a quantum realization of an empirical model
empirical_model = EmpiricalModel(kcbs)
meas = np.zeros((5, 2, 3, 3)) # shape = number mesurements, number of outcomes, dimension of state (d x d)
N = 1 / np.sqrt(1 + np.cos(np.pi / 5))
for i in range(5):
vec = N * np.array([np.cos(4 * np.pi * i / 5), np.sin(4 * np.pi * i / 5), np.sqrt(np.cos(np.pi / 5))])
meas[i][1] = np.outer(vec, vec)
meas[i][0] = np.eye(3) - meas[i][1]
psi = np.array([0, 0, 1])
rho = np.outer(psi, psi)
empirical_model.quantum_realisation(rho, meas)
# We can compute the contextual fraction
ncf_empirical_model = empirical_model.compute_cf(solver="MOSEK")["NCF"]
# The signalling fraction from the utils
sf_empirical_model = empirical_model.compute_sf()['SF']
# Then there are plenty of functions to use from utils
result = compute_max_cf(kcbs, eta=0.3, sigma=0.5) # Experimental
print(result['EmpiricalModel'].vector)
df = compute_deterministic_fraction(result["EmpiricalModel"], verbose=False)
print(df)
CF_result = result['EmpiricalModel'].compute_cf()
Notebooks
Examples in the form of notebooks can be found in the notebooks folder.
Credits
- Kim Vallée -- Author and main contributor
- Adel Sohbi -- Author
License
The CC BY-NC 4.0. Please see License File for more information.
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 contextuality-2.0.0.tar.gz.
File metadata
- Download URL: contextuality-2.0.0.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.10.0 Linux/6.12.43+deb12-amd64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e55dd928655d4efb1f33e4266f1c0be7733508f2b3da0b4a1e30d8e9ffd1b844
|
|
| MD5 |
b641aadf7f62fb5667125638d62bc8f3
|
|
| BLAKE2b-256 |
459b772e21188732313a7970c445af5781ac429e838bbd9e69554f1d8086c4c3
|
File details
Details for the file contextuality-2.0.0-py3-none-any.whl.
File metadata
- Download URL: contextuality-2.0.0-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.10.0 Linux/6.12.43+deb12-amd64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d133c5e116131986d332ff80bf60b8b4104df8fea0872b13d4e1d60be832d88a
|
|
| MD5 |
a80f49af5294b4b8449b5de8784bdeb7
|
|
| BLAKE2b-256 |
b68d7e5c48d36819a7f322621a55b08ab9d8471c2104503a30df28fc2f2cdf9e
|