Optimizers Module

The optimizers module provides various optimization methods for QSP phase factor optimization.

qsppack.optimizers.lbfgs(obj, grad, delta, phi, opts)[source]

L-BFGS optimization for QSP phase factors.

This function implements the Limited-memory BFGS optimization algorithm for finding optimal phase factors in QSP problems.

Parameters:
  • obj (callable) – Objective function to minimize

  • grad (callable) – Gradient function of the objective

  • x0 (array_like) – Initial points for evaluation

  • phi0 (array_like) – Initial phase factors

  • opts (dict) –

    Options dictionary containing:

    • maxiterint

      Maximum number of iterations

    • criteriafloat

      Convergence criteria

    • gammafloat

      Line search retraction rate (default 0.5)

    • accratefloat

      Line search accept ratio (default 1e-3)

    • minstepfloat

      Minimal step size (default 1e-5)

    • lmemint

      L-BFGS memory size (default 200)

    • printbool

      Whether to print progress (default True)

    • itprintint

      Print frequency (default 1)

    • parityint

      Parity of polynomial (0 for even, 1 for odd)

Returns:

  • phi (ndarray) – Optimized phase factors

  • obj_value (float) – Objective value at optimal point

  • iter (int) – Number of iterations performed

qsppack.optimizers.coordinate_minimization(coef, parity, opts)[source]

Coordinate minimization optimization for QSP phase factors.

This function implements the coordinate minimization algorithm for finding optimal phase factors in QSP problems.

Parameters:
  • coef (array_like) – Coefficients of polynomial P under Chebyshev basis

  • parity (int) – Parity of polynomial P (0 for even, 1 for odd)

  • opts (dict) – Options dictionary containing optimization parameters

Returns:

  • phi (ndarray) – Optimized phase factors

  • err (float) – Final error value

  • iter (int) – Number of iterations performed

  • runtime (float) – Total runtime in seconds

qsppack.optimizers.newton(coef, parity, opts)[source]

Newton’s method optimization for QSP phase factors.

This function implements Newton’s method for finding optimal phase factors in QSP problems.

Parameters:
  • coef (array_like) – Coefficients of polynomial P under Chebyshev basis

  • parity (int) – Parity of polynomial P (0 for even, 1 for odd)

  • opts (dict) – Options dictionary containing optimization parameters

Returns:

  • phi (ndarray) – Optimized phase factors

  • err (float) – Final error value

  • iter (int) – Number of iterations performed

  • runtime (float) – Total runtime in seconds

qsppack.optimizers.nlft(coef, parity, opts)[source]

NLFT optimization for QSP phase factors.

This function implements the NLFT algorithm for finding optimal phase factors in QSP problems.

Parameters:
  • coef (array_like) – Coefficients of polynomial P under Chebyshev basis

  • parity (int) – Parity of polynomial P (0 for even, 1 for odd)

  • opts (dict) –

These optimization methods can be used directly or through the main qsppack.solve() function.

Example usage:

import numpy as np
from qsppack.optimizers import lbfgs, coordinate_minimization, newton, nlft

# Define target polynomial
target_poly = np.array([0, 1])
parity = 1  # odd parity
opts = {'maxiter': 1000, 'criteria': 1e-12}

# Use L-BFGS optimizer
result_lbfgs = lbfgs(target_poly, parity, opts)

# Use coordinate minimization
result_coord = coordinate_minimization(target_poly, parity, opts)

# Use Newton's method
result_newton = newton(target_poly, parity, opts)

# Use NLFT optimizer
result_nlft = nlft(target_poly, parity, opts)