QuantumCollocation.jl

Quantum Optimal Control with Direct Collocation
Author aarontrowbridge
Popularity
9 Stars
Updated Last
1 Year Ago
Started In
February 2023

QuantumCollocation.jl

Stable Dev Build Status Coverage

QuantumCollocation.jl uses NamedTrajectories.jl to set up and solve direct collocation problems specific to quantum optimal control, i.e. problems of the form:

$$\begin{aligned} \underset{U_{1:T}, a_{1:T-1}}{\text{minimize}} & \quad \ell(U_T, U_{\text{goal}})\\\ \text{ subject to } & \quad U_{t+1} = \exp(-i H(a_t)) U_t \end{aligned}$$

QuantumCollocation.jl gives the user the ability to add other constraints and objective functions to this problem and solve it efficiently using Ipopt.jl and MathOptInterface.jl under the hood.

Notice!

This package is under active development and issues may arise -- please be patient and report any issues you find!

Installation

QuantumCollocation.jl is registered! To install:

using Pkg
Pkg.add(QuantumCollocation)

Implementation Details

For a details of the implementation, in the current absence of a documenation page, please see the (rough) notes document pico.pdf.

Examples

Single Qubit X-Gate

See the example script examples/scripts/single_qubit_gate.jl, which produces the following plot:

Single Qubit X-Gate

Repo Structure

Uses GitHub Next's repo-visualization tool to see repo structure.

Repo Structure