Overview of the IBEX library
Résumé
IBEX is an open-source C++ library for constraint processing over real numbers. It
provides reliable algorithms for handling non-linear constraints. In particular, roundoff errors
are also taken into account. It is based on interval arithmetic and affine arithmetic. The main
feature of IBEX is its ability to build strategies using contractor programming.
The concept of contractor is directly inspired by the concept of filtering algorithms in constraint
programming. The strength of IBEX lies mainly in this concept. Every algorithm in IBEX
is included as a Contractor .
Two emblematic problems can be addressed with IBEX :
(i) Systems solving: A guaranteed enclosure for each solution of a system of (nonlinear) equations is calculated;
(ii) Global optimization: A global minimizer of a function under non-linear constraints is calculated with guaranteed and reliable bounds on the objective minimum. Due to the modularity of this framework, several projects are based on IBEX to solve more specific problems:
(1) DynIbex offers a set of validated numerical integration methods based on Runge-Kutta schemes to solve initial value problems of ordinary differential equations and for DAE in Hessenberg index 1 form.
(2) ViabIbex is a software designed to approximate viability kernel of 2D problems.
(3) BubbIbex proves that a controlled non-linear system always stays inside a time moving bubble.
(4) SynthIbex synthesizes H ∞ Robust Control Law under structured constraints.