« 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 1 : Ligne 1 :
Responsable 2020: Sébastien Tavenas
Responsable 2021: Sébastien Tavenas
Adresse couriel : sebastien.tavenas@univ-smb.fr
Adresse couriel : sebastien.tavenas@univ-smb.fr


== Problèmes ==
== Quelques ressources bibliographiques ==


Problème 1 :
Ouvrage de référence :
- 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.
# Cormen, Leiserson, Rivest et Stein, Algorithmique, 3e edition (2009). ( Aussi appelé "Introduction à l'algorithmique" pour les deux premières éditions )
- 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 :


Autres références bibliographiques :
#== Quelques ressources bibliographiques ==
#
# Wilf, Algorithms and Complexity, (1994). [http://www.math.upenn.edu/%7Ewilf/AlgoComp.pdf Disponible en ligne]
#Ouvrage de référence :
# Garey et Johnson, Computers and intractability a guide to the theory of NP-completeness. (1979).
## Cormen, Leiserson, Rivest et Stein, Algorithmique, 3e edition (2009). ( Aussi appelé "Introduction à l'algorithmique" pour les deux premières #éditions )
<!-- # Paschos, Complexité et approximation polynomiale, (2004). -->
#
# Hopcroft et Ullman, Introduction to automata theory, languages, and computation, (1979).
#Autres références bibliographiques :

## Wilf, Algorithms and Complexity, (1994). [http://www.math.upenn.edu/%7Ewilf/AlgoComp.pdf Disponible en ligne]
== TP ==
## Garey et Johnson, Computers and intractability a guide to the theory of NP-completeness. (1979).

#<!-- # Paschos, Complexité et approximation polynomiale, (2004). -->
Dates provisoires :
## Hopcroft et Ullman, Introduction to automata theory, languages, and computation, (1979).
- 22/25 septembre
#
- 9 octobre
#== TP ==
- 16 octobre
#

#Dates provisoires :

TP1 les 22/25 septembre : Analyser la complexité d'algorithmes
# - 22/25 septembre
# - 9 octobre
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP1/tp1_enonce.pdf Sujet du TP 1]
# - 16 octobre
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP1/fichiersTP1/ Fichiers pour le TP]
#
- Nécessité d'importer la librairie matplotlib
#

#TP1 les 22/25 septembre : Analyser la complexité d'algorithmes

# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP1/tp1_enonce.pdf Sujet du TP 1]
TP2 le 9 octobre : Problème NP-complet
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP2/tp-part-1.pdf Sujet du TP 2 (Partie I)]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP1/fichiersTP1/ Fichiers pour le TP]
# - Nécessité d'importer la librairie matplotlib
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP2/instances/ Exemples d'entrée]
#
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP2/generator.py Générateur aléatoire d'entrées]
#

#TP2 le 9 octobre : Problème NP-complet

# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP2/tp-part-1.pdf Sujet du TP 2 (Partie I)]
TP3 le 16 octobre : Réductions
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/tp-part-2.pdf Sujet du TP 2 (Partie II)]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP2/instances/ Exemples d'entrée]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/solveClique.py Esquisse de résolveur pour Clique]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP2/generator.py Générateur aléatoire d'entrées]
#
- Nécessité d'importer la librairie pycosat
#

#TP3 le 16 octobre : Réductions
<!---
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/tp-part-2.pdf Sujet du TP 2 (Partie II)]
TP les 10 octobre et 6 novembre.
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/solveClique.py Esquisse de résolveur pour Clique]

