Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Draft] Demo: The KAK theorem #1227

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions demonstrations/tutorial_kak_theorem.metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"title": "The KAK theorem",
"authors": [
{
"username": "dwierichs"
}
],
"dateOfPublication": "2024-12-05T00:00:00+00:00",
"dateOfLastModification": "2024-12-05T00:00:00+00:00",
"categories": [
"Quantum Computing",
"Algorithms"
],
"tags": [],
"previewImages": [
{
"type": "thumbnail",
"uri": "/_static/demo_thumbnails/regular_demo_thumbnails/thumbnail_kak_theorem.png"
},
{
"type": "large_thumbnail",
"uri": "/_static/demo_thumbnails/large_demo_thumbnails/thumbnail_large_kak_theorem.png"
}
],
"seoDescription": "Learn about the KAK theorem and how it powers circuit decompositions.",
"doi": "",
"canonicalURL": "/qml/demos/tutorial_kak_theorem",
"references": [
],
"basedOnPapers": [],
"referencedByPapers": [],
"relatedContent": [
{
"type": "demonstration",
"id": "tutorial_liealgebra",
"weight": 1.0
}
]
}
175 changes: 175 additions & 0 deletions demonstrations/tutorial_kak_theorem.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
r"""The KAK theorem
===================

The KAK theorem is a beautiful mathematical result from Lie theory, with
particular relevance for quantum computing research. It can be seen as a
generalization of the singular value decomposition, and therefore falls
under the large umbrella of matrix factorizations. This allows us to
use it for quantum circuit decompositions. However, it can also
be understood from a more abstract point of view, as we will see.

In this demo, we will discuss so-called symmetric spaces, which arise from
subgroups of Lie groups. For this, we will focus on the algebraic level
and introduce Cartan involutions/decompositions, horizontal
and vertical subspaces, as well as horizontal Cartan subalgebras.
With these tools in our hands, we will then learn about the KAK theorem
itself.
We conclude with a famous application of the theorem to circuit decomposition
by Khaneja and Glaser [#khaneja_glaser]_, which provides a circuit
template for arbitrary unitaries on any number of qubits, and proved for
the first time that single and two-qubit gates are sufficient to implement them.

While this demo is of more mathematical nature than others, we will include
hands-on examples throughout.

.. figure:: ../_static/demo_thumbnails/opengraph_demo_thumbnails/OGthumbnail_kak_theorem.png
:align: center
:width: 60%
:target: javascript:void(0)

.. note::

In the following we will assume a basic understanding of vector spaces,
linear maps, and Lie algebras. For the former two, we recommend a look
at your favourite linear algebra material, for the latter see our
:doc:`introduction to (dynamical) Lie algebras </demos/tutorial_liealgebra/>`.


Introduction
------------

Basic mathematical objects
--------------------------

Introduce the mathematical objects that will play together to yield
the KAK theorem.

(Semi-)simple Lie algebras
~~~~~~~~~~~~~~~~~~~~~~~~~~

- Introduce the notion of a Lie algebra very briefly, refer to existing demo(s).
- Focus on vector space notion being clear.
- [optional] Briefly say what a simple/semisimple Lie algebra is.
- [optional] In particular mention that the adjoint representation is faithful for semisimple algebras.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh good to know! I wasnt aware!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The precise criterion is that the center is trivial, which is a bit more general. But a center would be an Abelian ideal, which semisimple Lie algebras don't have, so semisimple implies faithful ad.rep.


Group and algebra interaction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Exponential map
- adjoint action of group on algebra
- adjoint action of algebra on algebra -> adjoint representation
- adjoint identity (-> g-sim demo)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how much you plan on talking about these points but could be kept brief


Subalgebras and Cartan pairs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Introduce the notion of a subalgebra.
- Explain that there can be vector subspaces that are not subalgebras.
- Define Cartan pairs via commutation relations

Cartan subalgebras
~~~~~~~~~~~~~~~~~~

- Define Cartan subalgebras of :math:`m`.
- Dimension of Cartan subalgebras
- Transition between Cartan subalgebras via :math:`K`

Involutions
~~~~~~~~~~~

- Explain linear maps on (matrix) algebras (-> homomorphism)
- Define involutions.
- Involutions define Cartan pairs (:math:`k = +1 | m = -1` eigenspaces)
- Cartan pairs define involutions :math:`\theta = \Pi_{\mathfrak{k}} - \Pi_{\mathfrak{m}}`

KAK theorem
~~~~~~~~~~~

- KP decomposition
- KAK decomposition
- [optional] implication: KaK on algebra level


Two-qubit KAK decomposition
---------------------------

- Algebra/subalgebra :math:`\mathfrak{g} =\mathfrak{su}(4) | \mathfrak{k} =\mathfrak{su}(2) \oplus \mathfrak{su}(2)`
- Involution: EvenOdd
- CSA: :math:`\mathfrak{a} = \langle\{XX, YY, ZZ\}\rangle_{i\mathbb{R}}`
- KAK decomposition :math:`U= (A\otimes B) \exp(i(\eta_x XX+\eta_y YY +\eta_z ZZ)) (C\otimes D)`.
- [optional] Mention Cartan coordinates

Khaneja-Glaser decomposition
----------------------------

- Important first recursive decomposition showing universality of single- and two-qubit operations
- Used for practical decompositions, replaced by other, similar decompositions by now

A recursive decomposition
~~~~~~~~~~~~~~~~~~~~~~~~~

- Show recursion on qubit count
- display resulting decomposition structure
- Mention that a two-qubit interaction is enough to get the CSA elements
- Universality

The recursion step in detail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Two substeps in each recursion step:
- Algebra/subalgebra :math:`\mathfrak{g}=\mathfrak{su}(2^n) | \mathfrak{k} = \mathfrak{su}(2^{n-1}) \oplus \mathfrak{su}(2^{n-1})`
- Involution TBD
- CSA TBD
- Algebra/subalgebra :math:`\mathfrak{g}=\mathfrak{su}(2^{n-1}) \oplus \mathfrak{su}(2^{n-1}) | \mathfrak{k} = \mathfrak{su}(2^{n-1})`
- Involution TBD
- CSA TBD

Overview of resulting decomposition
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Count blocks
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If things had to be scratched, Perhaps this could be made a separate demo (though I am very interested in the contents here so maybe we can already talk about it)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, maybe we could actually have this demo focus on KAK theorem, including only the 2-qubit application.
Then we can have a Khaneja-Glaser decomposition demo as a follow-up?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah something like that, or even more generally a demo on recursive decomposition, but I think that would depend on our findings this quarter and how much we want to invest (seems like a lot of work to do all of this 😅 )

- [optional] CNOT count


Conclusion
----------
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Qottmann,
can I ask you for some super-preliminary feedback on this, regarding

  • overall structure/logic of the outline
  • amount of content (also happy about suggestions of things I missed/I should throw out!)

Thanks! 🙏

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a lot of ground to cover with quite involved topics. Do you reckon it is realistic to put this all in a demo? This seems like review paper level thoroughness (which makes me think, should we write a review paper on this stuff for physicists?) I actually wouldnt want to scratch anything because I'd be curious to read all of this myself, I am just wondering if you think it's realistic for you to cover all these things in reasonable time (your own time effort) and in a presentation that is not too long (time effort of a reader)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a very fair question. Taking some of this offline.
For the length I see the following options:

  • I try to do the shortest version of the demo that I deem understandable and we see whether that already is a good length/complexity. This will have to skip over quite a few things from above.
  • We split content up into multiple bits.
  • We cover all the content but go very superficial. Not sure that's so nice to have 🤔


In this demo we learned about the KAK theorem and how it uses a Cartan
decomposition of a Lie algebra to decompose its Lie group.
A famous immediate application of this result is the circuit decomposition, or
parametrization, for arbitrary qubit numbers by Khaneja and Glaser. It also allowed
us to prove universality of single and two-qubit unitaries for quantum computation.

If you are interested in other applications of Lie theory in the field of
quantum computing, you are in luck! It has been a handy tool throughout the last
decades, e.g., for the simulation and compression of quantum circuits, # TODO: REFS
in quantum optimal control, and for trainability analyses. For Lie algebraic
classical simulation of quantum circuits, check the
:doc:`g-sim </demos/tutorial_liesim/>` and
:doc:`(g+P)-sim </demos/tutorial_liesim_extension/>` demos, and stay posted for
a brand new demo on compiling Hamiltonian simulation circuits with the KAK theorem!


The props
---------

Adjoint representation
~~~~~~~~~~~~~~~~~~~~~~

"""

import pennylane as qml

######################################################################
#
# References
# ----------
#
# .. [#khaneja_glaser]
#
# Navin Khaneja, Steffen Glaser
# "Cartan decomposition of SU(2^n), constructive controllability of spin systems and universal quantum computing"
# `arXiv:quant-ph/0010100 <https://arxiv.org/abs/quant-ph/0010100>`__, 2000
#
# About the author
# ----------------
Loading