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. Anlyse 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 veteur; 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 : trasposition 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écurisve et cache : Cnp
  • 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écrusive: 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

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é

    • MCC en présentiel distanciel **
      N1 = 50% note projet en temps libre + 50% examen écrit de 2h
      N2 = examen écrit de 2h

Calendrier

Le cours est programmé dans ces filières :

  • Cursus ingénieur - Filière ISI - Semestre 7
  • Cursus ingénieur - Filière IF - Semestre 7
cf. l'emploi du temps 2023/2024

Informations complémentaires

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

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

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