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. Hopcroft et Ullman, Introduction to automata theory, languages, and computation, (1979).
  1. == TP ==
  2. Dates provisoires :
  3. - 22/25 septembre
  4. - 9 octobre
  5. - 16 octobre
  6. TP1 les 22/25 septembre : Analyser la complexité d'algorithmes
  7. - Sujet du TP 1
  8. - Fichiers pour le TP
  9. - Nécessité d'importer la librairie matplotlib
  10. TP2 le 9 octobre : Problème NP-complet
  11. - Sujet du TP 2 (Partie I)
  12. - Exemples d'entrée
  13. - Générateur aléatoire d'entrées
  14. TP3 le 16 octobre : Réductions
  15. - Sujet du TP 2 (Partie II)
  16. - Esquisse de résolveur pour Clique
  17. - Nécessité d'importer la librairie pycosat
  18. !---
  19. TP les 10 octobre et 6 novembre.
  20. - Énoncé du TP, première partie : tp-part-1.pdf. Plus de détails pour chacuns des #trois sujets :
  21. * tp-part-1-CHO.pdf
  22. * tp-part-1-CHNO.pdf
  23. * tp-part-1-3C.pdf
  24. Voici aussi un exemple d'entrée pour chaque sujet :
  25. * Graphe-vrai-CHO.pdf
  26. * Graphe-vrai-CHNO.pdf
  27. * Graphe-vrai-3C.pdf
  28. -----
  29. TP3 le 18 octobre : Réductions polynomiales
  30. - Énoncé du TP, deuxième partie.
  31. - Documents pour les réductions :
  32. * Avro #Chapitre 10
  33. * Cormen-Leiserson-Rivest-Stein #Coloration
  34. * Cormen-Leiserson-Rivest-Stein HNO
  35. (Attention la figure 34.16 est incorrecte. La remplacer par la figure 34.16 de la Version anglaise)
  36. * Hon HO Version francaise
  37. * Garey-Johnson HNO
  38. * wiki proof
  39. - Voici des exemples d'entrée pour 3SAT et Couverture par Sommets :
  40. * 3SAT-vrai
  41. * CS-vrai
  42. * 3SAT-faux
  43. * CS-faux
  44. --
  45. == Déroulement (2020) ==
  46. Cours 1 (7 septembre) : Introduction
  47. - Introduction
  48. - Exemple de différents tris
  49. - Notions d'instance et de problème
  50. - Notion de complexité asymptotique
  51. - Grand-O de la notation de Landau
  52. TD 1 (10 septembre) : Analyses d'algorithmes
  53. - Sujet du TD
  54. - Fonctions mathématiques de base : polynômes, #exponentielles et logarithmes
  55. Cours 2 (17 septembre) : Algorithmes récursifs (Diviser pour régner)
  56. - Présentation des algorithmes Diviser-pour-régner.
  57. - Théorème général.
  58. - distance minimale
  59. TD 2 (29 septembre) : Exercices d'analyse pour des algos récursifs ("Master Theorem")
  60. - Exercices, complexité des fonctions #récursives.
  61. - Solutions des questions 6 et 7.
  62. - Solution de la question 5.
  63. Cours 3 (2 octobre) : Programmation dynamique
  64. - Algorithme récursif pour les nombres de Fibonacci
  65. - Programme python pour le problème #de découpe de barres
  66. - Algorithme de Levenshtein
  67. - Présentation 'tablette' vue en #cours
  68. TD 3 (5 octobre) : Exercices sur la programmation dynamique
  69. - Sujet du TD
  70. - Si besoin, problème du sous-tableau de somme maximale.
  71. - Notes lors de la correction
  72. Cours 4 (13 octobre) : Premières réductions algorithmiques
  73. - Un liste de réductions algorithmiques entre différents problèmes
  74. - Note sur les mathématiques derrière la #réduction de 3SUM vers 3COLLINEAR
  75. !-- Réductions de NP-complétude
  76. !-- - Problèmes NP-difficiles et NP-complets.
  77. - Théorème de Cook-Levin. Cook-Levin
  78. - Preuve de NP-Complétude. !-- : Couverture des arêtes et k-coloriage. --
  79. --
  80. !-- Complexité des problèmes
  81. - Introduction aux classes de complexité.
  82. !-- - Complexité d'un problème.
  83. - Classe P.
  84. !-- - Types de problèmes ( décision, optimisation, existence ). --
  85. - Réduction polynomiale.
  86. - Algorithme de vérification.
  87. - Classe NP.
  88. --
  89. TD 4 (14 octobre) : Clique et consorts
  90. - Réductions autour de Clique et NP-complétude de #Clique
  91. - Notes sur le problème SAT
  92. !-- Programmation dynamique
  93. - Énoncé de TD.
  94. - Correction sur la distance de Levenshtein.
  95. --
  96. Cours 5 (23 octobre, matin) : Classes de complexité et NP-complétude
  97. - Petite introduction en survol de la NP-#complétude
  98. - Notes de cours sur les classes #de complexité
  99. - Petit Vrai/Faux sur la NP-complétude
  100. - 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
  101. TD 5 (23 octobre, après-midi) : Classes de complexité et NP-complétude
  102. - Énoncé du TD
  103. - Problème du sac à dos
  104. - Corrigé de l'exercice 3 du TD
  105. == Annales Examen ==
  106. Examen 2017
  107. == Historique ==
  108. Ce cours était donné précédemment par Xavier Provençal.
  109. Ce cours est une refonte de INFO724 Algorithmique avancée, graphes et NP-complétude.

-->