Techniques Algorithmiques et
Programmation
Cyril Gavoille
LaBRI
Laboratoire Bordelais de Recherche
en Informatique, Université de Bordeaux
gavoille@labri.fr
14 avril 2017
2
Licence 3 : Techniques Algorithmes et Programmation
Objectifs : Introduire, aux travers d’exemple de problèmes simples, diverses approches
algorithmiques, les programmer et les tester sur machines. Les approches abordées sont :
Formule directe ;
Exhaustive (Brute-Force) ;
Récursive ;
Programmation dynamique ;
Heuristique ;
Approximation ;
Diviser pour reigner (Divide-and-Conquer) ;
Gloutonne (Greedy) ;
Probabilitiste ;
Nous programmeront en Cavec un tout petit peu d’OpenGL pour plus de graphismes.
Les concepts techniques et les objets que l’on croisera seront : les algorithmes, la complexité,
les graphes, les distances, les couplages, les points du plan, les listes ordonnées, ...
Pré-requis : langage C, notions algorithmiques, notions de graphes
Références :
The Algorithm Design Manual (second edition) - Skiena - Springer 2008
Algorithm Design - Kleinberg, Tardos - Pearson Education 2006
Introduction à l’algorithmique (second edition) - Cormen, Leisersen, Rivest, Stein -
DUNOD 2001
Table des matières
1 Introduction 7
1.1 Tchisla ...................................... 7
1.2 Des problèmes indécidables ........................... 9
1.3 Rappel sur la complexité ............................ 10
1.3.1 Compter exactement ? ......................... 11
1.3.2 Pour résumer .............................. 13
1.4 Notations asymptotiques ............................ 14
1.4.1 Exemples et pièges à éviter ....................... 14
1.4.2 Complexité d’un problème ....................... 16
1.4.3 Sur l’intérêt des problèmes de décision ................ 16
2 Partition d’un entier 19
2.1 Le problème ................................... 19
2.2 Formule asymptotique ............................. 20
2.3 Récurrence .................................... 21
2.4 Programmation dynamique ........................... 24
2.5 Morale ...................................... 25
3 Voyageur de commerce 27
3.1 Le problème ................................... 27
3.2 Approche exhaustive .............................. 28
3.3 Programmation dynamique ........................... 29
3.4 Approximation ................................. 35
3.4.1 Algorithme glouton: un principe général ............... 36
3.4.2 Problème d’optimisation ........................ 36
3
4TABLE DES MATIÈRES
3.4.3 Autres heuristiques ........................... 39
3.4.4 Inapproximabilité ............................ 40
3.4.5 Cas euclidien .............................. 41
3.4.6 Une 2-approximation .......................... 41
3.4.7 Union-and-Find ............................. 43
3.4.8 Algorithme de Christofides (1976) ................... 47
4 Navigation 49
4.1 Introduction ................................... 49
4.1.1 Rappels ................................. 49
4.2 L’algorithme de Dijsktra ............................ 50
4.2.1 Propriétés ................................ 52
4.3 L’algorithme A* ................................. 53
4.3.1 Propriétés ................................ 54
4.3.2 Implémentation ............................. 55
5 Diviser pour régner 57
5.1 Introduction ................................... 57
5.2 Trouver la paire de points les plus proches .................. 59
5.2.1 Motivation ................................ 59
5.2.2 Principe de l’algorithme ........................ 60
5.2.3 L’algorithme ............................... 63
5.2.4 Complexité ............................... 64
5.2.5 Différences entre n,nlog net n2.................... 65
5.2.6 Plus vite en moyenne .......................... 66
5.3 Multiplication rapide .............................. 66
5.3.1 L’algorithme standard ......................... 66
5.3.2 Approche diviser pour régner ..................... 67
5.3.3 Karastuba ................................ 69
5.3.4 Encore plus rapide ........................... 71
5.4 Master Theorem ................................ 71
5.4.1 Exemples d’applications ........................ 72
5.4.2 Explications ............................... 73
TABLE DES MATIÈRES 5
5.5 Calcul du médian ................................ 74
5.6 Morale ...................................... 74
1 / 75 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !