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:
- 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:
- 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.
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)