Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF4143  Gr. 01
Titre : Algorithmique I
Session : Hiver 2018  Horaire et local
Professeur : Pelc, Andrzej
1. Description du cours paraissant à l'annuaire :

Objectifs

Fournir à l'étudiant des outils pour choisir une solution algorithmique efficace à un problème donné et estimer sa performance. Le sensibiliser à l'importance de choisir la solution la plus adéquate.

Contenu

Critères de choix d'une solution algorithmique de problèmes, complexité d'algorithme versus performance de l'implantation, complexité en pire cas et en moyenne. Principaux types d'algorithmes, leurs qualités et défauts: algorithmes voraces, diviser pour régner, retour arrière, «branch and bound», programmation dynamique; exemples de problèmes résolus par des algorithmes de chaque type et leur analyse. Méthodes d'exploitation des graphes et leurs applications. Bornes inférieures de performance des algorithmes. Problèmes polynomiaux et intraitables, problèmes NP-complets, heuristiques, solutions approximatives. Ce cours comporte des séances obligatoires de travaux dirigés (TD) de deux heures par semaine.
2. Objectifs spécifiques du cours :
  1. Familiariser les étudiants avec diverses classes d'algorithmes.
  2. Fournir des outils permettant de choisir un type d'algorithme approprié au problème donné.
  3. Enseigner les techniques d'analyse d'efficacité des algorithmes.
3. Stratégies pédagogiques :
  1. Cours magistral : théorie et exemples pratiques.
  2. 4 travaux pratiques.
  3. 11 séances de laboratoire.
4. Heures de disponibilité ou modalités pour rendez-vous :
Sur rendez-vous.
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Préliminaires
  • notion d'algorithme et son efficacité
  • analyse en pire cas et en moyenne
09 jan. 2018 
2    Analyse de l'efficacité des algorithmes
  • notation asymptotique

Laboratoire #1 : le 23 janvier 2014 - Analyse de l'efficacité des algorithmes

16 jan. 2018 
3    Analyse de l'efficacité des algorithmes (suite)
  • exemples d'analyse des algorithmes

Laboratoire #2 : le 30 janvier 2014 - Analyse de l'efficacité des algorithmes (suite)

23 jan. 2018 
4    Les algorithmes voraces
  • notion
  • arbres sous-tendants minimaux : l'algorithme de Prim
  • les plus courts chemins : l'algorithme de Dijkstra

Laboratoire #3 : le 6 février 2014 - Les algorithmes voraces

30 jan. 2018 
5    Les algorithmes voraces (suite)
  • rangement optimal sur les bandes
  • heuristiques voraces suboptimales

Laboratoire #4 : le 13 février 2014 - Les algorithmes voraces (suite)

06 fév. 2018 
6    Diviser pour régner
  • notion
  • la fouille dichotomique
  • le tri par fusion

Laboratoire #5 : le 20 février 2014 - Diviser pour régner

13 fév. 2018 
7    Diviser pour régner (suite)
  • le tri de Hoare (quicksort)
  • la multiplication matricielle : l'algorithme de Strassen

Laboratoire #6 : le 27 février 2014 - Diviser pour régner (suite)

20 fév. 2018 
8    Semaine d'étude 27 fév. 2018 
9    Examen de mi-session 06 mars 2018 
10    La programmation dynamique
  • notion
  • calcul des coefficients binomiaux: le triangle de Pascal
  • les plus courts chemins: l'algorithme de Floyd
  • le commis voyageur

Exploration des graphes

  • exploration en pré-ordre, en en-ordre et en post-ordre des arborescences
  • la fouille en largeur et en profondeur des graphes

Laboratoire #7 : le 20 mars 2014 - La programmation dynamique et exploration des graphes

13 mars 2018 
11    Algorithmes à retour arrière (« backtracking »)
  • notion
  • le problème de huit reines
  • les cycles hamiltoniens

« Branch and bound »

  • notion
  • le commis voyageur

Laboratoire #8 : le 27 mars 2014 - Algorithmes à retour arrière (« backtracking »)et « Branch and bound »

20 mars 2018 
12    La théorie des bornes inférieures
  • arborescences de décisions pour la fouille et pour le tri
  • oracles et arguments adversaires

Laboratoire #9 : le 3 avril 2014 - La théorie des bornes inférieures

27 mars 2018 
13    Introduction à la NP-complétude

Laboratoire #10 : le 10 avril 2014 - Introduction à la NP-complétude

03 avr. 2018 
14    Avenues de recherche en algorithmique

Laboratoire #11 : le 17 avril 2014 - Révision

10 avr. 2018 
15    Examen final 17 avr. 2018 
6. Évaluation du cours :
  • Examen de mi-session : 30 %
  • Examen final : 50 %
  • Travaux à la maison : 20 %
7. Politiques départementales et institutionnelles :
8. Principales références :
  1. A. Pelc, Algorithmique I, Notes de cours pour INF4143, UQAH, (OBLIGATOIRE).
  2. A. Levitin, Introduction to the Design and Analysis of Algorithms, Addison Wesley, 2007 (recommandé).
  3. G. Brassard, P. Bratley, Algorithmique: conception et analyse, Presses de l'Université de Montréal, 1987.
  4. A.V. Aho, J.E. Hopcroft, J.D. Ullman, Data structures and algorithms, Addison-Wesley 1983.
  5. E. Horowitz, S. Sahni, Fundamentals of computer algorithms, Computer Science Press 1978 (recommandé).
9. Page Web du cours :
https://moodle.uqo.ca