Accueil - Connexion

Algorithmique avancée

186-2 Algorithmique avancée Informatique (formation initiale sous statut apprenti) S6
Cours : 15 h TD : 14 h TP : 14 h Projet : 0 h Total : 43 h
Responsable : Loick Lhote
Pré-requis
Cours "Programmation et langage C"
Cours "Bases de l'algorithmique"
Cours "Outils de développement logiciel"
Objectifs de l'enseignement
- Approfondir les bases de l'algorithmique vues au 1er semestre en étudiant les types de données arbres et graphes et les principaux algorithmes permettant de les manipuler.
- Donner des notions d'informatique théorique sur l'indécidabilité et la complexité des problèmes.
Programme détaillé
- Étude des algorithmes de recherche / insertion / suppression dans les arbres binaires de recherche, les arbres équilibrés, les arbres-B et les arbres n-aires.
- Représentation des ensembles disjoints dynamiques par forêt d'arbres.
- Étude des algorithmes de base sur les graphes orientés et non orientés : parcours usuels, composantes connexes et fortement connexes, arbre couvrant de poids minimal(algorithmes de Prim et de Kruskal, recherche du plus court chemin (algorithme de Moore-Dijkstra).
Tous les algorithmes sont analysés et comparés du point de vue de leur complexité.
- Notions d'informatique théorique: indécidabilité des problèmes, machines de Turing, complexité des problèmes, exemples de problèmes NP-complets.
Applications (TD ou TP)
Exemples de TD/TP :
- Parcours d'arbre binaire de recherche en profondeur et en largeur.
- Vérificateur orthographique (manipulation d'arbre n-aire).
- Parcours de graphe en profondeur et en largeur.
- Marquage topologique de graphe.
- Ordonnancement de tâches par la méthode MPM.
Compétences acquises
- Maîtrise des principaux types abstraits de données et de leur implantation en langage C.
- Maîtrise des algorithmes sur les arbres avec analyse de leur complexité.
- Maîtrise de quelques algorithmes sur les graphes.
- Connaissances sur les catégories de problèmes insolubles en un temps raisonnable.


Bloc compétence : Concevoir une solution perenne dans le domaine du génie logiciel
-> Niveau 3 : Formaliser et modéliser un problème à l’aide d’outils mathématiques et algorithmiques.
-> Niveau 1 : Trouver une information pertinente dans la littérature scientifique et technique puis l’évaluer et l'exploiter.
Bibliographie
- Introduction à l'algorithmique. T. Cormen et al., Dunod (1994)
- Types de données et algorithmes. C. Froidevaux et al., Mc Graw-Hill (1990)
- Algorithmes et structures de données en langage C. L. Ammeraal, InterEditions (1996)
- Algorithmes de graphes. P. Lacomme et al., Eyrolles (2003)
- Programmation en langage C. 3ème édition. S. Kochan, Pearson Education (2005)
- Le langage C, norme Ansi. B. Kernigham, Dunod (2000)

© 2024 - ENSICAEN ( Mentions Légales - Crédits )