GurobiOptimizer#

class GurobiOptimizer(disp=False)[ソース]#

ベースクラス: OptimizationAlgorithm

The Gurobi optimizer wrapped as an Qiskit OptimizationAlgorithm.

This class provides a wrapper for gurobipy to be used within the optimization module.

サンプル

>>> from qiskit_optimization.problems import QuadraticProgram
>>> from qiskit_optimization.algorithms import GurobiOptimizer
>>> problem = QuadraticProgram()
>>> # specify problem here, if gurobi is installed
>>> optimizer = GurobiOptimizer() if GurobiOptimizer.is_gurobi_installed() else None
>>> # Suppress gurobipy print info to stdout
>>> import sys
>>> class DevNull:
...     def noop(*args, **kwargs): pass
...     close = write = flush = writelines = noop
>>> sys.stdout = DevNull()
>>> result = optimizer.solve(problem)

Initializes the GurobiOptimizer.

パラメータ:

disp (bool) – Whether to print Gurobi output or not.

Attributes

disp#

Returns the display setting.

戻り値:

Whether to print Gurobi information or not.

Methods

get_compatibility_msg(problem)[ソース]#

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

Returns '' since Gurobi accepts all problems that can be modeled using the QuadraticProgram. Gurobi will also solve non-convex problems.

パラメータ:

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

戻り値:

An empty string.

戻り値の型:

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

static is_gurobi_installed()[ソース]#

Returns True if gurobi is installed

solve(problem)[ソース]#

Tries to solves the given problem using the optimizer.

Runs the optimizer to try to solve the optimization problem. If problem is not convex, this optimizer may raise an exception due to incompatibility, depending on the settings.

パラメータ:

problem (QuadraticProgram) – The problem to be solved.

戻り値:

The result of the optimizer applied to the problem.

例外:

QiskitOptimizationError – If the problem is incompatible with the optimizer.

戻り値の型:

OptimizationResult