Logo ÉTS
Session
Cours
Responsable(s) Xavier Provençal, Patrick Cardinal

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Xavier Provençal
Patrick Cardinal


PLAN DE COURS

Été 2024
IND235 : Graphes et algorithmes (3 crédits)





Préalables
Aucun préalable requis
Unités d'agrément
Données non disponibles




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
Ce cours vise à expliquer des notions de la théorie des graphes et des algorithmes qui s’y rattachent.

Au terme de ce cours, l’étudiante ou l’étudiant sera en mesure de : utiliser la théorie des graphes pour représenter et résoudre des problèmes de nature algorithmique ; expliquer la notion de classes de complexité ; choisir la technique algorithmique appropriée en fonction du contexte ; implémenter de manière efficace des algorithmes de la théorie des graphes.

Analyse de la complexité asymptotique. Algorithmes de parcours de graphes, de détection de cycles et de décomposition en composantes fortement connexes. Arbres couvrants. Problèmes classiques de la théorie des graphes. Solutions exactes et approchées. NP-complétude : certificat, réduction polynomiale et théorème de Cook.



Objectifs du cours

Au terme de ce cours, l'étudiant(e) aura assimilé les notions suivantes :

  • différents types d'analyse des performances des algorithmes : en temps, en espace, analyse amortie, etc.;
  • classes de complexité : P, NP, NP-complet;
  • algorithmes classiques sur les graphes : calcul d'arbres couvrants, tri topologique, identification des composantes fortement connexes, calcul du flot maximal,  coupure minimale, etc.;
  • problèmes classiques de la théorie des graphes : partitionnement, clusterisation, clique, coloriage, commis voyageur, etc.;

À la fin du cours, l'étudiant(e) sera capable de :

  • modéliser un problème donné en terme de graphes;
  • utiliser la théorie des graphes et ses algorithmes afin de résoudre un problème de nature algorithmique;
  • modifier les algorithmes classiques afin de les adapter à une situation particulière;
  • concevoir une solution algorithmique exacte ou approchée en fonction du contexte.



Stratégies pédagogiques
  • 3 heures de cours magistraux par semaine.
  • 2 heures de laboratoire et de travaux pratiques par semaine. La répartition du temps entre travaux pratiques et activité de laboratoire est flexible et dépend de la matière vue lors des séances de cours magistraux.



Utilisation d’appareils électroniques

Il est interdit de capter le cours ou des portions du cours (enregistrement vidéo, enregistrement audio, photographie) en salle de classe ou en laboratoire à moins d'avoir obtenu au préalable la permission de l'enseignant.




Horaire
Groupe Jour Heure Activité
01 Mercredi 13:30 - 17:00 Activité de cours
Jeudi 08:30 - 12:30 Laboratoire (2 sous-groupes)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Xavier Provençal Activité de cours Xavier.Provencal@etsmtl.ca B-2306



Cours

Introduction aux bases de données orientées graphes (2h)

  1. Principes fondamentaux
  2. Comparaison aux bases de données relationnelles

Problèmes et algorithmes classiques sur les graphes (4h)

  1. Parcours, arbres couvrants, composantes fortement connexes
  2. Algorithmes de Prim, Kruskal, Tarjan, Kosaraju
  3. DAG : tri topologique, chemin critique, chemin minimum en temps linéaire
  4. Analyse des performances : en temps et en espace, analyse au pire cas et analyse amortie

Approche matricielle (3h)

  1. Dénombrement de chemins
  2. Parcours en largeur via l'algèbre matricielle
  3. Algorithme de Floyd-Warshall
  4. Introduction à l'analyse spectrale

Coupures et flots (3h)

  1. Problème du flot maximal
  2. Algorithmes de Ford-Fulkerson et Edmonds-Karp
  3. Théorème flot-max/coupe-min

Découpage en communautés (6h)

  1. Coupures : minimum et maximum
  2. Diamètre d'un graphe
  3. Algorithme des k-moyennes
  4. Problèmes : clique, partition, identification de communautés

NP-Complétude (3h)

  1. Classes P et NP
  2. Réduction polynomiale
  3. Problèmes NP-difficiles
  4. Théorème de Cook

Coloriage de graphes (3h)

  1. Algorithmes exacts et approchés
  2. Preuve de NP-complétude
  3. Applications en informatique
  4. Introduction au théorème des 4 couleurs

Commis voyageur (3h)

  1. Algorithmes exacts
  2. Preuve de NP-complétude
  3. Heuristique avec garantie : algorithme de Christofides

Systèmes distribués (6h)

  1. Modèles synchrone et asynchrone.
  2. Algorithmes élémentaires : diffusion, concentration, inondation, arbre couvrant, etc.
  3. Algorithme de Bellman-Ford distribué
  4. Coloration de graphe distribuée

Visualisation de graphes (3h)

  1. Méthodes de base
  2. Métriques
  3. Méthodes basées sur les forces

 




Laboratoires et travaux pratiques

Quatre (4) laboratoires, tous effectués individuellement.

  • Deux laboratoires à réaliser sur plusieurs semaines, en partie lors des séances de laboratoire et en partie de manière autonome.
  • Deux examens de laboratoire, d'une durée de 2h chacun. Une séance de laboratoire sera consacrée à chacun de ces deux examens. L’étudiant(e) absent(e) se verra attribuer la note zéro (0).

 




Utilisation d'outils d'ingénierie

L’étudiant(e) utilisera un outil de développement logiciel intégré (IDE) tel que : ECLIPSE, INTELLIJ ou VSCODE afin de développer des logiciels en JAVA.

Pour la réalisation des travaux de laboratoires, les étudiants(es) pourront utiliser un ordinateur MAC ou PC.




Évaluation

Laboratoires 40%

Examen intra 30%

Examen final 30%

 




Dates des examens intra
Groupe(s) Date
1 19 juin 2024



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.



Absence à une évaluation
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiante ou l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice ou du coordonnateur – Affaires académiques qui en référera à la personne assurant la direction du département. Pour un examen final, l’étudiante ou l’étudiant devra justifier son absence auprès du Bureau de la registraire. Dans tous les cas, l’étudiante ou l’étudiant doit effectuer sa demande en complétant le formulaire de demande d’examen de compensation qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, activité compétitive d’une étudiante ou d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.



Documentation obligatoire

Aucune documentation obligatoire.




Ouvrages de références

KLEINBERG et TARDOS, Algorithm Design, Addison Wesley, 2006.
CORMEN, LEISERSON et RIVEST, Introduction à l’algorithmique. 3e éd., Dunod, 2010.
DEO, Graph Theory with applications to Engineering & Computer Science, Dover, 1974.
ATTIYA et WELCH, Distributed Computing: Fundamentals, Simulations, and Advanced Topics, Wiley, 2004.




Adresse internet du site de cours et autres liens utiles

Le matériel de cours sera publié sur Moodle.