GroverOptimizer#

class GroverOptimizer(num_value_qubits, num_iterations=3, converters=None, penalty=None, sampler=None)[source]#

Bases: OptimizationAlgorithm

Uses Grover Adaptive Search (GAS) to find the minimum of a QUBO function.

প্যারামিটার:
  • num_value_qubits (int) -- The number of value qubits.

  • num_iterations (int) -- The number of iterations the algorithm will search with no improvement.

  • converters (QuadraticProgramConverter | List[QuadraticProgramConverter] | None) -- The converters to use for converting a problem into a different form. By default, when None is specified, an internally created instance of QuadraticProgramToQubo will be used.

  • penalty (float | None) -- The penalty factor used in the default QuadraticProgramToQubo converter

  • sampler (BaseSampler | None) -- A Sampler to use for sampling the results of the circuits.

রেইজেস:
  • ValueError -- If both a quantum instance and sampler are set.

  • TypeError -- When there one of converters is an invalid type.

Methods

get_compatibility_msg(problem)[source]#

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

Checks whether the given problem is compatible, i.e., whether the problem can be converted to a QUBO, and otherwise, returns a message explaining the incompatibility.

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

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

রিটার্নস:

A message describing the incompatibility.

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

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 solve the given problem using the grover optimizer.

Runs the optimizer to try to solve the optimization problem. If the problem cannot be, converted to a QUBO, this optimizer raises an exception due to incompatibility.

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

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

রিটার্নস:

The result of the optimizer applied to the problem.

রেইজেস:
রিটার্ন টাইপ:

OptimizationResult