uniqc.algorithms.core.ansatz.hva module¶
Hamiltonian Variational Ansatz (HVA).
Constructs an ansatz that alternates between groups of commuting Hamiltonian terms, suitable for quantum chemistry simulations.
- uniqc.algorithms.core.ansatz.hva.hva(hamiltonian_groups, p=1, qubits=None, params=None, hf_state=None)[source]¶
Build a Hamiltonian Variational Ansatz (HVA) circuit.
The HVA alternates between applying exponentials of commuting Hamiltonian groups. Each group is applied with an independent variational parameter.
- Parameters:
hamiltonian_groups – List of commuting Hamiltonian groups. Each group is a list of
(pauli_string, coefficient)tuples. Groups should contain mutually commuting operators.p – Number of ansatz layers (repetitions of the full group cycle).
qubits – Qubit indices.
None→ auto-detect from hamiltonian.params – Variational parameters. Length must equal
len(hamiltonian_groups) * p.None→ random initialization.hf_state – Qubit indices to initialize in
|1>(Hartree-Fock state).None→ all qubits start in|0>.
- Returns:
A
Circuitobject.- Raises:
ValueError – Parameter count mismatch or empty groups.
Example
>>> # Hubbard model example with two groups: hopping and interaction >>> hopping = [("X0X1", 1.0), ("Y0Y1", 1.0)] >>> interaction = [("Z0Z1", 0.5)] >>> groups = [hopping, interaction] >>> c = hva(groups, p=2)