copt.minimize_pairwise_frank_wolfe

copt.minimize_pairwise_frank_wolfe(f_grad, x0, active_set, lmo_pairwise, step_size=None, lipschitz=None, max_iter=200, tol=1e-12, callback=None, verbose=0)[source]

Pairwise FW on the L1 ball.

Warning

This feature is experimental, API is likely to change.

Design: LMO takes as input the active set (an array of shape n_vertices).

should return d_t, certificate, and both indices of the selected vertices.

How to pass the initialization of vertices?

Args
f_grad: callable

Takes as input the current iterate (a vector of same size as x0) and returns the function value and gradient of the objective function. It should accept the optional argument return_gradient, and when False it should return only the function value.

x0: array-like

Initial guess for solution.

lmo_pairwise: callable

Takes as input a vector u of same size as x0 and returns a solution to the pairwise linear minimization oracle (see doc).

step_size: None or “adaptive” or “adaptive2” or callable

Step-size step_size to use. If None is used and keyword lipschitz is not given or None, then it will use a decreasing step-size of the form 2/(k+1) (described in [1]). If None is used and keyword lipschitz is not None, then it will use the Demyanov-Rubinov step-size step_size (variant 1 in [2]).

lipschitz: None or float.

Estimate for the Lipschitz constant of the gradient.

max_iter: integer

Maximum number of iterations.

tol: float

Tolerance of the stopping criterion. The algorithm will stop whenever the Frank-Wolfe gap is below tol or the maximum number of iterations is exceeded.

callback: callable

Callback to execute at each iteration. If the callable returns False then the algorithm with immediately return.

verbose: int

Verbosity level.

Returns:
resscipy.optimize.OptimizeResult

The optimization result represented as a scipy.optimize.OptimizeResult object. Important attributes are: x the solution array, success a Boolean flag indicating if the optimizer exited successfully and message which describes the cause of the termination. See scipy.optimize.OptimizeResult for a description of other attributes.

Returns:
resscipy.optimize.OptimizeResult

The optimization result represented as a scipy.optimize.OptimizeResult object. Important attributes are: x the solution array, success a Boolean flag indicating if the optimizer exited successfully and message which describes the cause of the termination. See scipy.optimize.OptimizeResult for a description of other attributes.

Examples: