0% ont trouvé ce document utile (0 vote)
7 vues4 pages

Complexité et Performance des Algorithmes

Transféré par

Abdelaziz Sekraf
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues4 pages

Complexité et Performance des Algorithmes

Transféré par

Abdelaziz Sekraf
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Table des matières

Objectifs de cours .......................................................................................................................... 1


Chapitre 1. Théorie de la complexité et mesure de performance .................................... 3
Partie 1. Théorie de la complexité et mesure de performance ...................................... 4
1. Généralités .............................................................................................................................. 4
1.1. Quelques problèmes algorithmiques classiques ............................................... 6
1.2. Qualités d’un bon algorithme ................................................................................ 7
2. Analyse et notions de complexité ..................................................................................... 7
2.1. Critères d’évaluation de performance de l’algorithme ......................................... 8
2.1.1. Calcul de nombre d’opérations ....................................................................... 8
2.1.2. Mesure d’espace mémoire ................................................................................ 8
2.2. Coût d’un algorithme ................................................................................................... 9
2.3. Complexité d’un algorithme ....................................................................................... 9
2.4. Complexité d’un problème ....................................................................................... 10
2.5. Comment calculer la complexité d'un algorithme? ............................................. 10
2.6. Type de complexité ..................................................................................................... 11
2.6.1. Complexités temporelle et spatiale d’un algorithme ............................... 11
2.6.2. Complexités pratique et théorique ............................................................... 11
2.6. Notion d’optimalité .................................................................................................... 12
Partie 2. Classes et complexité d'un problème ................................................................... 13
1. Complexité d'un problème, Présentation et définitions ...........................................13
2. Trois méthodes pour trouver une borne inférieure ...................................................14
2.1. Les méthodes dites d’oracle ou d’adversaire.......................................................14
2.2. Les méthodes dites d’oracle ou d’adversaire ......................................................14
2.3. Les Réductions .........................................................................................................14
3. Classes de complexité d'un problème..........................................................................14
3.1. Classes de complexité en temps ............................................................................14
3.1.1. Classe P .............................................................................................................15
3.1.2. NP.......................................................................................................................15
3.1.3. EXPTIME ..........................................................................................................15
3.2. Classes de complexité en espace............................................................................16
4. NP-complétude................................................................................................................17
5. Réduction d’un problème Q à un problème Π ............................................................. 17
Chapitre 2. Evaluation des algorithmes récursifs, Grandeur des fonctions et la
Complexité Asymptotique ........................................................................................................ 19
1. Structures de données........................................................................................................ 19
2. Qu’est ce que la récursivité ? ............................................................................................ 19
3. Types de récursivité ........................................................................................................... 20

I
4. Critères de terminaison pour un bon algorithme récursif ......................................... 21
5. Comment gérer la récursivité ?......................................................................................... 21
5.1. Gestion de la récursivité sans la pile : Récursivité Terminale (RT) ................ 22
5.2. Gestion de la récursivité avec la pile : Récursivité Enveloppée (RE) ............. 22
6. Optimisation d’exécution de la récursivité ................................................................... 22
6.1. Comparaison d’algorithmes ................................................................................... 23
7. C’est quoi les notions de Landau ? ................................................................................. 25
7.1. Classes de complexité .............................................................................................. 25
7.2. Notations asymptotique .......................................................................................... 26
7.2.1. Domination asymptotique ............................................................................ 26
7.2.2. Notation Ω ........................................................................................................ 26
7.2.3. Equivalence asymptotique ............................................................................ 27
7.3. Calcul de complexité asymptotique ...................................................................... 27
Chapitre 3. Calcul de complexité des algorithmes itératifs et récursifs ........................... 30
1. Coût uniforme et coût logarithmique ............................................................................. 30
1.1. A propos de la notation O...................................................................................30
2. Calcul de complexité des algorithmes itératifs ............................................................. 31
3. Calcul de complexité des algorithmes récursifs ........................................................... 32
3.1. Master théorème et Équations de récurrences ..................................................... 33
Chapitre 4. La stratégie Diviser pour Régner (Divide&Conquer) .................................... 35
1. Méthode Diviser pour Régner ......................................................................................... 35
2. Diviser pour Régner : tri fusion ....................................................................................... 36
3. Diviser pour Régner : produit de deux matrices ......................................................... 39
4. L’élément majoritaire et la dichotomie........................................................................... 42
Chapitre 5. Algorithmes de tri et de recherche ....................................................................... 46
1. Présentation des différentes méthodes de tri ................................................................ 46
1.1. Algorithme de Tri naïfs (tri par sélection) .......................................................... 47
1.2. Algorithme de Tri Fusion (Merge Sort)............................................................... 48
1.3. Le tri rapide (quicksort) ......................................................................................... 50
1.4. Le tri par Tas (Heapsort) ....................................................................................... 52
2. Présentation des différentes méthodes de recherche .................................................. 55
2.1. Recherche séquentielle : recherche dans un tableau non trié ......................... 55
2.2. Recherche séquentielle : recherche dans un tableau trié ................................. 56
2.3. Recherche dichotomique ........................................................................................ 56
Chapitre 6. Exploration des graphes et algorithme des arbres .......................................... 58
1. Structures de données pour les graphes .......................................................................... 58
2. Parcours de graphe ............................................................................................................... 59
2.1. Parcours en largeur ................................................................................................ 59
2.2. Parcours en profondeur ........................................................................................ 59
3. Backtracking (retour sur trace) ........................................................................................... 60
3.1.1. Application du backtracking dans les arbres de jeux..................................... 60
[Link]. Principe de MIN-MAX ............................................................................. 61

II
4. Algorithmes des arbres recouvrant optimaux ..............................................................64
Chapitre 7. Méthodes heuristiques d’optimisation .............................................................. 68
1.1. Définition d’optimisation...................................................................................... 68
1.2. Problème d’optimisation ....................................................................................... 68
1.3. Optimisation combinatoire ................................................................................. 69
1.3.1. Méthodes exactes, Branch and bound............................................................ 69
1.3.2. Méthodes approchées: Algorithme Glouton ...................................................... 70
1.3.2. Quelques Méthodes heuristiques ...................................................................... 72
[Link]. Définitions ................................................................................................... 72
[Link]. Algorithme Recherche Locale ................................................................. 74
[Link]. Algorithme A* ............................................................................................ 75
[Link]. Algorithme Hill Climbing ....................................................................... 76

III
Table des figures

Figure 1. Calcul factorielle, f(3) ............................................................................................... 15


Figure 2. Notations asymptotique [5] .................................................................................... 20
Figure 3. Classes de complexité ............................................................................................. 21
Figure 4. La fonction Divide pour éclater la donnée ......................................................... 35
Figure 5. La stratégie Diviser pour Régner (Divide&Conquer) ...................................... 36
Figure 6. Comment Tri-Sélection trie le tableau [7, 1, 15, 8, 2] ....................................... 47
Figure 7. Exemple d’arbre ....................................................................................................... 52
Figure 8. Exemple de tas ......................................................................................................... 53
Figure 9. Implémentation par un tableau ............................................................................. 54
Figure 10. Tri dans le pire des cas ......................................................................................... 58
Figure 11. Arbre des niveaux de joue de la configuration de la figure 10 ..................... 60
Figure 12. Réduction d’un problème Q à un problème Π ............................................... 60
Figure 13. Exemple d’un placement optimal de pièces 2D .............................................. 61
Figure 14. La fonction d’optimisation .................................................................................. 61
Figure 15. Exemple de fonction d’optimisation ................................................................. 65

IV

Vous aimerez peut-être aussi