benjimaclellan / queso

Design and optimize variational quantum sensors
https://queso.readthedocs.io/en/latest/
Apache License 2.0
6 stars 0 forks source link
metrology optimization quantum sensing
# ![Queso](docs/imgs/logo.png)

Variational quantum sensing protocols

[![Documentation Status](https://readthedocs.org/projects/queso/badge/?version=latest)](https://queso.readthedocs.io/en/latest/?badge=latest) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) ![versions](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10-blue) [![arXiv Paper](https://img.shields.io/badge/arXiv-2403.02394-red)](https://arxiv.org/abs/2403.02394)

What does it do:

Explore, optimize, and benchmark circuits and estimators for quantum sensing protocols. The quantum probe is represented as parameterized quantum circuits, and the estimators as classical neural networks.

Basic usage:

import jax
import jax.numpy as jnp
from queso.sensors import Sensor
from queso.estimators import BayesianDNNEstimator

sensor = Sensor(n=4, k=4)

theta, phi, mu = sensor.theta, sensor.phi, sensor.mu
sensor.qfi(theta, phi)
sensor.cfi(theta, phi, mu)
sensor.state(theta, phi, mu)

data = sensor.sample(theta, phi, mu, n_shots=10)

estimator = BayesianDNNEstimator()
posterior = estimator(data)

Install

pip install git+https://github.com/benjimaclellan/queso.git

Quantum circuit simulations are done with tensorcircuit with JAX as the differentiable programming backend. Neural networks are also built on top of JAX using the flax library.

Citing

@article{maclellan2024endtoend,
      title={End-to-end variational quantum sensing}, 
      author={Benjamin MacLellan and Piotr Roztocki and Stefanie Czischek and Roger G. Melko},
      year={2024},
      eprint={2403.02394},
      archivePrefix={arXiv},
      primaryClass={quant-ph}
}

Acknowledgements

This project is supported by the Perimeter Institute Quantum Intelligence Lab and the Institute for Quantum Computing.