qrisp.qaoa.QAOAProblem.compile_circuit#

QAOAProblem.compile_circuit(qarg, depth, init_type='random')[source]#

Compiles the circuit that is evaluated by the run method.

Parameters:
qargQuantumVariable or QuantumArray

The argument to which the QAOA circuit is applied.

depthint

The amount of QAOA layers.

init_typestring, optional

Specifies the way the initial optimization parameters are chosen. Available are random and tqa. The default is random: The parameters are initialized uniformly at random in the interval \([0,\pi/2]\). For tqa, the parameters are chosen based on the Trotterized Quantum Annealing protocol. If tqa is chosen, and no init_function for the QAOAProblem is specified, the \(\ket{-}^n\) state is prepared (the ground state for the X mixer).

Returns:
compiled_qcQuantumCircuit

The parametrized, compiled quantum circuit without measurements.

list[sympy.Symbol]

A list of the parameters that appear in compiled_qc.

Examples

We create a MaxCut instance and compile the circuit:

>>> from networkx import Graph
>>> G = Graph([(0,1),(1,2),(2,0)])
>>> from qrisp.qaoa import maxcut_problem
>>> from qrisp import QuantumVariable
>>> p = 5
>>> qaoa_instance = maxcut_problem(G)
>>> qarg = QuantumVariable(len(G))
>>> qrisp_qc, symbols = qaoa_instance.compile_circuit(qarg, p)
>>> print(qrisp_qc)
             β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                          Β»
qarg_dupl.0: ─ H β”œβ”€ gphase β”œβ”€ gphase β”œβ”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€Β»
             β”œβ”€β”€β”€β”€β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  Β»
qarg_dupl.1: ─ H β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œβ”€ P(2*gamma_0) β”œβ”€β”€β”Όβ”€β”€Β»
             β”œβ”€β”€β”€β”€                    β””β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”Β»
qarg_dupl.2: ─ H β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œΒ»
             β””β”€β”€β”€β”˜                                         β””β”€β”€β”€β”˜Β»
Β«                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”   Β»
Β«qarg_dupl.0: ───────■────────────────────■─── Rx(2*beta_0) β”œβ”€β”€β”€β”€ gphase β”œβ”€β”€β”€Β»
Β«                  β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜   Β»
Β«qarg_dupl.1: ────── X β”œβ”€β”€β”€β”€β”€β”€β”€ gphase β”œβ”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Β»
Β«             β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”     β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Β»
Β«qarg_dupl.2: ─ P(2*gamma_0) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€β”€ P(2*gamma_0) β”œΒ»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”˜     β””β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜Β»
Β«             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                                          Β»
Β«qarg_dupl.0: ─ gphase β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€Β»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”΄β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  Β»
Β«qarg_dupl.1: ────■────── Rx(2*beta_0) β”œβ”€ X β”œβ”€ P(2*gamma_1) β”œβ”€β”€β”Όβ”€β”€Β»
Β«               β”Œβ”€β”΄β”€β”   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β””β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”Β»
Β«qarg_dupl.2: ─── X β”œβ”€β”€β”€β”€ Rx(2*beta_0) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œΒ»
Β«               β””β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”˜Β»
Β«                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”   Β»
Β«qarg_dupl.0: ───────■────────────────────■─── Rx(2*beta_1) β”œβ”€β”€β”€β”€ gphase β”œβ”€β”€β”€Β»
Β«                  β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜   Β»
Β«qarg_dupl.1: ────── X β”œβ”€β”€β”€β”€β”€β”€β”€ gphase β”œβ”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Β»
Β«             β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”     β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Β»
Β«qarg_dupl.2: ─ P(2*gamma_1) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€β”€ P(2*gamma_1) β”œΒ»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”˜     β””β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜Β»
Β«             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                                          Β»
Β«qarg_dupl.0: ─ gphase β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€Β»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”΄β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  Β»
Β«qarg_dupl.1: ────■────── Rx(2*beta_1) β”œβ”€ X β”œβ”€ P(2*gamma_2) β”œβ”€β”€β”Όβ”€β”€Β»
Β«               β”Œβ”€β”΄β”€β”   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β””β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”Β»
Β«qarg_dupl.2: ─── X β”œβ”€β”€β”€β”€ Rx(2*beta_1) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œΒ»
Β«               β””β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”˜Β»
Β«                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”   Β»
Β«qarg_dupl.0: ───────■────────────────────■─── Rx(2*beta_2) β”œβ”€β”€β”€β”€ gphase β”œβ”€β”€β”€Β»
Β«                  β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜   Β»
Β«qarg_dupl.1: ────── X β”œβ”€β”€β”€β”€β”€β”€β”€ gphase β”œβ”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Β»
Β«             β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”     β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Β»
Β«qarg_dupl.2: ─ P(2*gamma_2) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€β”€ P(2*gamma_2) β”œΒ»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”˜     β””β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜Β»
Β«             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                                          Β»
Β«qarg_dupl.0: ─ gphase β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€Β»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”΄β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  Β»
Β«qarg_dupl.1: ────■────── Rx(2*beta_2) β”œβ”€ X β”œβ”€ P(2*gamma_3) β”œβ”€β”€β”Όβ”€β”€Β»
Β«               β”Œβ”€β”΄β”€β”   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β””β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”Β»
Β«qarg_dupl.2: ─── X β”œβ”€β”€β”€β”€ Rx(2*beta_2) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œΒ»
Β«               β””β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”˜Β»
Β«                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”   Β»
Β«qarg_dupl.0: ───────■────────────────────■─── Rx(2*beta_3) β”œβ”€β”€β”€β”€ gphase β”œβ”€β”€β”€Β»
Β«                  β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜   Β»
Β«qarg_dupl.1: ────── X β”œβ”€β”€β”€β”€β”€β”€β”€ gphase β”œβ”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Β»
Β«             β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”     β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Β»
Β«qarg_dupl.2: ─ P(2*gamma_3) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€β”€ P(2*gamma_3) β”œΒ»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”˜     β””β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜Β»
Β«             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                                          Β»
Β«qarg_dupl.0: ─ gphase β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€Β»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”΄β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  Β»
Β«qarg_dupl.1: ────■────── Rx(2*beta_3) β”œβ”€ X β”œβ”€ P(2*gamma_4) β”œβ”€β”€β”Όβ”€β”€Β»
Β«               β”Œβ”€β”΄β”€β”   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β””β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”Β»
Β«qarg_dupl.2: ─── X β”œβ”€β”€β”€β”€ Rx(2*beta_3) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œΒ»
Β«               β””β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”˜Β»
Β«                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                Β»
Β«qarg_dupl.0: ───────■────────────────────■─── Rx(2*beta_4) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Β»
Β«                  β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                Β»
Β«qarg_dupl.1: ────── X β”œβ”€β”€β”€β”€β”€β”€β”€ gphase β”œβ”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β– β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Β»
Β«             β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”Œβ”€β”΄β”€β”     β”Œβ”€β”΄β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Β»
Β«qarg_dupl.2: ─ P(2*gamma_4) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€ X β”œβ”€β”€β”€β”€β”€β”€β”€ P(2*gamma_4) β”œΒ»
Β«             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”˜     β””β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜Β»
Β«
Β«qarg_dupl.0: ─────────────────────
Β«                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
Β«qarg_dupl.1: ──■─── Rx(2*beta_4) β”œ
Β«             β”Œβ”€β”΄β”€β”β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
Β«qarg_dupl.2: ─ X β”œβ”€ Rx(2*beta_4) β”œ
Β«             β””β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