From 71be3c79b584b3be2365a2452e3bf7ca239583f7 Mon Sep 17 00:00:00 2001 From: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com> Date: Thu, 19 Dec 2024 20:49:47 +0100 Subject: [PATCH] Fixed Depth Hamiltonian Simulation via Cartan Decomposition demo (#1261) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Before submitting Please complete the following checklist when submitting a PR: - [ ] Ensure that your tutorial executes correctly, and conforms to the guidelines specified in the [README](../README.md). - [ ] Remember to do a grammar check of the content you include. - [ ] All tutorials conform to [PEP8 standards](https://www.python.org/dev/peps/pep-0008/). To auto format files, simply `pip install black`, and then run `black -l 100 path/to/file.py`. When all the above are checked, delete everything above the dashed line and fill in the pull request template. ------------------------------------------------------------------------------------------------------------ **Title:** **Summary:** **Relevant references:** **Possible Drawbacks:** **Related GitHub Issues:** ---- If you are writing a demonstration, please answer these questions to facilitate the marketing process. * GOALS — Why are we working on this now? *Eg. Promote a new PL feature or show a PL implementation of a recent paper.* * AUDIENCE — Who is this for? *Eg. Chemistry researchers, PL educators, beginners in quantum computing.* * KEYWORDS — What words should be included in the marketing post? * Which of the following types of documentation is most similar to your file? (more details [here](https://www.notion.so/xanaduai/Different-kinds-of-documentation-69200645fe59442991c71f9e7d8a77f8)) - [ ] Tutorial - [ ] Demo - [ ] How-to [sc-70301] --------- Co-authored-by: GitHub Nightly Merge Action Co-authored-by: dwierichs Co-authored-by: David Wierichs Co-authored-by: Justin Pickering <79890410+justinpickering@users.noreply.github.com> Co-authored-by: Ivana Kurečić Co-authored-by: justinpickering --- ...an_simulation_via_cartan_decomposition.png | Bin 0 -> 59256 bytes ...an_simulation_via_cartan_decomposition.png | Bin 0 -> 57071 bytes ...an_simulation_via_cartan_decomposition.png | Bin 0 -> 14573 bytes ...ion_via_cartan_decomposition.metadata.json | 65 +++ ...ian_simulation_via_cartan_decomposition.py | 522 ++++++++++++++++++ 5 files changed, 587 insertions(+) create mode 100644 _static/demo_thumbnails/large_demo_thumbnails/thumbnail_large_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png create mode 100644 _static/demo_thumbnails/opengraph_demo_thumbnails/OGthumbnail_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png create mode 100644 _static/demo_thumbnails/regular_demo_thumbnails/thumbnail_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png create mode 100644 demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json create mode 100644 demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py diff --git a/_static/demo_thumbnails/large_demo_thumbnails/thumbnail_large_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png b/_static/demo_thumbnails/large_demo_thumbnails/thumbnail_large_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png new file mode 100644 index 0000000000000000000000000000000000000000..9abfb2fb4d0ce6920595ebc10924db0ab567f92a GIT binary patch literal 59256 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 Bsc!%P literal 0 HcmV?d00001 diff --git a/_static/demo_thumbnails/regular_demo_thumbnails/thumbnail_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png b/_static/demo_thumbnails/regular_demo_thumbnails/thumbnail_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png new file mode 100644 index 0000000000000000000000000000000000000000..bc3caf587f147de7eba7fbfc1a26969f8616c19f GIT binary patch literal 14573 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 literal 0 HcmV?d00001 diff --git a/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json new file mode 100644 index 0000000000..b66ab6437f --- /dev/null +++ b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json @@ -0,0 +1,65 @@ +{ + "title": "Fixed depth Hamiltonian simulation via Cartan decomposition", + "authors": [ + { + "username": "Qottmann" + } + ], + "dateOfPublication": "2024-12-19T00:00:00+00:00", + "dateOfLastModification": "2024-12-19T00:00:00+00:00", + "categories": [ + "Quantum Computing", + "Algorithms" + ], + "tags": [], + "previewImages": [ + { + "type": "thumbnail", + "uri": "/_static/demo_thumbnails/regular_demo_thumbnails/thumbnail_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png" + }, + { + "type": "large_thumbnail", + "uri": "/_static/demo_thumbnails/large_demo_thumbnails/thumbnail_large_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png" + } + ], + "seoDescription": "Using Cartan decomposition and the KAK theorem to decompose unitary gates following the approach in the paper Fixed Depth Hamiltonian Simulation via Cartan Decomposition (arXiv:2104.00728) with a code implementation in PennyLane.", + "doi": "", + "references": [ + { + "id": "Kökcü", + "type": "preprint", + "title": "Fixed Depth Hamiltonian Simulation via Cartan Decomposition", + "authors": "Efekan Kökcü, Thomas Steckmann, Yan Wang, J. K. Freericks, Eugene F. Dumitrescu, Alexander F. Kemper", + "year": "2021", + "publisher": "", + "journal": "", + "doi": "10.48550/arXiv.2104.00728", + "url": "https://arxiv.org/abs/2104.00728" + }, + { + "id": "Chu", + "type": "preprint", + "title": "Lax dynamics for Cartan decomposition with applications to Hamiltonian simulation", + "authors": "Moody T. Chu", + "year": "2024", + "publisher": "", + "journal": "", + "doi": "10.1093/imanum/drad018", + "url": "https://mtchu.math.ncsu.edu/Research/Papers/Cartan_02.pdf" + } + ], + "basedOnPapers": ["10.48550/arXiv.2104.00728"], + "referencedByPapers": [], + "relatedContent": [ + { + "type": "demonstration", + "id": "tutorial_kak_theorem", + "weight": 1.0 + }, + { + "type": "demonstration", + "id": "tutorial_liealgebra", + "weight": 1.0 + } + ] +} diff --git a/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py new file mode 100644 index 0000000000..03cc87ea24 --- /dev/null +++ b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py @@ -0,0 +1,522 @@ +r"""Fixed depth Hamiltonian simulation via Cartan decomposition +=============================================================== + +We introduce the powerful Lie-theoretic decomposition technique for Hamiltonians, :math:`H = K h_0 K^\dagger,` +that lets you perform time-evolution by arbitrary times with fixed depth, :math:`e^{-i t H} = K e^{-i t h_0} K^\dagger.` +In particular, we follow the approach in [#Kökcü]_ that directly provides us with a (fixed-depth) circuit +decomposition of the unitaries :math:`K` and :math:`e^{-i t h_0}.` + +Sounds too good to be true? There are of course caveats as this fast-forwards the Hamiltonian. +In this algebraic setting, the crucial property is the size of the relevant :doc:`dynamical Lie algebra ` (DLA). +Most systems yield an exponentially large DLA, making them hard to manage in practice (i.e., fast-forwarding is not possible). +Yet, this is still an extremely powerful mathematical result integral for quantum compilation, +circuit optimization, and Hamiltonian simulation. + +.. figure:: ../_static/demo_thumbnails/opengraph_demo_thumbnails/OGthumbnail_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.png + :align: center + :width: 70% + :target: javascript:void(0) + +Introduction +------------ + +The :doc:`KAK theorem ` is an important result from Lie theory that states that any Lie group element :math:`U` can be decomposed +as :math:`U = K_1 A K_2,` where :math:`K_{1, 2}` and :math:`A` are elements of two special sub-groups +:math:`\mathcal{K}` and :math:`\mathcal{A},` respectively. In special cases, the decomposition simplifies to :math:`U = K A K^\dagger.` + +You can think of this KAK decomposition as a generalization of +the singular value decomposition to Lie groups. For that, recall that the singular value decomposition states that any +matrix :math:`M \in \mathbb{C}^{m \times n}` can be decomposed as :math:`M = U \Lambda V^\dagger,` where :math:`\Lambda` +are the diagonal singular values and :math:`U \in \mathbb{C}^{m \times \mu}` and :math:`V^\dagger \in \mathbb{C}^{\mu \times n}` +are left- and right-unitary with :math:`\mu = \min(m, n).` + +In the case of the KAK decomposition, :math:`\mathcal{A}` is an Abelian subgroup in which all its elements are commuting, +just as is the case for diagonal matrices. + +We can use this general result from Lie theory as a powerful circuit decomposition technique. + +.. note:: We recommend a basic understanding of Lie algebras, see e.g. our :doc:`introduction to (dynamical) Lie algebras for quantum practitioners `. + Otherwise, this demo should be self-contained, though for the mathematically inclined, we further recommend our :doc:`demo on the KAK theorem ` + that dives into the mathematical depths of the theorem and provides more background info. + +Goal: Fast-forwarding time evolutions using the KAK decomposition +----------------------------------------------------------------- + +Unitary gates in quantum computing are described by the special unitary Lie group :math:`SU(2^n),` so we can use the KAK +theorem to decompose quantum gates into :math:`U = K_1 A K_2.` While the mathematical statement is rather straightforward, +actually finding this decomposition is not. We are going to follow the recipe prescribed in +`Fixed Depth Hamiltonian Simulation via Cartan Decomposition `__ [#Kökcü]_, +which tackles this decomposition on the level of the associated Lie algebra via Cartan decomposition. + +In particular, we are going to consider the problem of time-evolving a Hermitian operator :math:`H` that generates the time-evolution unitary :math:`U = e^{-i t H}.` +We are going to perform a special case of KAK decomposition, a "KhK decomposition" if you will, on the algebraic level in terms of + +.. math:: H = K h_0 K^\dagger. + +This then induces the KAK decomposition on the group level as + +.. math:: e^{-i t H} = K e^{-i t h_0} K^\dagger. + +Let us walk through an explicit example, doing theory and code side-by-side. + +For that, we are going to use the generators of the `Heisenberg model `__ Hamiltonian for :math:`n=4` qubits on a one-dimensional chain, + +.. math:: \{X_i X_{i+1}, Y_i Y_{i+1}, Z_i Z_{i+1}\}_{i=0}^{2}. + +The foundation of a KAK decomposition is a Cartan decomposition of the associated Lie algebra :math:`\mathfrak{g}.` +Now, let us first import some libraries that we are going to use later and construct :math:`\mathfrak{g}.` + + +""" +from datetime import datetime +import matplotlib.pyplot as plt + +import numpy as np +import pennylane as qml +from pennylane import X, Y, Z + +import jax +import jax.numpy as jnp +import optax +jax.config.update("jax_enable_x64", True) + +n_wires = 4 +gens = [X(i) @ X(i+1) for i in range(n_wires-1)] +gens += [Y(i) @ Y(i+1) for i in range(n_wires-1)] +gens += [Z(i) @ Z(i+1) for i in range(n_wires-1)] + +H = qml.sum(*gens) + +g = qml.lie_closure(gens) +g = [op.pauli_rep for op in g] + +############################################################################## +# +# Cartan decomposition +# -------------------- +# +# A Cartan decomposition is a bipartition :math:`\mathfrak{g} = \mathfrak{k} \oplus \mathfrak{m}` into a vertical subspace +# :math:`\mathfrak{k}` and an orthogonal horizontal subspace :math:`\mathfrak{m}.` In practice, it can be induced by an +# involution function :math:`\Theta` that fulfills :math:`\Theta(\Theta(g)) = g \ \forall g \in \mathfrak{g}.` Different +# involutions lead to different types of Cartan decompositions, which have been fully classified by Cartan +# (see `the classification of symmetric spaces by Cartan `__). +# +# .. admonition:: Notation +# :class: note +# +# Note that :math:`\mathfrak{k}` is the small letter k in +# `Fraktur `__ and a +# common — not our — choice for the vertical subspace in a Cartan decomposition. +# +# One common choice of involution is the so-called even-odd involution for Pauli words, +# :math:`P = P_1 \otimes P_2 .. \otimes P_n,` where :math:`P_j \in \{I, X, Y, Z\}.` +# It essentially counts whether the number of non-identity Pauli operators in the Pauli word is even or odd. + +def even_odd_involution(op): + """Generalization of EvenOdd to sums of Paulis""" + [pw] = op.pauli_rep + return len(pw) % 2 + +even_odd_involution(X(0)), even_odd_involution(X(0) @ Y(3)) + +############################################################################## +# +# The vertical and horizontal subspaces are the two eigenspaces of the involution, corresponding to the :math:`\pm 1` eigenvalues. +# In particular, we have :math:`\Theta(\mathfrak{k}) = \mathfrak{k}` and :math:`\Theta(\mathfrak{m}) = - \mathfrak{m}.` +# So in order to perform the Cartan decomposition :math:`\mathfrak{g} = \mathfrak{k} \oplus \mathfrak{m},` we simply +# sort the operators by whether or not they yield a plus or minus sign from the involution function. +# This is possible because the operators and involution nicely align with the eigenspace decomposition. + +def cartan_decomposition(g, involution): + """Cartan Decomposition g = k + m + + Args: + g (List[PauliSentence]): the (dynamical) Lie algebra to decompose + involution (callable): Involution function :math:`\Theta(\cdot)` to act on PauliSentence ops, should return ``0/1`` or ``True/False``. + + Returns: + k (List[PauliSentence]): the vertical subspace :math:`\Theta(x) = x` + m (List[PauliSentence]): the horizontal subspace :math:`\Theta(x) = -x` """ + m = [] + k = [] + + for op in g: + if involution(op): # vertical space when involution returns True + k.append(op) + else: # horizontal space when involution returns False + m.append(op) + return k, m + +k, m = cartan_decomposition(g, even_odd_involution) +len(g), len(k), len(m) + + +############################################################################## +# We have successfully decomposed the 60-dimensional Lie algebra +# into a 24-dimensional vertical subspace and a 36-dimensional subspace. +# +# Note that not every bipartition of a Lie algebra constitutes a Cartan decomposition. +# For that, the subspaces need to fulfill the following three commutation relations. +# +# .. math:: +# \begin{align} +# [\mathfrak{k}, \mathfrak{k}] \subseteq \mathfrak{k} & \text{ (subalgebra)}\\ +# [\mathfrak{k}, \mathfrak{m}] \subseteq \mathfrak{m} & \text{ (reductive property)}\\ +# [\mathfrak{m}, \mathfrak{m}] \subseteq \mathfrak{k} & \text{ (symmetric property)} +# \end{align} +# +# In particular, :math:`\mathfrak{k}` is closed under commutation and is therefore a subalgebra, whereas :math:`\mathfrak{m}` is not. +# This also has the consequence that the associated Lie group :math:`\mathcal{K} := e^{i \mathfrak{k}}` is a subgroup +# of the associated Lie group :math:`\mathcal{G} := e^{i \mathfrak{g}}.` +# +# We mentioned earlier that we are aiming to do a special case of KAK decomposition where the second unitary :math:`K_2 = K_1^\dagger.` +# This is possible whenever the operator that we want to decompose is in the horizontal subspace :math:`\mathfrak{m}`, i.e. we want :math:`\Theta(H) = -H`. +# The chosen :math:`H` and :math:`\Theta` fulfill this property, as can be easily verified. +# + +for op in H.operands: + assert not even_odd_involution(op) + +############################################################################## +# +# Cartan subalgebra +# ----------------- +# +# With this we have identified the first subgroup, :math:`\mathcal{K},` of the KAK decomposition. The other subgroup +# is induced by the so-called (horizontal) Cartan subalgebra :math:`\mathfrak{h}.` This is a maximal Abelian subalgebra of :math:`\mathfrak{m}` and it is not unique. +# For the case of Pauli words, we can simply pick any element in :math:`\mathfrak{m}` and collect all other operators in :math:`\mathfrak{m}` +# that commute with it. +# +# We then obtain a further split of the vector space :math:`\mathfrak{m} = \tilde{\mathfrak{m}} \oplus \mathfrak{h},` +# where :math:`\tilde{\mathfrak{m}}` is just the remainder of :math:`\mathfrak{m}.` + +def _commutes_with_all(candidate, ops): + r"""Check if ``candidate`` commutes with all ``ops``""" + for op in ops: + com = candidate.commutator(op) + com.simplify() + + if not len(com) == 0: + return False + return True + +def cartan_subalgebra(m, which=0): + """Compute the Cartan subalgebra from the horizontal subspace :math:`\mathfrak{m}` + of the Cartan decomposition + + This implementation is specific for cases of bases of m with pure Pauli words as + detailed in Appendix C in `2104.00728 `__. + + Args: + m (List[PauliSentence]): the horizontal subspace :math:`\Theta(x) = -x + which (int): Choice for the initial element of m from which to construct + the maximal Abelian subalgebra + + Returns: + mtilde (List): remaining elements of :math:`\mathfrak{m}` + s.t. :math:`\mathfrak{m} = \tilde{\mathfrak{m}} \oplus \mathfrak{h}`. + h (List): Cartan subalgebra :math:`\mathfrak{h}`. + + """ + + h = [m[which]] # first candidate + mtilde = m.copy() + + for m_i in m: + if _commutes_with_all(m_i, h): + if m_i not in h: + h.append(m_i) + + for h_i in h: + mtilde.remove(h_i) + + return mtilde, h + +mtilde, h = cartan_subalgebra(m) +len(g), len(k), len(mtilde), len(h) + +############################################################################## +# We now have the Cartan decomposition :math:`\mathfrak{g} = \mathfrak{k} \oplus \tilde{\mathfrak{m}} \oplus \mathfrak{h}` +# and with that all the necessary ingredients for the KAK decomposition. +# +# Variational KhK decomposition +# ----------------------------- +# +# The KAK theorem is not constructive in the sense that it proves that there exists such a decomposition, but there is no general way of obtaining +# it. In particular, there are no linear algebra subroutines implemented in ``numpy`` or ``scipy`` that just compute it for us. +# Here, we follow the construction of [#Kökcü]_ for the special case of :math:`H` being in the horizontal space and the decomposition +# simplifying to :math:`H = K^\dagger h K`. +# +# The authors propose to find a local extremum of the cost function +# +# .. math:: f(\theta) = \langle K(\theta) v K(\theta)^\dagger, H\rangle +# +# where :math:`\langle \cdot, \cdot \rangle` is some inner product (in our case, the trace inner product :math:`\langle A, B \rangle = \text{tr}(A^\dagger B)).` +# This construction uses the operator :math:`v = \sum_j \pi^j h_j \in \mathfrak{h}` +# that is such that :math:`e^{i t v}` is dense in :math:`e^{i \mathcal{h}}.` +# The latter means that for any :math:`e^{i \mathcal{h}}` there is a :math:`t \in \mathbb{R}` such that :math:`e^{i t v}` approximates it. +# Let us construct it. To numerically avoid very large vectors, we take :math:`\pi (\text{mod} 2),` which preserves the dense property of :math:`v`. + +gammas = [np.pi**i % 2 for i in range(1, len(h)+1)] + +v = qml.dot(gammas, h) +v_m = qml.matrix(v, wire_order=range(n_wires)) +v_m = jnp.array(v_m) + + +############################################################################## +# +# This procedure has the advantage that we can use an already decomposed ansatz +# +# .. math:: K(\theta) = \prod_j e^{-i \theta_j k_j} +# +# for the vertical unitary. +# +# Now we just have to define the cost function and find an extremum. +# In this case, we are going to use gradient descent to minimize the cost function to a minimum. +# We are going to use ``jax`` and ``optax`` and write some boilerplate for the optimization procedure. +# +# .. note:: +# You can check our demos on parameter optimization in JAX with +# :doc:`Optax ` or +# :doc:`JAXOpt `. +# + +def run_opt( + value_and_grad, + theta, + n_epochs=500, + lr=0.1, +): + """Boilerplate JAX optimization""" + value_and_grad = jax.jit(jax.value_and_grad(loss)) + optimizer = optax.lbfgs(learning_rate=lr, memory_size=100) + opt_state = optimizer.init(theta) + + energy = [] + gradients = [] + thetas = [] + + @jax.jit + def step(opt_state, theta): + val, grad_circuit = value_and_grad(theta) + updates, opt_state = optimizer.update( + grad_circuit, opt_state, theta, value=val, grad=grad_circuit, value_fn=loss + ) + theta = optax.apply_updates(theta, updates) + + return opt_state, theta, val + + t0 = datetime.now() + ## Optimization loop + for _ in range(n_epochs): + opt_state, theta, val = step(opt_state, theta) + + energy.append(val) + thetas.append(theta) + + t1 = datetime.now() + print(f"final loss: {val}; min loss: {np.min(energy)}; after {t1 - t0}") + + return thetas, energy, gradients + + +############################################################################## +# We can now implement the cost function and find a minimum via gradient descent. + +H_m = qml.matrix(H, wire_order=range(n_wires)) +H_m = jnp.array(H_m) + +def K(theta, k): + for th, k_j in zip(theta, k): + qml.exp(-1j * th * k_j.operation()) + +@jax.jit +def loss(theta): + K_m = qml.matrix(K, wire_order=range(n_wires))(theta, k) + A = K_m @ v_m @ K_m.conj().T + return jnp.trace(A.conj().T @ H_m).real + +theta0 = jnp.ones(len(k), dtype=float) + +thetas, energy, _ = run_opt(loss, theta0, n_epochs=600, lr=0.05) +plt.plot(energy - np.min(energy)) +plt.xlabel("epochs") +plt.ylabel("cost") +plt.yscale("log") +plt.show() + + +############################################################################## +# This gives us the optimal values of the parameters :math:`\theta_\text{opt}` of :math:`K(\theta_\text{opt}) =: K_c.` + +theta_opt = thetas[-1] +Kc_m = qml.matrix(K, wire_order=range(n_wires))(theta_opt, k) + +############################################################################## +# The special element :math:`h_0` from the Cartan subalgebra :math:`\mathfrak{h}` is given by +# rotating the Hamiltonian by the critical :math:`K_c,` +# +# .. math:: h_0 = K_c^\dagger H K_c. + +h_0_m = Kc_m.conj().T @ H_m @ Kc_m +h_0 = qml.pauli_decompose(h_0_m) + +print(len(h_0)) + +# assure that h_0 is in \mathfrak{h} +h_vspace = qml.pauli.PauliVSpace(h) +not h_vspace.is_independent(h_0.pauli_rep) + +############################################################################## +# +# The fact that :math:`K_c^\dagger H K_c \in \mathfrak{h}` is crucial for this decomposition to be valid and meaningful. +# Otherwise, :math:`h_0` could be anything and we arrive back at the original problem of decomposing :math:`e^{-i t h_0}`. +# Here we know that :math:`h_0` is composed of elements of an Abelian Lie algebra :math:`\mathfrak{h}`, such that we can +# trivially decompose its unitary as +# +# .. math:: e^{-i t h_0} = e^{-i t \sum_{j=1}^{|\mathfrak{h}|} c_j h_j} = \prod_{j=1}^{|\mathfrak{h}|} e^{-i t c_j h_j}. +# +# Overall, this gives us the KhK decomposition of :math:`H,` +# +# .. math:: H = K_c h_0 K_c^\dagger. +# +# This trivially reproduces the original Hamiltonian. +# + +H_re = Kc_m @ h_0_m @ Kc_m.conj().T +np.allclose(H_re, H_m) + +############################################################################## +# We can now check if the Hamiltonian evolution is reproduced correctly. +# + +t = 1. +U_exact = qml.exp(-1j * t * H) +U_exact_m = qml.matrix(U_exact, wire_order=range(n_wires)) + +def U_kak(theta_opt, t): + qml.adjoint(K)(theta_opt, k) + qml.exp(-1j * t * h_0) + K(theta_opt, k) + +U_kak_m = qml.matrix(U_kak, wire_order=range(n_wires))(theta_opt, t) + +def trace_distance(A, B): + return 1 - np.abs(np.trace(A.conj().T @ B))/len(A) + +trace_distance(U_exact_m, U_kak_m) + + + + + +############################################################################## +# Indeed we find that the KAK decomposition that we found reproduces the unitary evolution operator. +# Note that this is valid for arbitrary :math:`t,` such that the Hamiltonian simulation operator has a fixed depth. +# +# .. admonition:: Choice of algebra representation +# :class: note +# +# In the case of Pauli words, we could make use of the well-known commutation relations of Pauli operators and treat the whole calculation semi-analytically +# (as is done in [#Kökcü]_). +# Here, we have chosen the full :math:`2^n` Hilbert space representation of the involved operators as this is actually faster for the chosen size :math:`n=4`. +# +# More generally, we can use the adjoint identity introdcued in our :doc:`g-sim demo ` and perform all computations in the +# adjoint representation of the algebra. In that case, the dimension of the algebra is the determining factor. This is useful when a low-dimensional Lie algebra +# is embedded in a high dimensional Hilbert space. For example, the operators :math:`S^x_\text{total} = \sum_{j=1}^n X_j,` +# :math:`S^y_\text{total} = \sum_{j=1}^n Y_j` and :math:`S^z_\text{total} = \sum_{j=1}^n Z_j` make up :math:`\mathfrak{su}(2)` of dimension :math:`3`, but are embedded +# in a :math:`2^n`-dimensional Hilbert space. +# + +############################################################################## +# Time evolutions +# --------------- +# +# We compute multiple time evolutions for different times and compare Suzuki—Trotter products with the KAK decomposition circuit. +# + +ts = jnp.linspace(1., 5., 10) + +Us_exact = jax.vmap(lambda t: qml.matrix(qml.exp(-1j * t * H), wire_order=range(n_wires)))(ts) + +def Us_kak(t): + return Kc_m @ jax.scipy.linalg.expm(-1j * t * h_0_m) @ Kc_m.conj().T + +Us_kak = jax.vmap(Us_kak)(ts) +Us_trotter5 = jax.vmap(lambda t: qml.matrix(qml.TrotterProduct(H, time=-t, n=5, order=4), wire_order=range(n_wires)))(ts) +Us_trotter50 = jax.vmap(lambda t: qml.matrix(qml.TrotterProduct(H, time=-t, n=50, order=4), wire_order=range(n_wires)))(ts) + +def compute_res(Us): + # vectorized trace inner product + res = jnp.abs(jnp.einsum("bij,bji->b", Us_exact.conj(), Us)) + res /= 2**n_wires + return 1 - res + +res_kak = compute_res(Us_kak) +res_trotter5 = compute_res(Us_trotter5) +res_trotter50 = compute_res(Us_trotter50) + +plt.plot(ts, res_kak+1e-15, label="KAK") # displace by machine precision to see it still in plot +plt.plot(ts, res_trotter5, "x--", label="5 Trotter steps") +plt.plot(ts, res_trotter50, ".-", label="50 Trotter steps") +plt.ylabel("empirical error") +plt.xlabel("t") +plt.yscale("log") +plt.legend() +plt.show() + + +############################################################################## +# We see the expected behavior of Suzuki—Trotter product formulas getting worse with an increase in time +# while the KAK error is constant zero. +# +# The KAK decomposition is particularly well-suited for smaller systems as the circuit depth is equal to the +# dimension of the subspaces, in particular :math:`2 |\mathfrak{k}| + |\mathfrak{h}|.` Note, however, +# that these dimensions typically scale exponentially in the system size. +# + + +############################################################################## +# +# Conclusion +# ---------- +# +# The KAK theorem is a very general mathematical result with far-reaching consequences. +# While there is no canonical way of obtaining an actual decomposition in practice, we followed +# the approach of [#Kökcü]_ which uses a specifically designed loss function and variational +# optimization to find the decomposition. +# This approach has the advantage that the resulting decomposition is itself already decomposed in terms of rotation gates in the original Lie algebra, +# as opposed to other methods such as [#Chu]_ that find :math:`K` as a whole. +# We provided a flexible pipeline that lets users find KAK decompositions in PennyLane for systems with small +# DLA (:doc:`Dynamical Lie Algebras `) and specifically decomposed the Heisenberg model Hamiltonian with :math:`n=4` qubits that has a DLA of dimension :math:`60` (:math:`\left(\mathfrak{s u}(2^{n-2})\right)^{\oplus 4}`). +# +# As most DLAs scale exponentially in the number of qubits, KAK decompositions are limited to small system sizes +# or special cases of systems with small DLAs. +# This is in line with the notion that fast-forwarding is generally not possible and limited to special systems. +# In particular, a KAK decomposition is ultimately always a fast-forwarding of a Hamiltonian. + + + +############################################################################## +# +# References +# ---------- +# +# .. [#Kökcü] +# +# Efekan Kökcü, Thomas Steckmann, Yan Wang, J. K. Freericks, Eugene F. Dumitrescu, Alexander F. Kemper +# "Fixed Depth Hamiltonian Simulation via Cartan Decomposition" +# `arXiv:2104.00728 `__, 2021. +# +# .. [#Chu] +# +# Moody T. Chu +# "Lax dynamics for Cartan decomposition with applications to Hamiltonian simulation" +# `doi:10.1093/imanum/drad018 `__, `preprint PDF `__ 2024. +# +# + +############################################################################## +# About the author +# ----------------