IAMOOC
8th edition
Interval analysis with applications to parameter estimation and robot localization
Open
Luc Jaulin, Benoît Desrochers, Simon Rohou, Jordan Ninin


Lab-STICC UBO GDR MACS GDR Robotique ENSTA Bretagne DGA ROBEX Sperob SAGIP Interval computation




  1. Introduction to IAMOOC
  2. Dates
  3. Post your work
  4. Files
  5. Lessons et vidéos
  6. List of students who got the diploma










Introduction

About IAMOOC

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.







Registration

To register fill the form :
The registration is not mandatory to follow the MOOC and to see the videos. But it is needed to have to get the diploma.

Required

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).


Videos

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.


Diploma

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.
An example of the diploma you can obtain :








Dates

, 12:00. Chapter 0: Install all you need
, 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










Post your work

For each lesson, you should send your solution by email to jaulin.iamooc@gmail.com
For the exercises that require the execution of a program, You should provide the Python (or other) code.
You also have to send in your email a video capture with your running program. A video should last for less than 1 minute, if possible.
A possibility is to open a youtube channel so that you can send be the associated link in the email
For the video capture, you may use 'SimpleScreenRecorder' for Linux or 'CamStudio' for Windows.
For some exercises, the solution corresponds to text and equations and no 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.










Files

Exercises to be done:
A small manual on PyIbex and Vibes:
A zip file with the slides of the lessons :








Lessons et vidéos

Errata

The interval package PyIbex has changed into codac. As a consequence
from pyIbex import * should be replaced by from codac import *

Moreover, to start Vibes from your terminal, write Vibes-viewer instead of vibes.
Some other modifications are described in the codac documentation, (in magenta)




Chapter 0. Install all you need

Open:

Abstract: The goal of Chapter 0 is to help you to install all what you need to follow IAMOOC.


Exercise 0. Send an image

You install all what you need in your computer. You have to send by email an image to jaulin.iamooc@gmail.com with a subpaving (see below). The role of the exercise is to show that all is well installed and that you can start the mooc next week.



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


(1) All in your computer.

You need Python 3, codac and Vibes for graphics.

For the install of codac and Vibes, see:
Test the example given below :
 	 	
from codac import *
from vibes import vibes
f = Function('x', 'y', '1+cos(x)+sin(y)^2')
S = SepFwdBwd(f, [1,2])
X0 = IntervalVector(2,[-2,2])
vibes.beginDrawing()
SIVIA(X0, S, 0.01)
vibes.axisAuto()
vibes.setFigureSize(500,500)



(2) You prefer Python online (easier, but less efficient))

We use replit.com. Go to the project
Run to check the program is fine
Fork (for this, you will have to create an account).
Modify the program as you want. To post your program, just send the link.






Chapter 1. Interval Computation

Open :



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

















Chapter 2. Set inversion

Open :





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.














Chapter 3. Contractors

Open :





Abstract : A contractor 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.













Chapter 4. Application to robot localization

Open :





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.












List of the students who got the diploma

51 in 2015

ABADIE Moran
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



34 in 2017

Raphael Abellan Romita
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



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



25 in 2019

Maxens Achiepi-Autret
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

27 in 2020

Kévin Affraix
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
Yann Musellec

30 in 2021

Leobardo Valera
Timothée Guy
Jingyao Su
Sylvain Hernandez
Youssef El Gaouti
Mathilde Roques
Gabriel Adjouet
Angelica Ginnante
Julien Albrand
Yuehan Jiang
Hoang Nguyen
Estelle ARRICAU
Antonin BETAILLE Enzo-Loïd ESSONO AUBAME
Martin GOUNABOU
Bernardo HUMMES FLORES
Jean-Vincent KLEIN
Katell LAGATTU
Stéphane NGNEPIEPAYE WEMBE
Yves Jordan NJAMEN NGONGANG
Nicolas ODORICO
Baptiste ORLHAC
Hugo PIQUARD
Samuel PROUTEN
Hugo SABATIER
Julien TARAN
Isaac-Andreï WITT
Jadoul Thibault
Yohann GOURRET
Bilal Ghader
Alexis Stoven-Dubois

48 in 2022

Raphaël Bousigues
Alessandro Colotti
Marion Brateau
Danil Klyanchin
Luc Desbos
Artem Androsov
Chaolun Lu
Charly Peraud
Maxim Zvyagin
Dmitry Malyshev
Vilma Muco
Daan Wynen
Côme Butin
Alexandre L'Her
Chidiebere Millicent IGWEBUIKE
Anton Pisarenko
Patrick Auger
Muhammad Farhan AHMED
Alexandr Tereshchenko
Maksim Bezel
Mosaab Derbal
Jonatan Contreras
Ömer Gürsoy
Gabriel Betton
Théo Boutémy
Ermance Decaudaveine
Nicolas Defour
Laurent Droudin
Damien Esnault
Hugo Gace
Simon Gervaise
Mael Godard
Taddéo Guérin
Florian Jerram
Thibault Langlard
Augustin Morge
Virgile Pelle
Rémi Porée
Danut Pop
Chloe Potherat
Laurent Potin
Mirado Rajaomarosata
Hugo Reubrecht
Jonas Soueidan
Thomas Tacheron
Antoine Wanctin
Hugo Yverneau
Morgan Louédec