Luc Jaulin, Benoît Desrochers, Simon Rohou, Jordan Ninin, Olivier Reynet

- Introduction to IAMOOC
- Acces to Moodle (post your homework and access to the forum)
- Dates

- Exercises and lessons (en pdf)
- Lessons et vidéos
- List of students who got the diploma

Interval analysis concerns the methods which computes with intervals in place of real numbers.

There is a large number of applications in Control, Optimization, Robotics, Chemistry.

The registration is free.

Interval Computation can deal with a huge class of problems involving equations or inequalities which can be non-smooth, non-convex, or with different kind of variables.

Interval tools are easy to understand. They only require basic knowledge on mathematics and computer sciences.

The results provided by interval methods are guaranteed, which means that from correct assumptions.

Interval Computations will provide correct conclusions. The results are guaranteed in any case. As a consequence, Interval Computations can be used to prove mathematical theorems. For instance, W. Tucker has proven the conjecture of Lorenz and Thomas Hales the conjecture of Kepler, both using Interval Computations.

You will have to install Python 3 in your machine (see below).

The participants who got enough points will receive a diploma corresponding this MOOC.

This diploma can be used by students to obtain the corresponding ECTS from their PhD courses, or to comply with any other requests by their home university.

If needed by your doctoral school, I can also provide a 20 minutes Skype exam with a mark, once the MOOC is finished.

An example of the diploma you can obtain :

, 12:00. Chapter 1: Interval Computation

, 12:00. Chapter 2: Set inversion

, 12:00. Chapter 3: Contractors

, 12:00. Chapter 4: Application to robot localization

, 12:00. All exercises should be posted.

, 12:00. Diplomas are sent by email

A small manual on PyIbex and Vibes:

A zip file with the slides of the lessons :

from pyIbex import * should be replaced by from pyibex import *

Some other modifications are described in the PyIbex documentation. (in magenta)

For the installation, you have two possibilities : (1) Install all in your computer (2) Use Python online.

You need Python 3, PyIbex and Vibes for graphics.

For the install of PyIbex and Vibes, see:

A video to help you for the install is available for Windows:

and also for Linux Ubuntu: .

For Linux Ubuntu, you can also open a terminal and type the following lines:

1) Install spyder 3: sudo apt-get install spyder3.

2) Install pip : sudo apt-get install python3-pip.

3) Install pyibex: sudo python3 -m pip install pyibex.

4) Install vibes: sudo python3 -m pip install vibes.

5) Download Vibes (i.e., the binary file VIBes-0.2.3-linux.AppImage) at https://github.com/ENSTABretagneRobotics/VIBES/releases/tag/0.2.3

6) Make VIBes-0.2.3-linux.AppImage executable (Right click on the icone + permissions).

Click on the icone of Vibes. You will see a small window with nothing inside, waiting for drawing orders.

7) Start Spyder and test the example given at http://benensta.github.io/pyIbex/

We use PyGame (Python online) :

Copy-paste the following lines in the program window. Run.

#########################################################################

import os

os.system('[ ! -d squashfs-root ] && wget https://github.com/ENSTABretagneRobotics/VIBES/releases/download/0.2.3/VIBes-0.2.3-linux.AppImage && chmod +x ./VIBes-0.2.3-linux.AppImage && ./VIBes-0.2.3-linux.AppImage --appimage-extract')

os.system('cd squashfs-root && chmod +x ./VIBes-viewer && ./VIBes-viewer &')

import time

time.sleep(1)

#########################################################################

# Your program here

from pyibex import *

from vibes import vibes

f = Function('x', 'y', 'x*cos(x-y)+y')

S = SepFwdBwd(f, [-oo,0])

X0 = IntervalVector(2,[-10,10])

vibes.beginDrawing()

pySIVIA(X0, S, 0.1)

vibes.axisAuto()

vibes.setFigureSize(500,500)

vibes.endDrawing()

#########################################################################

import sys; sys.stdin.read(1) # Without that the GUI closes...

########################################################################

What is an interval ? |
Operators |
Examples |
Elementary functions |

Examples |
Boxes |
Width |

Subpavings |
Inclusion functions |
Monotonicity |

Convergence |
Natural inclusion function |
Minimal inclusion function |

Exercise 1.

For this exercise, you do not need to program anything, just computing with intervals.

Exercise 2.

Using overloading operators, we show how Python allows an implementation of your own interval arithmetic library.

What is set inversion? |
Example |
Inclusion tests |

SIVIA |
Parameter estimation |

Exercise 3.

Interval analysis allows to solve non-convex global minimization problems without being trapped by a local minimum. In this exercise, a simple interval-based algorithm is implemented to illustrate the principle.

Exercise 4.

This exercise illustrates how interval analysis can be used to solve set estimation problems and how it can be robustified with respect to some outliers.

Motivations |
What is a contractor? |
Properties |
Example |

Contractor for z=x+y |
For primitive equations |
Decomposition |
Forward-backward |

Exercise 5.

This exercise shows a very simple example related to bounded-error estimation which illustrates the power of interval propagation.

Exercise 6.

