ADMMOptimizer#

class ADMMOptimizer(qubo_optimizer=None, continuous_optimizer=None, params=None)[source]#

Bases: OptimizationAlgorithm

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.

প্যারামিটার:
  • qubo_optimizer (OptimizationAlgorithm | None) -- 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 (OptimizationAlgorithm | None) -- An instance of OptimizationAlgorithm that can solve continuous problems. If not specified then SlsqpOptimizer will be used.

  • params (ADMMParameters | None) -- An instance of ADMMParameters.

Attributes

parameters#

Returns current parameters of the optimizer.

রিটার্নস:

The parameters.

Methods

get_compatibility_msg(problem)[source]#

Checks whether a given problem can be solved with the optimizer implementing this method.

প্যারামিটার:

problem (QuadraticProgram) -- The optimization problem to check compatibility.

রিটার্নস:

Returns the incompatibility message. If the message is empty no issues were found.

রিটার্ন টাইপ:

str

is_compatible(problem)#

Checks whether a given problem can be solved with the optimizer implementing this method.

প্যারামিটার:

problem (QuadraticProgram) -- The optimization problem to check compatibility.

রিটার্নস:

Returns True if the problem is compatible, False otherwise.

রিটার্ন টাইপ:

bool

solve(problem)[source]#

Tries to solves the given problem using ADMM algorithm.

প্যারামিটার:

problem (QuadraticProgram) -- The problem to be solved.

রিটার্নস:

The result of the optimizer applied to the problem.

রেইজেস:

QiskitOptimizationError -- If the problem is not compatible with the ADMM optimizer.

রিটার্ন টাইপ:

ADMMOptimizationResult