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

[Demo] The KAK theorem #1227

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open

[Demo] The KAK theorem #1227

wants to merge 27 commits into from

Conversation

dwierichs
Copy link
Contributor

@dwierichs dwierichs commented Oct 3, 2024

Title:
The KAK theorem

Summary:
The KAK theorem is a group theoretical tool to decompose operators into a sequence of smaller operators.
It brings an abstract mathematical structure to direct use in compilation and simulation tasks.

In this demo we will explain the mathematical objects "Lie subalgebra", "Cartan involution", and "symmetric space", which are prerequisites to the KAK theorem.
Then we state the theorem and explain how it powers a standard circuit decomposition/template construction technique, which also proves the universality of single- and two-qubit operations for quantum computing.
All steps are illustrated with mathematical and code examples.

Relevant references:

TBD

Possible Drawbacks:
N/A

Related GitHub Issues:
TBD: FDHS demo PR

[sc-74884]


If you are writing a demonstration, please answer these questions to facilitate the marketing process.

  • GOALS — Why are we working on this now?
  • The theorem uses Lie algebra theory, for which functionalities were recently added to PennyLane.
  • It can be seen as a follow-up/extension/application of the more basic Introduction to Lie algebras demo and it is related to content about Lie algebraic simulation (g-sim| (g+P)-sim).
  • There will be a close follow-up demo on "Fixed-depth Hamiltonian simulation", which makes use of the KAK theorem.
  • AUDIENCE — Who is this for?
  • Researchers/Learners that would like to understand the mathematical structure behind the KAK theorem and Khaneja-Glaser circuit templates.
  • Researchers/Learners that would like to familiarize themselves with Lie algebraic tools in PennyLane beyond a basic introduction and the simulation-related tools in the existing content pieces.
  • Researchers/Learners that would like to read/understand the "Fixed-depth Hamiltonian simulation" demo.
  • KEYWORDS — What words should be included in the marketing post?

"KAK theorem"
"Lie algebra"
"Symmetric space"
"Cartan decomposition" and/or "Cartan involution"
"Khaneja-Glaser decomposition"
"Circuit templates"
"Universality"

  • Which of the following types of documentation is most similar to your file?
    (more details here)
  • Tutorial
  • Demo
  • How-to

Copy link

github-actions bot commented Oct 3, 2024

👋 Hey, looks like you've updated some demos!

🐘 Don't forget to update the dateOfLastModification in the associated metadata files so your changes are reflected in Glass Onion (search and recommendations).

Please hide this comment once the field(s) are updated. Thanks!

demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
@dwierichs dwierichs changed the title [Empty Draft] Demo: The KAK theorem [Draft] Demo: The KAK theorem Oct 23, 2024
@dwierichs dwierichs marked this pull request as ready for review October 23, 2024 09:09
Copy link

github-actions bot commented Oct 23, 2024

Thank you for opening this pull request.

You can find the built site at this link.

Deployment Info:

  • Pull Request ID: 1227
  • Deployment SHA: 533f0ce73798e6fc7e6fbed4e340a1d80273aa16
    (The Deployment SHA refers to the latest commit hash the docs were built from)

Note: It may take several minutes for updates to this pull request to be reflected on the deployed site.

Copy link
Collaborator

@Qottmann Qottmann left a comment

Choose a reason for hiding this comment

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

I absolutely love this and can see this become a super valuable resource for anyone with a physics brackground wanting to dive deeper into the topic (think, in particular, future residents)

In terms of length, it is indeed a chonker but honestly that is fine for this kind of demo. I'd even go as far as saying that it could do with more content, in particular a more non-trivial example beyond su(2). At least for my taste, feel free to go all in.

We should perhaps have someone that is unfamiliar with these concepts also read the demo

demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
Co-authored-by: Korbinian Kottmann <[email protected]>
@dwierichs dwierichs changed the title [Draft] Demo: The KAK theorem [Demo] The KAK theorem Nov 6, 2024
Copy link
Collaborator

@Qottmann Qottmann left a comment

Choose a reason for hiding this comment

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

Great demo @dwierichs !

Only some minor, non-blocking and mostly personal comments and suggestions. Looks good overall and happy to approve!

demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Show resolved Hide resolved
Comment on lines 4 to 8
The KAK theorem is a beautiful mathematical result from Lie theory, with
particular relevance for quantum computing. It can be seen as a
generalization of the singular value decomposition, and falls
under the large umbrella of matrix factorizations. This allows us to
use it for quantum circuit decompositions.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Was just a random thought that I had, and I am not sure how well this can fit in here: I could see it being helpful to already informally state the KAK theorem at this point in a simple mathematical form, something like

"
It can be seen as a generalization of the singular value decomposition in that it decomposes a group element $U$ (think: unitary operator) into $U = K_1 A K_2$, where $K_{1/2}$ and $A$ are elements of a special sub-groups that we are going to introduce.
"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nice, I like that idea!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added a version of the above 👍.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants