Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

qiskit.optimization.algorithms.ADMMOptimizer

class ADMMOptimizer(qubo_optimizer=None, continuous_optimizer=None, params=None)

GitHub

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 then MinimumEigenOptimizer initialized with an instance of NumPyMinimumEigensolver will be used.
  • continuous_optimizer (Optional[OptimizationAlgorithm]) – An instance of OptimizationAlgorithm that can solve continuous problems. If not specified then SlsqpOptimizer 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 then MinimumEigenOptimizer initialized with an instance of NumPyMinimumEigensolver will be used.
  • continuous_optimizer (Optional[OptimizationAlgorithm]) – An instance of OptimizationAlgorithm that can solve continuous problems. If not specified then SlsqpOptimizer 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

parametersReturns 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.

Was this page helpful?
Report a bug or request content on GitHub.