Taco ==== Taco is a python toolbox aimed at solving chance-constrained problems. For more details, we refer to our companion paper (to appear very soon!). Overview -------- This toolbox is aimed at solving optimization problems of the form: .. math:: \left\{ \begin{array}{ll} \min_{x \in \mathbb{R}^d} & f(x) \\ \text{ s.t. } & \mathbb{P}[g(x, \xi) \leq 0] \geq p \end{array} \right. where :math:`f:\mathbb{R}^d \mapsto \mathbb{R}` and :math:`g:\mathbb{R}^d \times \mathbb{R}^m \mapsto \mathbb{R}` are two functions provided by the user together with a dataset :math:`D` from which :math:`\xi:\Omega \rightarrow \mathbb{R}^m` is sampled. Taco implements a penalization procedure based on a bilevel reformulation of the above problem. Each penalized problem turns out to be a Difference of Convex problem that we solve with a recent `bundle procedure <https://link.springer.com/article/10.1007/s10898-019-00755-4>`_. .. raw:: html <p style="text-align:center;"> <figure style="text-align:center;vertical-align: middle;"> <img src="images/toy_pb.gif" alt="centered image" width="400" /> <figcaption style="text-align:center;"> <font size="-1"> Example of solving for a quadratic toy problem (see the companion paper) <br> The non-convex red region delimited by the black dashed-line is the chance constraint. <br> The blue oval shapes are the contour lines of the objective function.</font></figcaption> </figure> </p> Taco routines rely on just-in-time compilation supported by `Numba <https://numba.pydata.org>`_. The routines are optimized to provide fast performances on reasonably large datasets. Table of Contents ----------------- .. toctree:: :caption: Table of Contents :maxdepth: 2 Getting Started <start.rst> The Optimization Framework <optim_framework.rst> The Oracles <oracles.rst> The Bundle Method <bundle.rst> The Problems <problems.rst> Authors ------- * `Yassine Laguel <https://yassine-laguel.github.io>`_ * `Jerome Malick <https://ljk.imag.fr/membres/Jerome.Malick/>`_ * `Wim Van Ackooij <https://www.researchgate.net/profile/Wim_Ackooij>`_