# - Nécessité d'importer la librairie pycosat
- Énoncé du TP, première partie : [https://mycore.core-cloud.net/index.php/s/CmLxKnYRdR3ots9 tp-part-1.pdf]. Plus de détails pour chacuns des trois sujets :
#
* [https://mycore.core-cloud.net/index.php/s/pGWYh5foa81qWMQ tp-part-1-CHO.pdf]
#<!---
* [https://mycore.core-cloud.net/index.php/s/28cFgEefXqte4hO tp-part-1-CHNO.pdf]
#TP les 10 octobre et 6 novembre.
* [https://mycore.core-cloud.net/index.php/s/qttUkOHtF6Fawel tp-part-1-3C.pdf]
#
Voici aussi un exemple d'entrée pour chaque sujet :
* [https://mycore.core-cloud.net/index.php/s/0vzGaxLoTG7ILMV Graphe-vrai-CHO.pdf]
# - Énoncé du TP, première partie : [https://mycore.core-cloud.net/index.php/s/CmLxKnYRdR3ots9 tp-part-1.pdf]. Plus de détails pour chacuns des #trois sujets :
* [https://mycore.core-cloud.net/index.php/s/QUHwEnb8nlkpFxh Graphe-vrai-CHNO.pdf]
# * [https://mycore.core-cloud.net/index.php/s/pGWYh5foa81qWMQ tp-part-1-CHO.pdf]
* [https://mycore.core-cloud.net/index.php/s/ItC1deMoQ2dZ1So Graphe-vrai-3C.pdf]
# * [https://mycore.core-cloud.net/index.php/s/28cFgEefXqte4hO tp-part-1-CHNO.pdf]
# * [https://mycore.core-cloud.net/index.php/s/qttUkOHtF6Fawel tp-part-1-3C.pdf]
-----
#Voici aussi un exemple d'entrée pour chaque sujet :
TP3 le 18 octobre : Réductions polynomiales
# * [https://mycore.core-cloud.net/index.php/s/0vzGaxLoTG7ILMV Graphe-vrai-CHO.pdf]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/tp-part-2.pdf Énoncé du TP, deuxième partie].
# * [https://mycore.core-cloud.net/index.php/s/QUHwEnb8nlkpFxh Graphe-vrai-CHNO.pdf]
- Documents pour les réductions :
# * [https://mycore.core-cloud.net/index.php/s/ItC1deMoQ2dZ1So Graphe-vrai-3C.pdf]
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Avro--Chapter10--ChallengingReductions.pdf Avro Chapitre 10]
#-----
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cormen_Coloration.pdf Cormen-Leiserson-Rivest-Stein Coloration]
#TP3 le 18 octobre : Réductions polynomiales
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cormen_HNO.pdf Cormen-Leiserson-Rivest-Stein HNO](Attention la figure 34.16 est incorrecte. La remplacer par la figure 34.16 de la [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cormen_HNO_english.pdf Version anglaise])
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cours_Hon_HO2.pdf Hon HO] [https://mycore.core-cloud.net/index.php/s/eQ1hJsUxci863kx Version francaise]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/tp-part-2.pdf Énoncé du TP, deuxième partie].
# - Documents pour les réductions :
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/garey-HNO.pdf Garey-Johnson HNO]
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/wiki_proof.pdf wiki proof]
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Avro--Chapter10--ChallengingReductions.pdf Avro #Chapitre 10]
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cormen_Coloration.pdf Cormen-Leiserson-Rivest-Stein #Coloration]
- Voici des exemples d'entrée pour 3SAT et Couverture par Sommets :
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/3sat_vrai 3SAT-vrai]
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cormen_HNO.pdf Cormen-Leiserson-Rivest-Stein HNO]
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/CS_vrai CS-vrai]
#(Attention la figure 34.16 est incorrecte. La remplacer par la figure 34.16 de la [https://www.lama.univ-#savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cormen_HNO_english.pdf Version anglaise])
* [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/3sat_faux 3SAT-faux]
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/Cours_Hon_HO2.pdf Hon HO] [https://mycore.core-#cloud.net/index.php/s/eQ1hJsUxci863kx Version francaise]
* [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/DocsReduction/garey-HNO.pdf Garey-Johnson HNO]
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/DocsReduction/wiki_proof.pdf wiki proof]

# - Voici des exemples d'entrée pour 3SAT et Couverture par Sommets :
-->
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/3sat_vrai 3SAT-vrai]

# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/CS_vrai CS-vrai]
== Déroulement (2020) ==
# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/3sat_faux 3SAT-faux]

# * [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/TP3/Instances/CS_faux CS-faux]
Cours 1 (7 septembre) : Introduction
#
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S1Cours/CM1.pdf Introduction]
#-->
- Exemple de différents tris
#
- Notions d'instance et de problème
#== Déroulement (2020) ==
- Notion de complexité asymptotique
#
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S1Cours/grandO.pdf Grand-O de la notation de Landau]
#Cours 1 (7 septembre) : Introduction

# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S1Cours/CM1.pdf Introduction]

# - Exemple de différents tris
TD 1 (10 septembre) : Analyses d'algorithmes
# - Notions d'instance et de problème
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/ExoAnalyse.pdf Sujet du TD]
# - Notion de complexité asymptotique
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/rappelsLog.pdf Fonctions mathématiques de base : polynômes, exponentielles et logarithmes]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S1Cours/grandO.pdf Grand-O de la notation de Landau]

#

#
Cours 2 (17 septembre) : Algorithmes récursifs (Diviser pour régner)
#TD 1 (10 septembre) : Analyses d'algorithmes
- Présentation des algorithmes Diviser-pour-régner.
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S3Cours/fct_rec.pdf Théorème général.]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/ExoAnalyse.pdf Sujet du TD]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S3Cours/distance_min.pdf distance minimale]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/rappelsLog.pdf Fonctions mathématiques de base : polynômes, #exponentielles et logarithmes]
#

#

TD 2 (29 septembre) : Exercices d'analyse pour des algos récursifs ("Master Theorem")
#Cours 2 (17 septembre) : Algorithmes récursifs (Diviser pour régner)
# - Présentation des algorithmes Diviser-pour-régner.
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S4TD/exos_diviser_pour_regner.pdf Exercices, complexité des fonctions récursives].
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/Solution-TD_operationsEntiers.pdf Solutions des questions 6 et 7].
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S3Cours/fct_rec.pdf Théorème général.]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/Solution_Question5.pdf Solution de la question 5].
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S3Cours/distance_min.pdf distance minimale]
#

#

#TD 2 (29 septembre) : Exercices d'analyse pour des algos récursifs ("Master Theorem")
Cours 3 (2 octobre) : Programmation dynamique
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S4TD/exos_diviser_pour_regner.pdf Exercices, complexité des fonctions #récursives].
- Algorithme récursif pour les nombres de Fibonacci
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S5Cours/decoupe_barre_acompleter.py Programme python pour le problème de découpe de barres]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/Solution-TD_operationsEntiers.pdf Solutions des questions 6 et 7].
- Algorithme de [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S5Cours/Levenshtein.pdf Levenshtein]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S2TD/Solution_Question5.pdf Solution de la question 5].
#
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S6TD/Cours_ProgDyn_Fibo_Levenshtein.pdf Présentation 'tablette' vue en cours]
#

#Cours 3 (2 octobre) : Programmation dynamique

# - Algorithme récursif pour les nombres de Fibonacci
TD 3 (5 octobre) : Exercices sur la programmation dynamique
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S5Cours/decoupe_barre_acompleter.py Programme python pour le problème #de découpe de barres]

- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S6TD/exemples_pour_prog_dynamique.pdf Sujet du TD]
# - Algorithme de [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S5Cours/Levenshtein.pdf Levenshtein]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S6TD/Cours_ProgDyn_Fibo_Levenshtein.pdf Présentation 'tablette' vue en #cours]
- Si besoin, problème du sous-tableau de somme maximale.
#
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S6TD/Notes_TD_progDyn.pdf Notes lors de la correction]
#
#TD 3 (5 octobre) : Exercices sur la programmation dynamique