This exercise shows how an interval forward-backward propagation makes it possible to build efficient contractors for a huge class of constraints.

Exercise 7.

This exercise gives an optimal contractor for the constraint y=sin(x) using symmetries.

Exercise 8.

We show here how a separator can be built easily from two contractors: an inner and an outer. The dual nature of the separator allows us to compute an inner and an outer approximation of a set defined by several constraints.

Exercise 9.

A separator is a pair of two contractors: an inner contractor and an outer contractor. This exercise illustrates how Pybex (which is a Python extension of Ibex) can be used to build easily separators for sets defined as union, intersection and complements of primitive sets.

Exercise 10.

Bounded error estimation problems can now be solved very easily and efficiently with the help of PyIbex.

Exercise 11.

This exercise shows an important application which can be solved efficiently with interval analysis. Without any linearization, we show that it is possible to localize a robot in a guaranteed manner.

Exercise 12.

In a SLAM problem, many variables are involved with nonlinear constraints. This problem is considered as difficult. We show here that it it possible to solve it easily and in a reliable way using intervals.

Illustration of Interval SLAM for real applications..

AUBERTOT Quentin

BARONI Kévin

BARONNIER Romain

BASSET Pierre

BEAUDOIN Maxime

BERNARDES Evandro

BOENNING Hannah

BOURGOIS Auguste

CHANU Simon

COTTEN Guillaume

DALIN Eloïse

EL ABDALAOUI Zacharie

ENNOUHI M'hamed Fadil

FONTANA Werner

GALLAND Alexandre

GY Morgan

KARKOUB El Wali

LE ROCH Gwenn

LEGAY Kevin

LI Ang

LIU Wanxin

MARTIN Pierre

MEHDI Nima

MILHEM Rémi

NEAU Guillaume

PERTIERRE DO MONTE

PLANCHOT Antoine

RAYNEAU Vincent

SOLA Yoann

SOULIE Camille

SUN Tithnara

TANGUY Florian

TERTRAIS Donatien

THIBAULT Adrien

TOMEZACH Julien

VADAINE Hugo

WELTE Anthony

ZHU Lei

ZIANE Mohamed Mahrez

BEN SAID Hela

BHIRI Bessem

BOUKALYassine

El JAWAD Alaa

MANSOUR Fatma

MESLEM Nacim

ORJUELA Rodolfo

RENAUDEAU Brice

ROUSSEAU Gauthier

TANGUY Noel

VANDERMOTTE Sylvain

Alain Acevedo

Yacine Benhnini

Justine Bonnot

François C.

Antoine C.

Jean-Marie CODOL

Julien Damers

Hani Dbouk

Lionel Génevé

Gabriel GODEAU

Jean-Philippe Gras

Yoann Guguen

Fabrice Lallement

Philippe Lambert

Julien Langlois

Francois Leborne

Nisha Mahato

Fatma Mansour

Mohamad Mezher

Yasmine Najar

Mohamed Outahar

Clément Rolinat

Joris Tillet

Sophie Tuton

Nicolas Veylon

Raphael Voges

Jean Walter

Mohamed Ouadrhiri

Maha Abouzai

Yves Le Palud

Emilien Fournier

Philipe Miranda de Moura

Julien Brisset

Noureddine Bensafi

Elias Aoun Durand

Denis Bacchus

Vanessa Baray

Philippe Chapuis

Alexandre Chenu

Evann Clavier

Maria Luiza Costa Vianna

Charles Coquet

georges daher

Sarah Delmas

Teva Temangeot

Maxime Do Rosario

Romain Dussot

Pierre Filiol

Mohamed Fnadi

Quentin François

Charlie Goutorbe

Alexandre Houdeville

Juliette Brugier

Jacques Kadima

Olivier Laurendin

Lucie Lefevre

Elodie Noëlé

Fabrice Poirier

Abbas Ramadan

Louis Valéry

Mihály Zsolt

Hyacinthe Andrieux

Alexandre Argento

Aurélien Grenier

Kevin Bedin

Matthieu Bouveron

Philippe Capdepuy

Quentin Cardinal

Cyril Cotsaftis

Alexandre Courjaud

Nathan Fourniol

Jonathan Gomis

Corentin Jégat

Jean-Luc Kersulec

Arnaud Klipfel

Erwann Landais

Louis Lesieur

Luc Longin

Pierre-Yves Mauduit

John Nikas

Junaid Rasheed

Driss Tayebi

Suman Maiti

Florian Gaurier

Ayman Al-Khazraji

Victoria Alonso

Agathe Archet

Colin Baumgard

Jules Berhault

Quentin Brateau

Elliot Brendel

Jose Eduardo Carvajal Rubio

Mamadou Dembélé

Subham Dey

Aaronkumar Ehambram

Imad El Bouazzaoui

Alexandre Evain

Sylvain Guénon

Hamid Hacène

Maha Halimi

Paul-Antoine Le Tolguenec

Corentin Lemoine

Antonin Lizé

Badr Moutalib

Gwendal Priser

Alexander Radaev

Mohamed Sadiq Ikbal

Robin Sanchez

Bertrand Turk

Nicolas Torres Alberto