qiskit.optimization.algorithms.ADMMOptimizer
class ADMMOptimizer(qubo_optimizer=None, continuous_optimizer=None, params=None)
An implementation of the ADMM-based heuristic.
This algorithm is introduced in [1].
References:
[1] Gambella, C., & Simonetto, A. (2020). Multi-block ADMM Heuristics for Mixed-Binary
Optimization on Classical and Quantum Computers. arXiv preprint arXiv:2001.02069.
Parameters
- qubo_optimizer (
Optional
[OptimizationAlgorithm
]) – An instance of OptimizationAlgorithm that can effectively solve QUBO problems. If not specified thenMinimumEigenOptimizer
initialized with an instance ofNumPyMinimumEigensolver
will be used. - continuous_optimizer (
Optional
[OptimizationAlgorithm
]) – An instance of OptimizationAlgorithm that can solve continuous problems. If not specified thenSlsqpOptimizer
will be used. - params (
Optional
[ADMMParameters
]) – An instance of ADMMParameters.
__init__
__init__(qubo_optimizer=None, continuous_optimizer=None, params=None)
Parameters
- qubo_optimizer (
Optional
[OptimizationAlgorithm
]) – An instance of OptimizationAlgorithm that can effectively solve QUBO problems. If not specified thenMinimumEigenOptimizer
initialized with an instance ofNumPyMinimumEigensolver
will be used. - continuous_optimizer (
Optional
[OptimizationAlgorithm
]) – An instance of OptimizationAlgorithm that can solve continuous problems. If not specified thenSlsqpOptimizer
will be used. - params (
Optional
[ADMMParameters
]) – An instance of ADMMParameters.
Methods
__init__ ([qubo_optimizer, …]) | type qubo_optimizerOptional [OptimizationAlgorithm ] |
get_compatibility_msg (problem) | Checks whether a given problem can be solved with the optimizer implementing this method. |
is_compatible (problem) | Checks whether a given problem can be solved with the optimizer implementing this method. |
solve (problem) | Tries to solves the given problem using ADMM algorithm. |
Attributes
parameters | Returns current parameters of the optimizer. |
get_compatibility_msg
get_compatibility_msg(problem)
Checks whether a given problem can be solved with the optimizer implementing this method.
Parameters
problem (QuadraticProgram
) – The optimization problem to check compatibility.
Return type
Optional
[str
]
Returns
Returns True if the problem is compatible, otherwise raises an error.
Raises
QiskitOptimizationError – If the problem is not compatible with the ADMM optimizer.
is_compatible
is_compatible(problem)
Checks whether a given problem can be solved with the optimizer implementing this method.
Parameters
problem (QuadraticProgram
) – The optimization problem to check compatibility.
Return type
bool
Returns
Returns True if the problem is compatible, False otherwise.
parameters
Returns current parameters of the optimizer.
Return type
ADMMParameters
Returns
The parameters.
solve
solve(problem)
Tries to solves the given problem using ADMM algorithm.
Parameters
problem (QuadraticProgram
) – The problem to be solved.
Return type
ADMMOptimizationResult
Returns
The result of the optimizer applied to the problem.
Raises
QiskitOptimizationError – If the problem is not compatible with the ADMM optimizer.