Algorithmique avancée#

M1 Informatique pour la Science des Données, Université Paris-Saclay, Faculté d’Orsay

Page web, ENT eCampus

«L’objectif de ce cours est de fournir des outils et techniques algorithmiques de pointe aux apprentis. Étude de l’algorithmique sur les graphes (plus courts chemins, tri topologique, …), les techniques de mémorisation, de programmation dynamique et de backtracking. Présentation de la notion de flots et des algorithmes de calcul de flot maximal. Enfin, les thèmes des algorithmes online et approchés seront abordés.»

Enseignants#

Vue d’ensemble#

Les notions du cours seront abordées par la pratique, tout d’abord par l’implantation de structures de données de graphes, puis leur utilisation pour résoudre quatre problèmes.

Structures de données pour les graphes#

Problème 1: Le chemin le plus rapide en métro de Montgallet à Billancourt ?#

../_images/metro-paris.gif

Problème 2: Rush Hour#

La voiture rouge est coincée dans un embouteillage; comment déplacer les véhicules pour la faire sortir? Ci-dessous le défi 1. Saurez-vous faire résoudre par l’ordinateur le défi 40 en un nombre minimum du coups?

../_images/rush_hour.gif

Problème 3: Faire passer le maximum de courant#

../_images/reseau-electrique.png

Problème 4: Fabriquer et résoudre des labyrinthes#

../_images/labyrinthe.png

Planning#

3 semaines avec 3h + 3h: Cours + TD + TP intégré

Graphes: structures de données, terminologie, plus courts chemins (Nicolas)#

  • 2022-03-22 jeu. 10:00-12:30, 14:00-15:00

  • 2022-03-23 ven. 13:30-17:00

Réseaux et flots (Viviane)#

  • 2023-03-30 jeu. 09:00-13:00

  • 2023-03-31 ven. 13:30-17:00

  • 2023-04-06 jeu. 09:00-13:00

Arbres couvrants (Florent)#

  • 2022-05-16 mar. 13:30-16:45

  • 2022-05-23 mar. 13:30-16:45

Modalités d’évaluation (à mettre à jour)#

L’évaluation se fera sur les rendus de TP (CC), ainsi que sur un examen (ET1 / ET2)

Session 1 : 1/3 CC + 2/3 ET1

Session 2 : 1/3 CC + 2/3 ET2

Annales#

Environnement de travail#

  • Language de programmation: Python 3

  • Environnement interactif: Jupyter + networkx + matplotlib + …

Dans cette section, nous expliquons:

  • Comment accéder aux logiciels requis

  • Comment télécharger et déposer vos devoirs

Les instructions font l’hypothèse que vous travaillerez pour ce cours dans votre répertoire ~/M1-ISD/AlgorithmiqueAvancee. Vous pouvez choisir un autre nom.

Accéder aux logiciels requis#

Utilisation des logiciels en ligne (recommandé)

L’université Paris-Saclay mets à votre disposition deux services sur lesquels sont installés tous les logiciels requis. Vous pouvez vous identifier avec vos identifiants usuels de l’université (Adonis).

Télécharger et déposer les devoirs#

Les sujets sont donnés sous forme de dépôt git sur https://gitlab.dsi.universite-paris-saclay.fr . Vous utiliserez git pour le télécharger et le déposer sous la forme d’une divergence privée (fork). La correction se fera en partie automatiquement par intégration continue. Il y a un script pour automatiser le processus.

Mise en place la première fois#

Activation compte GitLab Paris-Saclay#
Téléchargement de la «salle de TP virtuelle»#

Si vous n’êtes pas sur myDocker ou si vous ne l’avez pas déjà fait :

git clone https://gitlab.dsi.universite-paris-saclay.fr/M1InfoISDAlgorithmiqueAvancee/ComputerLab.git ~/M1-ISD/AlgorithmiqueAvancee

Note : nous supposerons dans la documentation ci-dessous que vous avez utilisé le nom de répertoire ~/M1-ISD/AlgorithmiqueAvancee/. Vous pouvez en utiliser un autre en adaptant les instructions.

Téléchargement et dépôt des TPs avec Travo#

L’environnement de cours fournit un script qui automatise le téléchargement et le dépôt de votre travail. Consultez sa documentation avec:

cd ~/M1-ISD/AlgorithmiqueAvancee
./course.py

Voir ci-dessous sur ce que cela fait, et comment faire pareil à la main, si vous le souhaitez.

Travail sur le TP#

Ouvrez les feuilles Jupyter et suivez les instructions dans les feuilles successives README.md, 00-*.md, 01-*.md, … ainsi que Rapport.md.

Dépôt de votre travail#

Consultez la documentation comme ci-dessus!

Vous pouvez déposer votre travail aussi souvent que vous le souhaitez. Seule la dernière version disponible au moment de la correction sera prise en compte.

Consultation des résultats des tests automatiques#

Vous pouvez consulter les résultats des tests automatiques en navigant sur votre dépôt:

https://gitlab.dsi.universite-paris-saclay.fr/prenom.nom_travo/

Quelques minutes après avoir déposé, un badge apparaîtra avec votre score. Cliquez dessus et suivez les liens pour consulter le résultat de la correction automatique.

Travail en binôme#

Les TP seront à effectuer en binôme. Vous trouverez sur cette page web des indications sur comment travailler en binôme, et notamment configurer vos dépôts sur GitLab pour faciliter la collaboration et la correction.