IAMOOC (Third edition)
A MOOC on interval analysis with applications to parameter estimation and robot localization
Luc Jaulin, Benoît Desrochers, Jordan Ninin, Olivier Reynet
ENSTA-Bretagne, UBO, Lab-STICC
logo_lab-sticc.gif logo_intcomp.gif

  1. Introduction to IAMOOC
  2. Acces to Moodle (post your homework and access to the forum)
  3. Dates
  4. Exercises and lessons (en pdf)
  5. Lessons et vidéos
  6. References
  7. List of students who got the diploma



IAMOOC is a free MOOC on Interval Analysis with application to parameter estimation and robot localization.
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.

What is Interval Analysis?

Interval Computation is a numerical tool which allows us to solve nonlinear problems in a guaranteed way. One of the pioneers of interval computations is Ramon E. Moore. He contributed largely to its development and dissemination. Nowadays, Interval Computations can be found in many fields: global optimization, set inversion, parameter estimation, localization of robots, etc. Interval Computation offers a general numerical framework to easily get reliable results.
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.


The registration is not mandatory to follow the MOOC and to see the videos. But it is to have an access to the forum, to post your work and to get the diploma. To register, go to the Moodle platform


To follow IAMOOC, you should have some basic notions in Python and some knowledges in mathematics. If you do not know Python, but any other programming language, you may learn easily the required notions in this MOOC.
You will have to install Python 3 in your machine (see below).


You will have to do some exercises and to post them on Moodle. A video with explanations related to each exercise is given as soon as the lesson opens. You are not obliged to follow the method that is given in the video. For some exercises, the solution corresponds to text and equations and no Python program is required. In such a case, you should post a scan of your paper sheet, (taken with you phone for instance) or any pdf file.


To get the diploma, you need at least 12 points. Therefore, doing all exercises is not mandatory.
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.


For all questions, you should try to use the forum in Moodle, so that anybody can reply or see answers from others. Otherwise, for questions related to specific problems (delay, etc) send an email to lucjaulin@gmail.com.


IAMOOC last for 5 weeks.
April 2018, Thursday 12. Chapter 0: Install all you need
April 2018, Thursday 19. Chapter 1: Interval Computation
April 2018, Thursday 26. Chapter 2: Set inversion
May 2018, Thursday 03. Chapter 3: Contractors
May 2018, Thursday 10. Chapter 4: Application to robot localization
May 2018, Thursday 24. All exercises should be posted.
May 2018, Thursday 31. Diplomas are sent by email

Exercises and lessons

Slides of the lesson:
Exercises to be done:
A small manual on PyIbex and Vibes:

Lessons et vidéos


In the last version of PyIbex (2018, version 1.6.4), few things have changed in the Python code and the code written in the videos is not always exactly consistent with the latest version of PyIbex. Below are listed the changes.
from pyIbex import * should be replaced by from pyibex import *
Some other modifications are described in the PyIbex documentation. (in magenta)

Chapter 0. Install all you need

Open : April 2018, Thursday 12

Abstract : The goal of Chapter 0 is to help you to install all what you need to follow IAMOOC. You need Python 3, PyIbex and Vibes [Dre14] for graphics.

For the install of PyIbex and Vibes, see:

If you have Ubuntu, you should do as follows:
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/

Chapter 1. Interval Computation

Open : April 2018, Thursday 19

Abstract: The goal of Chapter 1 is to introduce all the mathematics related to interval analysis [Moo66]. After this chapter, you should be able to compute with uncertain numbers represented by intervals and also to approximate a set by subpavings [Jau01], i.e., union of boxes. During the practice we will implement the interval calculus under a Python environment.

What is an interval ?



Elementary functions





Inclusion functions



Natural inclusion function

Minimal inclusion function

Exercises. (To post on Moodle)
Exercise 1. Interval arithmetic (1 point)
For this exercise, you do not need to program anything, just computing with intervals.

Exercise 2. Intervals with Python (1 point)
Using overloading operators, we show how Python allows an implementation of your own interval arithmetic library.

Chapter 2. Set inversion

Open : April 2018, Thursday 26

Abstract: Many problems of engineering such as parameter estimation, tuning of a controller, etc., can be cast into a set inversion problem. In this chapter, we will define the notions of set inversion and illustrate these notions on some examples. An algorithm for solving any set inversion problems will be given. This algorithm, named SIVIA (Set Inverter Via Interval Analysis), will be proposed. This algorithm will be implemented in Python and some test-cases will be solved.

What is set inversion?


Inclusion tests


Parameter estimation

Exercises. (To post on Moodle)
Exercise 3. Minimization of a nonconvex function (1 point)
Interval analysis allows to solve non-convex global minimization problems [Kea96] without being trapped by a local minimum [Nin11]. In this exercise, a simple interval-based algorithm is implemented to illustrate the principle.

Exercise 4. Parameter estimation (1 point)
This exercise illustrates how interval analysis can be used to solve set estimation problems [Kre97] and how it can be robustified with respect to some outliers [Jau96].

Chapter 3. Contractors

Open : May 2018, Thursday 03

Abstract : A contractor [Cha09] is an operator which takes as an input a box X and contracts it into a subbox Y without removing a single solution of the problem. Contractors are necessary to solve efficiently problems containing a large number of unknowns. This chapter introduces the notion of contractor and explains how they can be implemented in Python.


What is a contractor?



