QUBOQAOA#
- class iqm.qaoa.qubo_qaoa.QUBOQAOA(problem, num_layers, *, betas=None, gammas=None, initial_angles=None)[source]#
Bases:
QAOA
The class for QAOA with quadratic unconstrained binary (QUBO) cost function.
The class inherits a lot of functionality from its parent
iqm.qaoa.generic_qaoa.QAOA
. One new addition is the attributebqm
which stores the coefficient of the problem Hamiltonian. The same data in the form ofGraph
ishamiltonian_graph
.- Parameters:
problem (QUBOInstance | ConstrainedQuadraticInstance) – A
QUBOInstance
object describing the QUBO problem to be solved.num_layers (int) – The number of QAOA layers, commonly referred to as p in the literature.
betas (Sequence[float] | ndarray | None) – An optional list of the initial beta angles of QAOA. Has to be provided together with
gammas
.gammas (Sequence[float] | ndarray | None) – An optional list of the initial gamma angles of QAOA. Has to be provided together with
betas
.initial_angles (Sequence[float] | ndarray | None) – An optional list of the initial QAOA angles as one variable. Shouldn’t be provided together with either
betas
orgammas
.
Attributes
The BQM representation of the problem, taken from the input
QUBOInstance
.The graph whose edges / nodes have weights
bias
equal to the coefficients in the problem Hamiltonian.Returns an upper-triangular matrix of the ZZ interactions between the variables.
Returns a
ndarray
of the local fields of the model (Z coefficients).Methods
train
([estimator, min_method])The function that performs the training of the angles.
- property bqm: BinaryQuadraticModel#
The BQM representation of the problem, taken from the input
QUBOInstance
.
- property hamiltonian_graph: Graph#
The graph whose edges / nodes have weights
bias
equal to the coefficients in the problem Hamiltonian.
- property interactions: ndarray#
Returns an upper-triangular matrix of the ZZ interactions between the variables.
If the Hamiltonian representing the problem is
\[H = \sum_{i<j} J_{ij} Z_i Z_j + \sum_i h_i Z_i\]then this method outputs \(J_{ij}\) as upper-triangular square matrix
ndarray
. Note that these are different from the off-diagonal elements ofqubo_matrix
of the inputproblem
because the QUBO cost function has different coefficients than the Hamiltonian.
- property local_fields: ndarray#
Returns a
ndarray
of the local fields of the model (Z coefficients).If the Hamiltonian representing the problem is
\[H = \sum_{i<j} J_{ij} Z_i Z_j + \sum_i h_i Z_i\]then this method outputs \(h_{i}\) as 1-dimensional
ndarray
. Note that these are different from the diagonal elements ofqubo_matrix
of the inputproblem
because the QUBO cost function has different coefficients than the Hamiltonian.
- train(estimator=None, min_method='COBYLA')[source]#
The function that performs the training of the angles.
The training modifies
angles
in-place using theminimize()
function fromscipy
. The training uses the providedestimator
.- Parameters:
estimator (EstimatorBackend | None) – An estimator
EstimatorBackend
to be used to calculating expectation values for the minimization.min_method (str) – The minimization method passed to the
minimize()
function.
- Return type:
None