# RecursiveMinimumEigenOptimizer¶

class RecursiveMinimumEigenOptimizer(min_eigen_optimizer, min_num_vars=1, min_num_vars_optimizer=None, penalty=None, history=<IntermediateResult.LAST_ITERATION: 1>, converters=None)[ソース]

ベースクラス: qiskit.optimization.algorithms.optimization_algorithm.OptimizationAlgorithm

A meta-algorithm that applies a recursive optimization.

The recursive minimum eigen optimizer applies a recursive optimization on top of MinimumEigenOptimizer. The algorithm is introduced in [1].

サンプル

Outline of how to use this class:

from qiskit.aqua.algorithms import QAOA
from qiskit.optimization.algorithms import RecursiveMinimumEigenOptimizer
# specify problem here
# specify minimum eigen solver to be used, e.g., QAOA
qaoa = QAOA(...)
optimizer = RecursiveMinimumEigenOptimizer(qaoa)
result = optimizer.solve(problem)


[1]: Bravyi et al. (2019), Obstacles to State Preparation and Variational Optimization

from Symmetry Protection. http://arxiv.org/abs/1910.08980.

Initializes the recursive minimum eigen optimizer.

This initializer takes a MinimumEigenOptimizer, the parameters to specify until when to to apply the iterative scheme, and the optimizer to be applied once the threshold number of variables is reached.

パラメータ
• min_eigen_optimizer (MinimumEigenOptimizer) – The eigen optimizer to use in every iteration.

• min_num_vars (int) – The minimum number of variables to apply the recursive scheme. If this threshold is reached, the min_num_vars_optimizer is used.

• min_num_vars_optimizer (Optional[OptimizationAlgorithm]) – This optimizer is used after the recursive scheme for the problem with the remaining variables.

• penalty (Optional[float]) – The factor that is used to scale the penalty terms corresponding to linear equality constraints.

• history (Optional[IntermediateResult]) – Whether the intermediate results are stored. Default value is LAST_ITERATION.

• converters (Union[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.

• QiskitOptimizationError – In case of invalid parameters (num_min_vars < 1).

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

Methods

 get_compatibility_msg Checks whether a given problem can be solved with this optimizer. is_compatible Checks whether a given problem can be solved with the optimizer implementing this method. solve Tries to solve the given problem using the recursive optimizer.