Contractor for z=x+y

For primitive equations



Exercises. (To post on Moodle)
Exercise 5. Electric circuit (1 point)
This exercise shows a very simple example related to bounded-error estimation [Poi03] which illustrates the power of interval propagation.

Exercise 6. Forward-backward contractor (1 point)
This exercise how an interval forward-backward propagation [Ben99] makes it possible to build efficient contractors for a huge class of constraints.

Exercise 7. Separators (1 point)
We show here how a separator [Jau14] 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.

Chapter 4. Application to robot localization

Open : May 2018, Thursday 10

Abstract : This chapter considers a problem of localization inside an environment with landmarks. No lessons is given in this chapter, only exercises. The main problem to be treated here is SLAM (Simulataneous Localization And Mapping). It will be decomposed into a list of 4 exercises with an increasing complexity.

Exercises. (To post on Moodle)
Exercise 8. Contractors and separators with PyIbex (1 point)
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 9. Estimation with PyIbex (1 point)
Bounded error estimation problems can now be solved very easily and efficiently with the help of PyIbex.

Exercise 10. Localization of a robot [Kie99] from landmarks using range and bearing measurements (2 points)
This exercise shows an important application which can be solved efficiently with interval analysis [Mei02]. Without any linearization, we show that it is possible to localize a robot in a guaranteed manner.

Exercise 11. Simultaneous Localization And Mapping (SLAM) (2 points)
In a SLAM problem, many variables are involved with nonlinear constraints [Jau15a,Jau15b]. This problem is considered as difficult. We show here that it it possible to solve it easily and in a reliable way using intervals [Jau11].
Illustration of Interval SLAM for real applications..


Interval analysis

[Moo66] RE Moore (1966), Interval analysis, Prentice-Hall.

[Jau01] L. Jaulin, M. Kieffer, O. Didrit and E. Walter (2001), Applied Interval Analysis with Examples in Parameter and State Estimation, Robust Control and Robotics, Springer-Verlag.

Relaxed intersection

[Jau02] L. Jaulin and E. Walter (2002). Guaranteed robust nonlinear minimax estimation. IEEE Transaction on Automatic Control. Volume 47, number 11, pages 1857, 1864. pdf.

Contractor programming

[Cha09] G. Chabert and L. Jaulin (2009), Contractor programming. Artificial Intelligence. Vol. 173, pp 1079-1100. pdf.

Global minimization

[Kea96] B. Kearfott, Rigorous Global Search: Continuous Problems (Nonconvex Optimization and Its Applications), Kluwer, 1996.

[Nin11] J. Ninin et F. Messine. A metaheuristic methodology based on the limitation of the memory of interval branch and bound algorithms. Journal of Global Optimization (2011) 50:629-644.

Robotics notions

[Jau15a] L. Jaulin, Automation for robotics, ISTE WILEY, 2015.

[Jau15b] L. Jaulin, Mobile robotics, ISTE WILEY, 2015.


[Dre14] V. Drevelle and J. Nicola. VIBes: A Visualizer for Intervals and Boxes. Mathematics in Computer Science, 2014.


[Jau14] L. Jaulin and B. Desrochers (2014). Introduction to the Algebra of Separators with Application to Path Planning. Engineering Applications of Artificial Intelligence pdf.

Robot localization

[Mei02] D. Meizel, O. Lévêque, L. Jaulin and E. Walter (2002). Initial Localization by Set Inversion. IEEE Transactions on Robotics and Automation . Volume 18, Number 6, pages 966-971. pdf.

[Kie99] M. Kieffer, L. Jaulin, E. Walter and D. Meizel. Guaranteed mobile robot tracking using interval analysis, MISC'99 Workshop on Application of Interval Analysis to System and Control, Girona, 24-26 février 1999. pdf.

Range-Only SLAM

[Jau11] L. Jaulin (2011). Range-only SLAM with occupancy maps; A set-membership approach. IEEE-TRO. Vol 27, Issue 5. pdf.

Robust estimation with outliers

[Jau96] L. Jaulin, E. Walter and O. Didrit (1996). Guaranteed robust nonlinear parameter bounding, CESA'96 IMACS Multiconference (Symposium on Modelling, Analysis and Simulation), Lille. pdf.

[Kre97] V. Kreinovich, A.V. Lakeyev, J. Rohn, P.T. Kahl (1997). Computational complexity and feasibility of data processing and interval computations, Springer Science Business Media.

[Poi03] P Poignet, N Ramdani, O Vivas, Robust estimation of parallel robot dynamic parameters with interval analysis, CDC, 2003.

Forward-backward contractor

[Ben99] F. Benhamou, F. Goualard, L. Granvilliers, Revising hull and box consistency, Proceedings of the 1999 International Conference on Logic Programming.

List of the students who got the diploma

51 in 2015

COTTEN Guillaume
DALIN Eloïse
ENNOUHI M'hamed Fadil
GALLAND Alexandre
GY Morgan
LI Ang
LIU Wanxin
NEAU Guillaume
SOLA Yoann
SOULIE Camille
SUN Tithnara
TANGUY Florian
WELTE Anthony
ZIANE Mohamed Mahrez
BHIRI Bessem

33 in 2017

Raphael Abellan Romita
Alain Acevedo
Yacine Benhnini
Justine Bonnot
François Cébron
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

29 in 2018

Arslanyan Antony
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