Algorithmes avancés · L3 · Section 11/11
Ressources
Progression
Points d’expérience : —XPSérie de jours consécutifs : —· —Progression du module : — / —compris
#Ressources : algorithmes avancés
Comment s'en servir : résoudre d'abord à la main sur un petit exemple, formaliser la récurrence ou la preuve sur papier, puis implémenter et mesurer. La preuve d'abord, le code ensuite : c'est l'ordre qui garantit que l'implémentation teste la bonne idée.
#Références
- Introduction to Algorithms (Cormen, Leiserson, Rivest, Stein) : chapitres sur la programmation dynamique, les plus courts chemins, les arbres couvrants ; les preuves y sont complètes.
- Supports du cours d'algorithmique L3 de l'UCA : structure du semestre et sujets d'examen.
- Algorithm Design Manual (Skiena) : le catalogue de problèmes par forme, utile pour reconnaître un problème connu sous un habillage nouveau.
#Pratique
- Implémenter Dijkstra et A* sur des graphes variés (poids entiers, réels, denses, clairsemés) et comparer les nombres de nœuds développés.
- Enchaîner les exercices de programmation dynamique : sac à dos, rendu de monnaie, LCS, chaînes de matrices (chapitres correspondants du module).
- Sur une plateforme d'exercices (Codeforces, France IOI, Project Euler pour le versant mathématique) : étiqueter chaque problème par son schéma (glouton, DP, graphe, recherche) avant de coder.
#Outils du site
- Visualiseurs des chapitres : Dijkstra (figement par distances croissantes), A* (effet de l'heuristique sur la zone explorée), parcours de graphes (BFS par couches), Huffman (construction de l'arbre), tri rapide (partition).
- Playgrounds Python intégrés : chaque chapitre embarque un code exécutable modifiable ; servez-vous en pour tester vos variantes sans installation.