Classiq Library

repository·main·Indexed 24 days ago

https://github.com/classiq/classiq-library

A collection of quantum algorithm implementations for the Classiq platform. The library includes modules for amplitude amplification and estimation, foundational algorithms (Bernstein Vazirani, Deutsch Jozsa, Simon), Hamiltonian simulation (Suzuki-Trotter, GQSP, QSVT, Qubitization), number theory and cryptography (Shor's, Discrete log), Quantum Machine Learning (QNN, GANs, QSVM, Autoencoders), quantum linear solvers (HHL, VQLS, QSVT inversion), and differential equation solvers.

Tokens
25.6K
Snippets
60
Records
123
Agent score
84%

What's inside classiq-library

  1. Overview of Quantum Linear Solvers for CFD

    main

    This directory provides quantum linear solvers specifically designed for computational fluid dynamics (CFD) applications. These solvers are intended for integration into hybrid classical–quantum workflows, such as the segregated SIMPLE solver or implicit coupled solvers (e.g., those found in the qc-cfd repository).

    Key solver types available:

    • Quantum Singular Value Transformation (QSVT) for matrix inversion.
    • Linear Combination of Unitaries (LCU) using a Chebyshev polynomial approximation.

    The implementation includes two block-encoding methods for CFD matrices:

    1. LCU for Pauli decomposition: Utilizes a Graycode approach.
    2. LCU for banded diagonals: Based on the Lapworth & Sunderhauf method.
  2. Overview of Quantum Machine Learning (QML) algorithms

    main

    The library provides implementations of several hybrid quantum-classical frameworks for Quantum Machine Learning (QML). These algorithms demonstrate how parameterized quantum circuits can be integrated with classical optimization and deep-learning tools (such as PyTorch) to perform tasks like classification, generative modeling, and data compression.

    Key implemented algorithms include:

    • Hybrid Quantum Neural Networks (QNN): Incorporates quantum layers into classical neural networks using parameterized quantum circuits.
    • Quantum Generative Adversarial Networks (GANs): A quantum analogue of classical GANs where classical neural networks are replaced by quantum neural networks (parameterized quantum circuits) to generate data.
    • Quantum Support Vector Machine (QSVM): Uses a quantum circuit to implement a feature map and quantum measurements to evaluate the kernel matrix for data classification.
    • Quantum Autoencoder: A quantum program trained to reduce the memory required to encode data, often used for anomaly detection.
  3. Overview of Quantum State Preparation techniques

    main

    The quantum_state_preparation module provides advanced techniques for preparing quantum states, which are essential for quantum simulation and optimization. It focuses on two primary methodologies:

    1. ADAPT-VQE (Adaptive Derivative-Assembled Pseudo-Trotter Variational Quantum Eigensolver): A hybrid variational algorithm that extends the standard VQE framework. It constructs problem-specific solutions adaptively, resulting in shallower circuits compared to standard VQE by increasing the number of measurements.

    2. Gibbs State Preparation: A primitive used for solving semidefinite programs, Boltzmann sampling, and Metropolis-type algorithms. It prepares a quantum thermal (Gibbs) state by implementing a block-encoding of the Lindbladian superoperator. This process simulates open-system dynamics (a system coupled to a thermal bath) to drive the initial state toward thermal equilibrium. The implementation utilizes an operator Fourier transform and mid-circuit weak measurements, leveraging the quantum Zeno effect for efficiency.

  4. Overview of Hamiltonian Simulation methods in Classiq

    main

    Classiq provides several advanced methods for modeling and analyzing physical systems through Hamiltonian simulation. These methods are categorized into two main approaches:

    1. Product-formula decompositions: Includes standard methods like Suzuki-Trotter decomposition and qDrift.
    2. Block-encoding–based techniques: Advanced methods that utilize block-encoding for efficient quantum time evolution. These include:
      • GQSP (Generalized Quantum Signal Processing): Implements time evolution using only one auxiliary qubit and no amplitude amplification.
      • QSVT (Quantum Singular Value Transformation): Implements time evolution via interleaved signal-processing rotations.
      • Qubitization: Implements time evolution as a Linear Combination of Unitaries (LCU) over Chebyshev-polynomial block-encodings of the walk operator.

    All these methods are implemented using Classiq's built-in functions.

  5. Overview of Quantum Linear Solvers

    main

    The library provides several computational models for addressing linear algebraic problems ($A |\mathbf{x}\rangle = |\mathbf{b}\rangle$) using quantum computing frameworks. These models include:

    • Adiabatic linear solvers: Maps the solution to the ground state of a corresponding Hamiltonian, using a quantum adiabatic protocol.
    • HHL (Harrow-Hassidim-Lloyd): A fundamental algorithm that prepares the state $|x\rangle$ in polynomial time relative to the number of qubits, offering exponential speedup for evaluating observables of the form $\langle \mathbf{x}| M| \mathbf{x}\rangle$.
    • QSVT (Quantum Singular Value Transformation) matrix inversion: A general framework that uses block-encoding to embed a classical matrix as a quantum function. It provides a concise implementation for matrix inversion when a block-encoding and the matrix's condition number are known.
    • VQLS (Variational Quantum Linear Solver) with LCU (Linear Combination of Unitaries): A hybrid quantum-classical algorithm. It uses LCU to block-encode a matrix $A$ within a unitary, then uses classical optimization to find an approximate solution. This approach is well-suited for NISQ (Noisy Intermediate-Scale Quantum) devices due to limited hardware requirements.
  6. Explore Search and Optimization quantum algorithms

    main

    The search_and_optimization module provides quantum implementations for unstructured search and combinatorial optimization. It covers both exact and approximate solution strategies, including:

    • Unstructured Search: Using Grover's algorithm for generic search problems.
    • Combinatorial Optimization: Using Decoded Quantum Interferometry for problems like max-XORSAT.
    • Hybrid Variational Algorithms: Using QAOA (Quantum Approximate Optimization Algorithm) and its variants for problems like Max-Cut and Knapsack.
    • Constrained Optimization: Using Grover Mixers for QAOA to maintain feasibility in constrained search spaces.
  7. Explore foundational quantum algorithms

    main

    The foundational module provides implementations of fundamental quantum algorithms that demonstrate query complexity advantages over classical methods. These include:

    • Bernstein Vazirani: Finds a hidden-bit string $a$ using a single query to an oracle function $f(x) = (a\cdot x) \text{ mod } 2$. It demonstrates a linear query complexity advantage.
    • Deutsch Jozsa: Identifies whether a Boolean function is constant or balanced using a single query, demonstrating an exponential advantage over classical deterministic approaches.
    • Quantum Teleportation: A communication protocol that uses entanglement and classical communication to transfer an arbitrary qubit state.
    • Simon: Recovers a secret key $s$ from an oracle function where $f(x)=f(y)$ iff $y=x\oplus s$. It provides an exponential improvement in query complexity compared to classical approaches.
  8. Explore Quantum Algorithm Implementations

    main

    The algorithms directory contains implementations of canonical and recent quantum algorithms. These implementations are organized into specialized subject areas to help researchers and developers find specific algorithmic logic.

    Key subject areas include:

    • Amplitude Amplification and Estimation: Variants of Grover's search and amplitude estimation.
    • Foundational: Fundamental algorithms demonstrating query complexity advantages (e.g., Deutsch-Jozsa, Simon).
    • Hamiltonian Simulation: Methods like QSP, qubitization, and QSVT for simulating physical systems.
    • Number Theory and Cryptography: Algorithms for prime factorization and discrete logarithms (e.g., Shor).
    • Quantum Machine Learning: Hybrid quantum-classical algorithms for classification and generative modeling.
    • Quantum Differential Equation Solvers: Mapping PDEs to linear systems for scientific simulation.
    • Quantum Linear Solvers: Algorithms for solving linear systems (e.g., HHL, QSVT-based inversion).
    • Quantum Phase Estimation: Extracting eigenvalues via controlled unitary evolution.
    • Quantum Primitives: Modular building blocks like the Hadamard test, Swap test, and GQSP.
    • Quantum State Preparation: Techniques like ADAPT-VQE and Gibbs state generation.
    • Quantum Walks: Discrete quantum walk implementations.
    • Search and Optimization: Unstructured search (Grover) and combinatorial optimization (QAOA, DQI).
  9. Available Number Theory and Cryptography Algorithms

    main

    The library provides quantum algorithm implementations for several key number-theoretic and cryptographic problems that offer exponential speedups over classical counterparts. These include:

    • Discrete log: Solves the discrete logarithm problem in cyclic groups (finding $s$ such that $g^s = x$). This is an instance of the Abelian Hidden Subgroup Problem (HSP).
    • Elliptic curves: Solves the elliptic curve discrete logarithm problem in polynomial time, impacting elliptic curve cryptography.
    • Hidden shift problem: Finds a boolean string $s$ such that $f(x) = f(x \⊕ s)$ for Boolean bent functions, providing exponential separation in query complexity.
    • Shor's algorithm: Performs prime factorization of large integers. It is implemented using a Quantum Phase Estimation (QPE) routine, leveraging Classiq's flexible_qpe and modular arithmetic components.
  10. Quantum solvers for differential equations

    main

    The quantum_differential_equations_solvers module provides quantum algorithms for solving both stationary and time-dependent differential equations. These algorithms map linear systems and dynamical evolution problems to quantum circuits, leveraging block-encoding techniques and quantum linear system methods.

    Key implementations include:

    • Discrete Poisson solver: A quantum solver for the discrete Poisson equation (a PDE). It reformulates the equation as a system of linear equations and solves it using the HHL algorithm. It utilizes quantum cosine and sine transforms to enable concise implementations that can be generalized to higher dimensions.
    • Time marching: A method for solving linear differential equations by integrating dynamics in small discrete steps. For an equation of the form $\frac{d|\psi(t)\rangle}{dt} = A(t) |\psi(t)\rangle$, the algorithm uses a block-encoding of the time-dependent matrix $A(t)$ to solve for $|\psi(t)\rangle$.
  11. What is Amplitude Amplification and Estimation

    main

    Amplitude amplification and estimation are algorithmic techniques used to manipulate and measure the probability of quantum states.

    • Amplitude Amplification: A technique to increase the probability of measuring "marked" (good) states. It typically provides a quadratic speedup over classical repetition. For a marked state with probability $p$, it can be found with near-unity probability using $O(1/\sqrt{p})$ measurements.
    • Amplitude Estimation: A technique to estimate the probability value $p$. It achieves an additive error $\epsilon$ in $O(1/\epsilon)$ iterations, providing a quadratic speedup relative to classical Monte Carlo methods.
  12. Use Grover's algorithm for unstructured search

    main

    Grover's algorithm provides a solution to unstructured search problems. In the Classiq library, you can implement a general Grover routine and apply it to specific use cases like the 3-SAT problem or the Max-Cut problem on a graph.

    To simplify implementation, you can use the phase_oracle quantum function from the Classiq open library and the Qmod language for high-level arithmetic operations, which abstracts away low-level circuit details.