INFO704 : Analyse d'algorithmes

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Responsable 2021: Sébastien Tavenas

Adresse couriel : sebastien.tavenas@univ-smb.fr

Problèmes

Problème 1 :

- Il y a N produits à acheter, chacun ayant un certain prix. Vous avez une somme E d'euros à votre disposition. Le but est d'obtenir le nombre maximum d'objets possible.

- Entrée : La première ligne indique le nombre de tests à réaliser. Chaque test commence par une ligne avec les valeurs N et E. La ligne suivante contient N entiers: la liste des prix des N produits. - Sortie : Le nombre de produits que l'on peut obtenir à chaque test. - Taille maximale des paramètres :

  1. == Quelques ressources bibliographiques ==
  2. Ouvrage de référence :
    1. Cormen, Leiserson, Rivest et Stein, Algorithmique, 3e edition (2009). ( Aussi appelé "Introduction à l'algorithmique" pour les deux premières #éditions )
  3. Autres références bibliographiques :
    1. Wilf, Algorithms and Complexity, (1994). Disponible en ligne
    2. Garey et Johnson, Computers and intractability a guide to the theory of NP-completeness. (1979).
    1. Hopcroft et Ullman, Introduction to automata theory, languages, and computation, (1979).
  4. == TP ==
  5. Dates provisoires :
  6. - 22/25 septembre
  7. - 9 octobre
  8. - 16 octobre
  9. TP1 les 22/25 septembre : Analyser la complexité d'algorithmes
  10. - Sujet du TP 1
  11. - Fichiers pour le TP
  12. - Nécessité d'importer la librairie matplotlib
  13. TP2 le 9 octobre : Problème NP-complet
  14. - Sujet du TP 2 (Partie I)
  15. - Exemples d'entrée
  16. - Générateur aléatoire d'entrées
  17. TP3 le 16 octobre : Réductions
  18. - Sujet du TP 2 (Partie II)
  19. - Esquisse de résolveur pour Clique
  20. - Nécessité d'importer la librairie pycosat
  21. == Déroulement (2020) ==
  22. Cours 1 (7 septembre) : Introduction
  23. - Introduction
  24. - Exemple de différents tris
  25. - Notions d'instance et de problème
  26. - Notion de complexité asymptotique
  27. - Grand-O de la notation de Landau
  28. TD 1 (10 septembre) : Analyses d'algorithmes
  29. - Sujet du TD
  30. - Fonctions mathématiques de base : polynômes, #exponentielles et logarithmes
  31. Cours 2 (17 septembre) : Algorithmes récursifs (Diviser pour régner)
  32. - Présentation des algorithmes Diviser-pour-régner.
  33. - Théorème général.
  34. - distance minimale
  35. TD 2 (29 septembre) : Exercices d'analyse pour des algos récursifs ("Master Theorem")
  36. - Exercices, complexité des fonctions #récursives.
  37. - Solutions des questions 6 et 7.
  38. - Solution de la question 5.
  39. Cours 3 (2 octobre) : Programmation dynamique
  40. - Algorithme récursif pour les nombres de Fibonacci
  41. - Programme python pour le problème #de découpe de barres
  42. - Algorithme de Levenshtein
  43. - Présentation 'tablette' vue en #cours
  44. TD 3 (5 octobre) : Exercices sur la programmation dynamique
  45. - Sujet du TD
  46. - Si besoin, problème du sous-tableau de somme maximale.
  47. - Notes lors de la correction
  48. Cours 4 (13 octobre) : Premières réductions algorithmiques
  49. - Un liste de réductions algorithmiques entre différents problèmes
  50. - Note sur les mathématiques derrière la #réduction de 3SUM vers 3COLLINEAR
  51. TD 4 (14 octobre) : Clique et consorts
  52. - Réductions autour de Clique et NP-complétude de #Clique
  53. - Notes sur le problème SAT
  54. Cours 5 (23 octobre, matin) : Classes de complexité et NP-complétude
  55. - Petite introduction en survol de la NP-#complétude
  56. - Notes de cours sur les classes #de complexité
  57. - Petit Vrai/Faux sur la NP-complétude
  58. - Hors programme : slides sur les classes de #complexité que j'avais utilisé lors d'une année antérieure quand je faisais la preuve du théorème de Levin-Cook
  59. TD 5 (23 octobre, après-midi) : Classes de complexité et NP-complétude
  60. - Énoncé du TD
  61. - Problème du sac à dos
  62. - Corrigé de l'exercice 3 du TD
  63. == Annales Examen ==
  64. Examen 2017
  65. == Historique ==
  66. Ce cours était donné précédemment par Xavier Provençal.
  67. Ce cours est une refonte de INFO724 Algorithmique avancée, graphes et NP-complétude.