« INFO704 : Analyse d'algorithmes » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 10 : Ligne 10 :
- Taille maximale des paramètres :
- Taille maximale des paramètres :


<!--
#== Quelques ressources bibliographiques ==
#== Quelques ressources bibliographiques ==
#
#
Ligne 18 : Ligne 19 :
## Wilf, Algorithms and Complexity, (1994). [http://www.math.upenn.edu/%7Ewilf/AlgoComp.pdf Disponible en ligne]
## Wilf, Algorithms and Complexity, (1994). [http://www.math.upenn.edu/%7Ewilf/AlgoComp.pdf Disponible en ligne]
## Garey et Johnson, Computers and intractability a guide to the theory of NP-completeness. (1979).
## Garey et Johnson, Computers and intractability a guide to the theory of NP-completeness. (1979).
#<!-- # Paschos, Complexité et approximation polynomiale, (2004). -->
#!-- # Paschos, Complexité et approximation polynomiale, (2004). -->
## Hopcroft et Ullman, Introduction to automata theory, languages, and computation, (1979).
## Hopcroft et Ullman, Introduction to automata theory, languages, and computation, (1979).
#
#
Ligne 46 : Ligne 47 :
# - Nécessité d'importer la librairie pycosat
# - Nécessité d'importer la librairie pycosat
#
#
#<!---
#!---
#TP les 10 octobre et 6 novembre.
#TP les 10 octobre et 6 novembre.
#
#
Ligne 74 : Ligne 75 :
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/CS_faux CS-faux]
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/CS_faux CS-faux]
#
#
#-->
#--
#
#
#== Déroulement (2020) ==
#== Déroulement (2020) ==
Ligne 120 : Ligne 121 :
# - Un liste de réductions algorithmiques entre différents problèmes
# - Un liste de réductions algorithmiques entre différents problèmes
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S7TD/Notes_red_3SUM_3Collinear.pdf Note sur les mathématiques derrière la #réduction de 3SUM vers 3COLLINEAR]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S7TD/Notes_red_3SUM_3Collinear.pdf Note sur les mathématiques derrière la #réduction de 3SUM vers 3COLLINEAR]
#<!-- Réductions de NP-complétude
#!-- Réductions de NP-complétude
#!-- - Problèmes NP-difficiles et NP-complets.
#!-- - Problèmes NP-difficiles et NP-complets.
# - Théorème de Cook-Levin. [https://mycore.core-cloud.net/index.php/s/V9OUMtvnDuezpKl Cook-Levin]
# - Théorème de Cook-Levin. [https://mycore.core-cloud.net/index.php/s/V9OUMtvnDuezpKl Cook-Levin]
# - Preuve de NP-Complétude. !-- : Couverture des arêtes et k-coloriage. --
# - Preuve de NP-Complétude. !-- : Couverture des arêtes et k-coloriage. --
#-->
#--
#<!-- Complexité des problèmes
#!-- Complexité des problèmes
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/presentation1.0.pdf Introduction aux classes de complexité.]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/presentation1.0.pdf Introduction aux classes de complexité.]
#!-- - Complexité d'un problème.
#!-- - Complexité d'un problème.
Ligne 133 : Ligne 134 :
# - Algorithme de vérification.
# - Algorithme de vérification.
# - Classe NP.
# - Classe NP.
#-->
#--
#TD 4 (14 octobre) : Clique et consorts
#TD 4 (14 octobre) : Clique et consorts
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/Clique-EI-CS.pdf Réductions autour de Clique et NP-complétude de #Clique]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/Clique-EI-CS.pdf Réductions autour de Clique et NP-complétude de #Clique]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/ProblemeSAT.pdf Notes sur le problème SAT]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/ProblemeSAT.pdf Notes sur le problème SAT]
#<!-- Programmation dynamique
#!-- Programmation dynamique
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S7TD/TD-prog_dynamique.pdf Énoncé de TD.]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S7TD/TD-prog_dynamique.pdf Énoncé de TD.]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/Levenshtein.pdf Correction sur la distance de Levenshtein.]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/Levenshtein.pdf Correction sur la distance de Levenshtein.]
#-->
#--
#
#
#Cours 5 (23 octobre, matin) : Classes de complexité et NP-complétude
#Cours 5 (23 octobre, matin) : Classes de complexité et NP-complétude
Ligne 162 : Ligne 163 :
#Ce cours est une refonte de [http://lama.univ-savoie.fr/mediawiki/index.php/INFO724_:_Algorithmique_avanc%C3%A9e,_graphes_et_NP-#Compl%C3%A9tude INFO724 Algorithmique avancée, graphes et NP-complétude].
#Ce cours est une refonte de [http://lama.univ-savoie.fr/mediawiki/index.php/INFO724_:_Algorithmique_avanc%C3%A9e,_graphes_et_NP-#Compl%C3%A9tude INFO724 Algorithmique avancée, graphes et NP-complétude].
#
#
-->

Version du 10 octobre 2021 à 16:15

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.

-->