Notes cours-Nantes
Table des matières
1 Algorithmes et complexité 9
1.1 Complexité des algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Choix entre deux algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Complexité pratique et complexité théorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Calcul de coûts théorique et pratique 13
2.1 Temps d’exécution - Taille des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Temps d’exécution théorique et pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Temps d’exécution en fonction de la taille des données . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Calcul pratique de la complexité : temps d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Les opérations dont dépend le coût . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Hypothèse du coût uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Principales règles de comptabilisation des opérations fondamentales . . . . . . . . . . . . . . . . 16
2.2.4 Taille des données et forme des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Temps d’exécution en fonction de la forme des données . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Méthode de recherche d’algorithmes efficaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Diviser pour règner (Divide and conquer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Equilibrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.3 Les compromis espace-temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Outils mathématiques 21
3.1 Estimation asymptotique - Ordre de grandeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1 Echelle de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.2 Séries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.3 Divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Problèmes - Calculabilité 25
4.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Algorithmes efficaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Décidables et indécidables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4 Problèmes et Langages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3