This project is an extension of my previous work Differentiable Analog Quantum Computing for Optimization and Control. [ArXiv]
We introduce BloqadeControl, a Julia module developed for differentiable analog quantum computing on neutral-atom quantum computers. We use Bloqade from QuEraComputing to simulate Rydberg atoms.
For more technical details, see this note.
The module is developed with Julia 1.7.3. It is also required to pre-install the following packages:
using Bloqade
using Distributions
using LegendrePolynomials
using PythonCall
using LinearAlgebra
Note: To run notebook with Julia, you will need to add the package IJulia.
-
Comparison between finite difference method and our method for gradient computation: see the notebook 'demo-compare-grad.ipynb'. As the number of samples increases, our method (based on Monte Carlo sampling) will converge to the true gradient. We also observe that, even with a small number of samples, the direction of the estimated gradient is very close to the true gradient!
-
State preparation: see the notebook 'demo-state-preparation.ipynb'. Several examples of state preparation are provided, including the all-one state, the uniform superposition state, and the 2-qubit Bell state.
-
Pulse fine tuning: see the notebook 'demo-fine-tuning.ipynb'.
-
Unitary synthesis TBA.