#
Cours 4 (13 octobre) : Premières réductions algorithmiques
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S6TD/exemples_pour_prog_dynamique.pdf Sujet du TD]
- Un liste de réductions algorithmiques entre différents problèmes
# - Si besoin, problème du sous-tableau de somme maximale.
- [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/S6TD/Notes_TD_progDyn.pdf Notes lors de la correction]
<!-- Réductions de NP-complétude
#
!-- - Problèmes NP-difficiles et NP-complets.
#
- Théorème de Cook-Levin. [https://mycore.core-cloud.net/index.php/s/V9OUMtvnDuezpKl Cook-Levin]
#Cours 4 (13 octobre) : Premières réductions algorithmiques
- Preuve de NP-Complétude. !-- : Couverture des arêtes et k-coloriage. --
# - 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]
<!-- Complexité des problèmes
#<!-- Réductions de NP-complétude
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/presentation1.0.pdf Introduction aux classes de complexité.]
#!-- - Problèmes NP-difficiles et NP-complets.
!-- - Complexité d'un problème.
# - Théorème de Cook-Levin. [https://mycore.core-cloud.net/index.php/s/V9OUMtvnDuezpKl Cook-Levin]
- Classe P.
# - Preuve de NP-Complétude. !-- : Couverture des arêtes et k-coloriage. --
!-- - Types de problèmes ( décision, optimisation, existence ). --
#-->
- Réduction polynomiale.
#<!-- Complexité des problèmes
- Algorithme de vérification.
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/presentation1.0.pdf Introduction aux classes de complexité.]
- Classe NP.
#!-- - Complexité d'un problème.
-->
# - Classe P.
TD 4 (14 octobre) : Clique et consorts
#!-- - Types de problèmes ( décision, optimisation, existence ). --
- [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]
# - Réduction polynomiale.
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S8Cours/ProblemeSAT.pdf Notes sur le problème SAT]
# - Algorithme de vérification.
<!-- Programmation dynamique
# - Classe NP.
- [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.]
#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/ProblemeSAT.pdf Notes sur le problème SAT]
Cours 5 (23 octobre, matin) : Classes de complexité et NP-complétude
#<!-- Programmation dynamique
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S9Cours/IntroNPcompletude.pdf Petite introduction en survol de la NP-complétude]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S9Cours/INFO704-Classes_de_complexite.pdf Notes de cours sur les classes de complexité]
# - [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/S9Cours/VraiFaux-NP-completude.pdf Petit Vrai/Faux sur la NP-complétude]
# - [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/S9Cours/Levin-Cook.pdf 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]
#

TD 5 (23 octobre, après-midi) : Classes de complexité et NP-complétude
#Cours 5 (23 octobre, matin) : Classes de complexité et NP-complétude
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S10TD/Enonce_TD.pdf Énoncé du TD]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S9Cours/IntroNPcompletude.pdf Petite introduction en survol de la NP-#complétude]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S10TD/INFO704-Probleme_sac_a_dos.pdf Problème du sac à dos]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S9Cours/INFO704-Classes_de_complexite.pdf Notes de cours sur les classes #de complexité]
- [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S10TD/Corrige_exercice3.pdf Corrigé de l'exercice 3 du TD]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S9Cours/VraiFaux-NP-completude.pdf Petit Vrai/Faux sur la NP-complétude]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S9Cours/Levin-Cook.pdf 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]

#

#TD 5 (23 octobre, après-midi) : Classes de complexité et NP-complétude
== Annales Examen ==
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S10TD/Enonce_TD.pdf Énoncé du TD]

[https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/Examen/examen.pdf Examen 2017]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S10TD/INFO704-Probleme_sac_a_dos.pdf Problème du sac à dos]
# - [https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/S10TD/Corrige_exercice3.pdf Corrigé de l'exercice 3 du TD]

#
== Historique ==
#
Ce cours était donné précédemment par Xavier Provençal.
#== Annales Examen ==
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].
#
#[https://www.lama.univ-savoie.fr/pagesmembres/tavenas/info704/Examen/examen.pdf Examen 2017]
#
#== Historique ==
#Ce cours était donné précédemment par Xavier Provençal.
#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:14

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.