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

  • Quickly and efficiently framing and exploring questions
  • Forming intuition through the use of visualizations
  • Ruling-out or validating hypothesis through the use of optimization
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".

The SU(3) Bloch "hyper-sphere"

What's in it? What is QLib capable of?

Current capabilities include:

  • Objects of interest
    • Classical probability distributions
    • Pure states
    • Density matrices (including special handling of the separable subspace)
    • Unitary (U(n) and SU(n) & Hermitian matrices
    All of which with arbitrary dimensionality - any number of particles of any dimension

  • 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
For a full list of features and capabilities, see here.

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 machness@post.tau.ac.il or see my page for contact details. Alternatively

  • 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 qlib-news@lists.sourceforge.net,
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

Long-term vision

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: Forums, bug tracking, feature requests and a mailing list.