Ensimag Rubrique Formation 2022

Algorithmique et optimisation discrète - 4MMAOD6

  • Volumes horaires

    • CM 7.5
    • Projet -
    • TD 9.0
    • Stage -
    • TP -
    • DS -

    Crédits ECTS

    Crédits ECTS 1.5

Objectif(s)

Titre complet: Algorithmique de l’optimisation discrète. Introduction à l'analyse de dépendances: parallélisme et localité mémoire

Objectifs:

  • analyser la performance d'un programme en terme de nombre d'opérations et de localité (nombre de défauts de localité)
  • concevoir un algorithme en prenant en compte les problématiques de hiérarchie mémoire (internet, disque dur, RAM, cache)
  • maîtriser les schémas de programmation itératifs et récursifs, et leur combinaison en cascade
  • concevoir et programmer des méthodes d’optimisation discrète: programmation dynamique et branch&Bound; exemples d’applications
  • pratiquer : TP
  • apprendre à modéliser par l'abstraction: temps et nombre d'opérations; cache et modèle de cache CO; optimisation et modélisation récursive

Responsable(s)

Jean-Louis ROCH

Contenu(s)

Descriptif des 5 séances de cours et 6 de TDs:

  • Chap 1. Analyse de la performance mémoire. Modèle CO. Technique par bloc cache-aware. Applications à des algorithmes sur des tableaux (tris et produits matrice-vecteur(s) [TP 0: produit matrice-matrice)
    TD1: produit matrice vecteur; tri fusion.
    => TP0 Produit de matrice.
  • Chap 2. De cache aware à cache oblivious. Applications à la transposition et au produit matrice-vecteur.
    TP: patch optimal
    TD2 : transposition et produit de matrices; tri par insertion
  • Chap 3. Programmation des formules récursives: élimination de la redondance par tabulation (mémoisation); programmation itérative; programmation récursive cache oblivious.
    TD 3: Formules récursive et cache : exemple des coefficients binomiaux
  • Chap 4. Application à la programmation d'un algorithme de programmation dynamique: distance de Fréchet
    TD4: Cageots de fraises.
  • Chap 5. Gestion des contraintes mémoire dans une exploration récursive: application au Branch&Bound.
    TD5: Compromis mémoire file et pile
  • Exemple de révision (dernière séance)

Prérequis

En terme de modules : Algorithmique et structures de données 1 et 2.
En terme de compétences : programmation impérative (itération, récursion, programmation procédurale, généricité ; mise en pratique). Structures de données

Contrôle des connaissances

Evaluation : 50% de TP notés et 50% de Examen Ecrit (2h)

Rattrapage : Examen Ecrit (2h)

CONTRÔLE CONTINU :

  • TP en temps libre avec correction automatique

SESSION NORMALE :
Examen écrit
Durée 2h
Documents autorisés: 1 feuille A4 recto-verso (notes personnelles)

SESSION DE RATTRAPAGE :
Examen écrit
Durée : 2h.
Salle spécifique : non
Documents autorisés : tous documents autorisés.
Matériel : aucun matériel autorisé

Calendrier

Le cours est programmé dans ces filières :

cf. l'emploi du temps 2025/2026

Informations complémentaires

Code de l'enseignement : 4MMAOD6
Langue(s) d'enseignement : FR

Le cours est rattaché aux structures d'enseignement suivantes :

  • Equipe Algorithmique-Mathématiques discrètes

Vous pouvez retrouver ce cours dans la liste de tous les cours.

Bibliographie

Introduction to Algorithms (chap 1-4, 17, 14, 15, 22, 24, 25), Cormen Leiserson Rivest Stein, MIT PRESS