DYNAMO - Dynamic Framework for Quantum Optimal Control
Updated! v1.2, May 2011
For paving the way to novel applications in quantum simulation, computation, and technology,
increasingly large quantum systems have to be steered with high precision. It is a typical task
amiable to numerical optimal control to turn the time course of pulses, i.e. piecewise constant
control amplitudes, iteratively into an optimised shape. Here, we present the first comparative
study of optimal control algorithms for a wide range of finite-dimensional applications. We focus on
the most commonly used algorithms: grape methods which update all controls concurrently, and
Krotov-type methods which do so sequentially. Guidelines for their use are given and open research
questions are pointed out. — Moreover we introduce a novel unifying algorithmic framework,
dynamo (dynamic optimisation platform) designed to provide the quantum-technology community
with a convenient matlab-based toolset for optimal control. In addition, it gives researchers in
optimal-control techniques a framework for benchmarking and comparing new proposed algorithms
to the state-of-the-art. It allows for a mix-and-match approach with various types of gradients,
update and step-size methods, and subspace choices.
See Machnes et.al., arXiv.1011.4874
v1.2 has greatly improved performance as compared to previous versions, as a result of in-depth profiling of the Matlab code.
What is QLib?
QLib is a Matlab package intended to provide a wide audience within the QIT community with
the tools needed to accelerate research by
QLib currently covers most, if not all, of the "textbook" primitives and
provides us with a rich toolset with which to advance knowledge in out field
and engage in "experimental theory".
- Quickly and efficiently framing and exploring questions
- Forming intuition through the use of visualizations
- Ruling-out or validating hypothesis through the use of optimization
The SU(3) Bloch "hyper-sphere"
What's in it? What is QLib capable of?
Current capabilities include:
For a full list of features and capabilities, see here.
- Objects of interest
All of which with arbitrary dimensionality - any number of particles of any dimension
- Classical probability distributions
- Pure states
- Density matrices (including special handling of the separable subspace)
- Unitary (U(n) and SU(n) & Hermitian matrices
- Entanglement: PT (Peres Horodecki) test, entanglement, concurrence, negativity, tangle, logarithmic negativity, ent. of formation, relative entanglement, robustness, singlet fraction
- Entropy: Shannon, Von Neumann, linear entropy, relative entropy, participation ratio, purity
- Measurement: Orthogonal (collapse or mixture), POVM, weak
- Basic object handling
- Reorder particles, partial trace, partial transpose
- See objects in the regular representation or as tensor with index per particle
- Convert to/from computational base to SU(n)
- Miscellaneous: Schmidt decomposition, famous states, famous gates
- Distance measures: Hilbert-Schmidt, trace distance, fidelity, Kullback-Leibler, Bures, Bures Angle, Fubini-Study
- Miscellaneous: Majorization, mutual information, spins in 3D
- Strong optimization infrastructure
All of the objects above are points in the appropriate parameter space, enabling search, generation of random elements, etc.
- General purpose utilities:
- Linear algebra (e.g. Gram Schmidt, spanning using base matrices)
- Numerics: approximately compare, epsilon tensor, etc, etc
- Graphics: quickly plot out functions
- Demos: Covering many of QLib's capabilities
- Help: Just type "help qlib" for an overview or get help on every individual function
How do I get it?
Current version: 1.0 (released July 2007)
See here for installation instructions.
How do I learn how to use it?
There are several options:
I want more features / I've found a bug / I have this complex project ...
Let me know. I'll be happy to help any way I can.
Email me at firstname.lastname@example.org or see my page for contact details.
- Use this link to submit a bug
- Use this link to request a feature
- To discuss all things QLib with your fellow users and myself, use this forum
(registration is necessary to avoid spamming)
Keeping up to date
QLib has a mailing list!
Emails will be kept in strictest confidence and will only used for QLib-related purposes.
You can subscribe by sending an email with the subject "subscribe" to email@example.com,
or by going here.
If you use QLib in your research, please add an attribution in the form of the following reference:
S. Machnes, quant-ph/0708.0478
When we were young, we did arithmetic. Now we use calculators.
When we were a little older, we did integrals and multiplied matrices. Now we use Matlab, Mathematica and Maple
It is my hope that within the foreseeable future, we will have the tools to quickly go through the mechanics
of Quantum Information calculations to concentrate on the creative, the novel and the enlightening.
For the community, by the community
My hope is that QLib would evolve into a group effort, maintained, natured and grown by the Quantum Information community, for the benefit of us all.
For that purpose, I have licensed QLib under the GNU Public License, which basically means everybody is free to
use QLib, and should release any enhancements to the package back to the community (of course code used to conduct the research can remain private).
For more information, see here.
Several community tools are already available:
and a mailing list.