qbraid_algorithms.evolution
Quantum Hamiltonian Evolution
Quantum Hamiltonian Evolution
This module provides implementations of quantum Hamiltonian evolution algorithms for simulating quantum systems and computing matrix functions. These techniques are fundamental for quantum simulation, quantum chemistry, quantum optimization, and quantum machine learning applications. The module implements Trotter decomposition methods for time evolution and Generalized Quantum Signal Processing (GQSP) for polynomial approximations of Hamiltonian functions, along with test Hamiltonians for benchmarking.
FORMULATION
Time Evolution Problem: Given a Hamiltonian \(H\) and time \(t\), compute the unitary time evolution operator:
\(U(t) = e^{-iHt}\)
Trotter-Suzuki Decomposition: For \(H = H_1 + H_2 + \ldots + H_k\), approximate the evolution using product formulas:
First-order Trotter:
\(e^{-iHt} \approx \left(\prod_{j=1}^k e^{-iH_j t/n}\right)^n\)
Suzuki Higher-order: Recursive symmetric decomposition with coefficients \(p_k\) and \(q_k\):
\(S_{2k}(t) = \prod_{j=1}^{5^{k-1}} S_2(p_k t) S_2(q_k t) S_2(p_k t)\)
Generalized Quantum Signal Processing: For polynomial \(P(x)\), construct a quantum circuit that implements: \(\langle 0| U_{\text{GQSP}} |0\rangle = P(H)\) using controlled rotations with optimized phase angles \(\{\phi_k\}\):
\(U_{\text{GQSP}} = \prod_{k=0}^d R_Y(\phi_{2k}) R_Z(\phi_{2k-1}) (|1\rangle\langle 1| \otimes H + |0\rangle\langle 0| \otimes I)\)
Test Hamiltonians: Standard quantum many-body systems for benchmarking:
Transverse Field Ising: \(H = -J\sum_{i} Z_i Z_{i+1} - h\sum_i X_i\)
Heisenberg XYZ: \(H = \sum_{i} (J_x X_i X_{i+1} + J_y Y_i Y_{i+1} + J_z Z_i Z_{i+1})\)
Fermionic Hubbard: \(H = -t\sum_{\langle i,j\rangle,\sigma} (c^\dagger_{i\sigma} c_{j\sigma} + \text{h.c.}) + U\sum_i n_{i\uparrow} n_{i\downarrow}\)
Classes
GQSP(*args, **kwargs)Generalized Quantum Signal Processing gate library.
Trotter(*args, **kwargs)Trotter decomposition gate library for Hamiltonian evolution.
TransverseFieldIsing([reg, j, h])Transverse Field Ising Model Hamiltonian: H = -J∑ZZ + h∑X
HeisenbergXYZ([reg, j_x, j_y, j_z])Heisenberg XYZ Model: H = Jx[XX + Jy[YY + Jz[ZZ
FermionicHubbard([reg, t, U])Simplified Fermionic Hubbard Model for testing.
RandomizedHamiltonian([reg, seed, density])Randomized Non-Commuting Hamiltonian for stress testing.
Functions
create_test_hamiltonians([reg_size])Factory function to create a suite of test Hamiltonians.