The Optimization Framework

Taco provides a class Optimizer aimed at handling the whole optimization process described in our paper. This class takes as an input the problem instance provided by the user and the parameters the algorithm need to be launched. The method run of this class runs the optimization process and retrieves the solution found.

class taco.Optimizer(problem, p=0.01, starting_point=array([0.0, 0.0, 0.0]), pen1=None, pen2=None, factor_pen2=None, bund_mu_start=None, performance_warnings=False, numba=None, params=None)[source]

Base class for optimization of chance constrained problems

For an problem instance providing a dataset and two first order oracles \(f\) and \(g\), this class is an interface for solving the minimization problem

Parameters
  • problem – An instance of Problem

  • p (np.float64) – Safety probability threshold for the problem

  • starting_point (np.ndarray) – (optional) Starting point for the algorithm

  • pen1 (np.float64) – (optional) First Penalization parameter

  • pen2 (np.float64) – (optional) Second Penalization parameter

  • factor_pen2 (np.float64) – (optional) Incremental factor for the second penalization parameter pen2

  • bund_mu_start (np.float64) – Starting value for the proximal parameter \(\mu\) of the bundle method

  • numba (bool) – If True, instantiate an Oracle with numba in no-python mode.

  • performance_warning (bool) – If True, prints numba performance warnings.

  • params (dict) – Dictionnary of parameters for the optimization process

run(verbose=False)[source]

Runs the bundle method to solve the chance constrained problem.

Parameters

verbose (bool) – If true, prints advance of the process in the console

Returns

solution of the problem