qrunch.tools.minimizers.fft

Utilities for FFT-based minimization.

Module Attributes

DEFAULT_OPTIONS

Default options for the FFT minimizer.

Classes

FftMinimizer

FFT-based minimizer for multivariable functions.

FftMinimizerOptions

Options controlling FftMinimizer (FFT-based 1D/2D trigonometric polynomial minimizer).

DEFAULT_OPTIONS

Default options for the FFT minimizer.

class FftMinimizer

Bases: Minimizer

FFT-based minimizer for multivariable functions.

__init__(options: FftMinimizerOptions | None = None) None

Initialize the minimizer.

Parameters:

options (FftMinimizerOptions | None) – Options to pass to the minimizer.

Return type:

None

minimize(function: Callable[[list[ndarray[Any, dtype[float64]]]], list[float]], initial_guess: ndarray[Any, dtype[float64]], iteration: int | None, bounds: tuple[float, float] | list[tuple[float, float]] | None = None, circuit: Circuit | None = None, operator: HermitianPauliSum | None = None) MinimizerResult

Optimize the given function.

Parameters:
  • function (Callable[[list[ndarray[Any, dtype[float64]]]], list[float]]) – The function to minimize.

  • initial_guess (ndarray[Any, dtype[float64]]) – Used for determining input size.

  • iteration (int | None) – Ignored.

  • bounds (tuple[float, float] | list[tuple[float, float]] | None) – Ignored.

  • circuit (Circuit | None) – The parameterized circuit to be minimized.

  • operator (HermitianPauliSum | None) – The operator used in the expectation value.

Return type:

MinimizerResult

class FftMinimizerOptions

Bases: DataclassPublicAPI

Options controlling FftMinimizer (FFT-based 1D/2D trigonometric polynomial minimizer).

Parameters:
  • fft_padded_size_1d – int, default=2**14 FFT zero-padded size for dense interpolation in the 1D case (power of two).

  • fft_padded_size_2d – int, default=2**11 FFT zero-padded size per dimension for dense interpolation in the 2D case (power of two).

  • improve_on_fft_min – bool, default=True If True refine the FFT-seeded minimum with a local continuous optimizer (analytic model in 2D / bounded scalar search in 1D).

  • maximum_iterations – int, default=100 Maximum iterations for the local refinement stage when improve_on_fft_min is enabled.

  • x_value_tolerance – float, default=1e-8 Convergence tolerance on the refined solution value (mapped to SciPy xatol / ftol depending on context).

__init__(*, fft_padded_size_1d: int = 16384, fft_padded_size_2d: int = 2048, improve_on_fft_min: bool = True, maximum_iterations: int = 100, x_value_tolerance: float = 1e-08) None
Parameters:
  • fft_padded_size_1d (int)

  • fft_padded_size_2d (int)

  • improve_on_fft_min (bool)

  • maximum_iterations (int)

  • x_value_tolerance (float)

Return type:

None

static __new__(cls, *args: Any, **kwargs: Any) Any
Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

fft_padded_size_1d: int = 16384
fft_padded_size_2d: int = 2048
improve_on_fft_min: bool = True
maximum_iterations: int = 100
x_value_tolerance: float = 1e-08