Skip to main content

Contextuality is a package that allows to compute various contextuality related quantities and formalize scenarios in quantum theory.

Project description

Contextuality package

Software License Version

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, compute_signaling_fraction, compute_NCF

# 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_NCF(solver="MOSEK")["NCF"]

# The signalling fraction from the utils
sf_empirical_model = compute_signaling_fraction(empirical_model)["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 = compute_NCF(result['EmpiricalModel'], verbose=False)

Notebooks

Examples in the form of notebooks can be found in the notebooks folder.

Credits

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

contextuality-1.0.4.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contextuality-1.0.4-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file contextuality-1.0.4.tar.gz.

File metadata

  • Download URL: contextuality-1.0.4.tar.gz
  • Upload date:
  • Size: 20.6 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

Hashes for contextuality-1.0.4.tar.gz
Algorithm Hash digest
SHA256 fc3b9e28142f1ef6e22b7e23f76c0a8a0b5e67b2633011b751c30164d6303466
MD5 f3214686aca132671bcac8df46d4635f
BLAKE2b-256 47ee52ee2d26b95440ce1989bab40e726ed4f5e457c7c4740250a4835ce69c28

See more details on using hashes here.

File details

Details for the file contextuality-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: contextuality-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 23.4 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

Hashes for contextuality-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 024985cc6a23eee79ec1ea886ae19f9f7644a6a7ffed59150d447e74cb760238
MD5 4eb0341ec72bfa14ad9f4815fe92c77c
BLAKE2b-256 b61e3567c89c8e1ff868c88c87586a5d6aed18b1dcd297bcb3cae6aae5fee8f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page