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 37 commits into
base: master
Choose a base branch
from
Open

[Demo] The KAK theorem #1227

wants to merge 37 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:
See end of demo file or the metadata file

Possible Drawbacks:
N/A

Related GitHub Issues:
#1261

[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?
  • AUDIENCE — Who is this for?
  • Researchers/Learners that would like to understand the mathematical structure behind the KAK theorem (to be used for Khaneja-Glaser circuit templates, for example).
  • 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 coming up in Fixed Depth Hamiltonian Simulation via Cartan Decomposition demo #1261.
  • KEYWORDS — What words should be included in the marketing post?

"KAK theorem"
"Lie algebra"
"Symmetric space"
"Cartan decomposition" and/or "Cartan involution"
"Circuit templates"

  • 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: 2b91e03a5a2f27aa5f490d9124b76fe129c59921
    (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 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 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 <43949391+Qottmann@users.noreply.github.com>
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
Copy link
Contributor

@ikurecic ikurecic left a comment

Choose a reason for hiding this comment

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

Thanks, @dwierichs . I've left some comments and suggestions.

Comment on lines +8 to +9
"dateOfPublication": "2024-12-05T00:00:00+00:00",
"dateOfLastModification": "2024-12-05T00:00:00+00:00",
Copy link
Contributor

Choose a reason for hiding this comment

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

tk

Comment on lines +15 to +24
"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"
}
],
Copy link
Contributor

Choose a reason for hiding this comment

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

tk

demonstrations/tutorial_kak_theorem.metadata.json Outdated Show resolved Hide resolved
demonstrations/tutorial_kak_theorem.py Outdated Show resolved Hide resolved
two-qubit unitaries into rotation gates as an application of the KAK theorem.


.. figure:: ../_static/demo_thumbnails/opengraph_demo_thumbnails/OGthumbnail_kak_theorem.png
Copy link
Contributor

Choose a reason for hiding this comment

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

tk to replace with the actual image

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 Outdated Show resolved Hide resolved
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.

3 participants