qiskit_circuit_hubo#
- iqm.qaoa.circuits.qiskit_circuit_hubo(qaoa, measurements=True)[source]#
Construct a Qiskit quantum circuit implementing the QAOA ansatz for a HUBO.
This function builds a parameterized Quantum Approximate Optimization Algorithm (QAOA) circuit for a Higher-Order Unconstrained Binary Optimization (HUBO) problem encoded as a binary polynomial. The resulting circuit alternates between phase-separation and mixing layers.
The QAOA unitary for \(p\) layers is given by
\[\begin{split}U(\\boldsymbol{\\gamma}, \\boldsymbol{\\beta}) = \\prod_{\\ell=1}^{p} \\left( e^{-i \\beta_\\ell \\sum_{i} X_i} \\, e^{-i \\gamma_\\ell H_C} \\right),\end{split}\]where \(H_C\) is the cost Hamiltonian derived from the HUBO:
\[\begin{split}H_C = \\sum_{S \\subseteq \\{1, \\dots, n\\}} c_S \\prod_{i \\in S} Z_i.\end{split}\]Each term in the Hamiltonian is implemented using an n-qubit Pauli-Z string rotation via
rnz(), i.e.,\[\begin{split}e^{-i \\gamma c_S \\prod_{i \\in S} Z_i}.\end{split}\]The mixer corresponds to independent single-qubit X-rotations:
\[\begin{split}e^{-i \\beta \\sum_i X_i} = \\prod_i R_X(2\\beta).\end{split}\]The circuit is initialized in the uniform superposition state by applying Hadamard gates to all qubits.
- Parameters:
- Returns:
A Qiskit circuit implementing the QAOA ansatz for the given HUBO.
- Return type:
QuantumCircuit