Liking cljdoc? Tell your friends :D

org.soulspace.qclojure.domain.ansatz

Quantum ansatz (parameterized circuit) construction for variational algorithms.

This namespace provides various ansatz types used in VQE and other variational quantum algorithms. Each ansatz is designed for specific problem types and hardware constraints.

Key Responsibilities:

  • Hardware-efficient ansatz for NISQ devices
  • Chemistry-inspired ansatz for molecular systems
  • UCCSD-inspired ansatz for quantum chemistry
  • Symmetry-preserving ansatz for fermionic systems
  • Parameter initialization strategies

Design Principles:

  • Pure functions returning circuit constructors
  • Configurable parameters for flexibility
  • Hardware-aware circuit structures
  • Reusable across different algorithms
Quantum ansatz (parameterized circuit) construction for variational algorithms.

This namespace provides various ansatz types used in VQE and other variational
quantum algorithms. Each ansatz is designed for specific problem types and
hardware constraints.

Key Responsibilities:
- Hardware-efficient ansatz for NISQ devices
- Chemistry-inspired ansatz for molecular systems
- UCCSD-inspired ansatz for quantum chemistry
- Symmetry-preserving ansatz for fermionic systems
- Parameter initialization strategies
   
Design Principles:
- Pure functions returning circuit constructors
- Configurable parameters for flexibility
- Hardware-aware circuit structures
- Reusable across different algorithms
raw docstring

chemistry-inspired-ansatzclj

(chemistry-inspired-ansatz num-qubits)
(chemistry-inspired-ansatz num-qubits num-excitation-layers)

Create a chemistry-inspired ansatz circuit optimized for molecular problems.

This ansatz is specifically designed for quantum chemistry problems like H2. It creates proper electron correlation patterns and can represent states like c₁|1100⟩ + c₂|0011⟩ which are typical in molecular ground states.

The ansatz structure:

  1. Prepare approximate Hartree-Fock reference state
  2. Add single excitations within electron pairs
  3. Add double excitations between electron pairs

Parameters:

  • num-qubits: Number of qubits (should be even for electron pairs)
  • num-excitation-layers: Number of excitation layers (default: 1)

Returns: Function that takes parameters and returns a quantum circuit

Create a chemistry-inspired ansatz circuit optimized for molecular problems.

This ansatz is specifically designed for quantum chemistry problems like H2.
It creates proper electron correlation patterns and can represent states like
c₁|1100⟩ + c₂|0011⟩ which are typical in molecular ground states.

The ansatz structure:
1. Prepare approximate Hartree-Fock reference state
2. Add single excitations within electron pairs  
3. Add double excitations between electron pairs

Parameters:
- num-qubits: Number of qubits (should be even for electron pairs)
- num-excitation-layers: Number of excitation layers (default: 1)

Returns:
Function that takes parameters and returns a quantum circuit
sourceraw docstring

hardware-efficient-ansatzclj

(hardware-efficient-ansatz num-qubits)
(hardware-efficient-ansatz num-qubits num-layers)
(hardware-efficient-ansatz num-qubits num-layers entangling-gate)

Create a hardware-efficient ansatz circuit.

This ansatz consists of layers of single-qubit rotations followed by entangling gates, designed to be implementable on near-term quantum devices.

Parameters:

  • num-qubits: Number of qubits
  • num-layers: Number of ansatz layers (default: 1)
  • entangling-gate: Type of entangling gate (:cnot, :cz, :crz) (default: :cnot)

Returns: Function that takes parameters and returns a quantum circuit

Create a hardware-efficient ansatz circuit.

This ansatz consists of layers of single-qubit rotations followed by
entangling gates, designed to be implementable on near-term quantum devices.

Parameters:
- num-qubits: Number of qubits
- num-layers: Number of ansatz layers (default: 1)
- entangling-gate: Type of entangling gate (:cnot, :cz, :crz) (default: :cnot)

Returns:
Function that takes parameters and returns a quantum circuit
sourceraw docstring

hartree-fock-initializationclj

(hartree-fock-initialization ansatz-type
                             num-qubits
                             num-electrons
                             &
                             {:as additional-options})

Generate Hartree-Fock initialization parameters for a given ansatz.

For molecular systems, this provides a good starting point by initializing parameters to create a state close to the Hartree-Fock reference state.

Parameters:

  • ansatz-type: Type of ansatz (:hardware-efficient, :chemistry-inspired, etc.)
  • num-qubits: Number of qubits
  • num-electrons: Number of electrons (particles) in the system
  • additional-options: Additional options specific to ansatz type

Returns: Vector of initialization parameters

Generate Hartree-Fock initialization parameters for a given ansatz.

For molecular systems, this provides a good starting point by initializing
parameters to create a state close to the Hartree-Fock reference state.

Parameters:
- ansatz-type: Type of ansatz (:hardware-efficient, :chemistry-inspired, etc.)
- num-qubits: Number of qubits
- num-electrons: Number of electrons (particles) in the system
- additional-options: Additional options specific to ansatz type

Returns:
Vector of initialization parameters
sourceraw docstring

symmetry-preserving-ansatzclj

(symmetry-preserving-ansatz num-qubits num-particles)
(symmetry-preserving-ansatz num-qubits num-particles num-layers)

Create a symmetry-preserving ansatz circuit.

This ansatz preserves certain symmetries like particle number conservation, important for quantum chemistry and condensed matter applications.

Parameters:

  • num-qubits: Number of qubits
  • num-particles: Number of particles to conserve
  • num-layers: Number of ansatz layers

Returns: Function that takes parameters and returns a quantum circuit

Create a symmetry-preserving ansatz circuit.

This ansatz preserves certain symmetries like particle number conservation,
important for quantum chemistry and condensed matter applications.

Parameters:
- num-qubits: Number of qubits
- num-particles: Number of particles to conserve
- num-layers: Number of ansatz layers

Returns:
Function that takes parameters and returns a quantum circuit
sourceraw docstring

uccsd-inspired-ansatzclj

(uccsd-inspired-ansatz num-qubits)
(uccsd-inspired-ansatz num-qubits num-excitations)

Create a UCCSD-inspired ansatz circuit.

Unitary Coupled Cluster with Singles and Doubles (UCCSD) is a quantum chemistry ansatz that captures important electronic correlations. This is a simplified version suitable for VQE implementations.

Parameters:

  • num-qubits: Number of qubits (must be even for electron pairs)
  • num-excitations: Number of excitation operators to include

Returns: Function that takes parameters and returns a quantum circuit

Create a UCCSD-inspired ansatz circuit.

Unitary Coupled Cluster with Singles and Doubles (UCCSD) is a quantum chemistry
ansatz that captures important electronic correlations. This is a simplified
version suitable for VQE implementations.

Parameters:
- num-qubits: Number of qubits (must be even for electron pairs)
- num-excitations: Number of excitation operators to include

Returns:
Function that takes parameters and returns a quantum circuit
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close