suivant :
1. Complexité des algorithmes
remonter :
Algorithmique
précédent :
Algorithmique
Table des matières
1. Complexité des algorithmes
1.1 Borne asymptotique supérieure
1.2 Mesure de temps d'exécution
1.2.1 Algorithmes en temps constant,
1.2.2 Algorithmes de complexité linéaire,
1.2.3 Algorithmes de complexité logarithmique,
1.2.4 Algorithmes de complexité quadratique
1.2.5 Algorithmes de complexité
1.2.6 Algorithmes de complexité exponentielle
1.2.7 Algorithmes de complexité polynomiale
,
fixé
2. Algorithmes itératifs
2.1 Invariants de boucle
2.1.1 Le principe
2.1.2 Exemple
2.2 Terminaison
2.2.1 Le principe
2.2.2 Fin de l'exemple
2.2.3 Un autre exemple
2.3 Complexité
3. Récursivité
3.1 Sous-programmes récursifs
3.1.1 Factorielle
3.2 Sous-programmes récursifs terminaux
3.2.1 Factorielle
3.2.2 Exponentiation
3.2.3 Itérateurs
3.3 Listes chaînées
3.3.1 Notations et conventions
3.3.2 Rédaction
3.4 Exemple de calcul de complexité d'un algorithme récursif
3.4.1 L'algorithme
3.4.2 Résolution exacte
3.4.3 Vérification par récurrence
3.5 Problèmes
3.6 L'heure du code
4. Arbres
4.1 Définitions par induction
4.1.1 Définition
4.1.2 Exemple
4.1.3 Expressions arithmétiques
4.1.4 Application aux arbres binaires
4.2 Preuves par induction
4.2.1 Lien avec les preuves par récurrence
4.2.2 Application aux EATPs
4.3 Algorithmique dans les arbres
4.4 Arbres
-naires
5. Files de priorité
5.1 Implémentations naïves
5.2 Tas
5.2.1 Définition
5.2.2 Extraction du minumum
5.2.3 Insertion
5.2.4 Suppression du minimum
5.2.5 Implémentation
5.3 Tas binomial
5.3.1 Arbre binomial
5.3.2 Fusion
5.3.3 Tas binomial
5.3.4 Implémentation
5.3.5 Extraction du minimum
5.3.6 Fusion
6. Hachage
6.1 Principe
6.2 Collisions
6.2.1 Gestion des collisions par chaînage
6.2.2 Gestion des collisions par adressage ouvert
7. AVL
7.1 Arbres binaires de recherche
7.2 Complexité dans le pire de cas
7.3 Rotations
7.4 AVLs
7.4.1 Rééquilibrage
7.4.2 Insertion
7.4.3 Suppression
7.4.4 Compléments
8. Modélisation
8.1 Définition
8.2 Exemple
8.2.1 Données
8.2.2 Contraintes
8.2.3 Question
8.3 Sensibilisation à la complexité
8.3.1 Le tour de la table
8.3.2 De la terre à la Lune
8.3.3 En bref
8.4 Terminologie
8.4.1 Difficulté
8.4.2 Rappels de théorie des graphes
8.4.3 Définition d'un problème
8.4.4 Problèmes d'optimisation
8.5 Problèmethèque
8.5.1 Arbre couvrant de poids minimal
8.5.2 Ensemble stable maximal
8.5.3 Circuit eulérien
8.5.4 Circuit hamiltonien
8.5.5 Voyageur de commerce
8.5.6 SAT
8.5.7 Couverture
8.5.8 Coloration
8.5.9 Plus court chemin
8.5.10 Sac à dos
8.6 Exercices
9. Programmation linéaire
9.1 Exemple
9.2 Algorithme du simplexe en bref
9.3 Modéliser un programme linéaire
9.4 GLPK
9.4.1 Qu'est-ce que c'est ?
9.4.2 Où le trouver ?
9.4.3 La documentation
9.4.4 Les fonctions
10. Théorie de la complexité
10.1 Terminologie et rappels
10.1.1 Problèmes de décision
10.1.2 Instances
10.1.3 Algorithme polynomial
10.2 Les classes P et NP
10.2.1 La classe P
10.2.2 La classe NP
10.2.3 Relations d'inclusion
10.3 Réductions polynomiales
10.3.1 Définition
10.3.2 Exemple
10.3.3 Application
10.4 Les problèmes NP-complets
10.4.1 Courte méditation
10.4.2 3-SAT
10.4.3 Conséquences déprimantes
10.4.4 Un espoir vain
11. Introduction à la cryptographie
11.1 Définitions
11.2 La stéganographie
11.3 Les chiffres symétriques sans clé
11.4 Les chiffres symétriques à clé
11.4.1 Le chiffre de Vigenère
11.4.2 Enigma
11.5 Les algorithmes asymétriques
11.5.1 Un peu d'histoire[1]
11.5.2 Le principe
11.5.3 Programmation en C
12. GnuPG
12.1 Présentation
12.2 Utilisation
12.2.1 Génération d'une clé privée
12.2.2 Exportation de la clé publique
12.2.3 Importation
12.2.4 Liste des clés
12.2.5 Chiffrement
12.2.6 Déchiffrement
12.2.7 Signature
12.2.8 Bref
13. GMP
13.1 Présentation
13.2 Quelques points délicats
13.2.1 Compilation
13.2.2 Initialisation
13.2.3 Les fonctions
13.2.4 Affichage
13.2.5 Exemple
13.2.6 Pour terminer
13.2.7 Vigenere
14. Arithmétique
14.1 Divisibilité
14.2 Division euclidienne
14.3
14.4 Nombres premiers
14.5 Nombres premiers entre eux
14.6 Décomposition en produit de facteurs premiers
14.6.1 Application à la divisibilité
14.6.2 Application au calcul du PGCD
14.7 Théorème de Bezout
14.7.1 Théorème de Gauss
14.8 Algorithme d'Euclide
14.8.1 Algorithme d'Euclide pour le PGCD
14.8.2 Algorithme d'Euclide étendu (avec tableau)
14.8.3 Algorithme d'Euclide étendu (sans tableau)
14.9 Exercices
14.9.1 Morceaux choisis
14.9.2 Programmation en C
14.9.3 Applications avec GMP
15. Arithmétique modulaire
15.1 Congruences
15.2 Espace quotient
15.2.1 Opposé d'un élément de
15.2.2 Inverse d'un élément de
15.2.3 Eléments inversibles et fonction
d'Euler
15.3 Pratique de l'inversion
15.3.1 Petit théorème de Fermat
15.3.2 Théorème d'Euler
16. RSA
16.1 Principe
16.1.1 Chiffrement
16.1.2 Déchiffrement
16.2 Résistance aux attaques
16.3 Applications directes du cours
16.4 Exercices
A. Corrigés des programmes
A.1 Fonctions récursives
A.2 Fonctions récursives terminales
A.3 Itérateurs et applications
A.4 Tours de Hanoï
A.5 Suite de Fibonacci
A.6 Pgcd
A.7 Pavage avec des L
A.8 Complexes
A.9 Listes chaînées
A.10 Tri fusion
A.11 Tri par insertion
A.12 Transformée de Fourier
A.13 Polynômes
A.14 Arbres binaires et
-aires
A.15 Arbres syntaxiques
A.16 Tas binomiaux
A.17 AVL
A.18 Knapsack par recherche exhaustive
A.19 Prise en main de GLPK
A.20 Le plus beau métier du monde
A.21 Vigenere
A.22 Changement de base
A.23 Prise en main de GMP
A.24 Vigenere
A.25 Algorithme d'Euclide étendu sous forme de tableau
A.26 Algorithme d'Euclide étendu avec GMP
A.27 Espaces Quotients
A.28 Test de primarité
B. Rappels mathématiques
B.1 Sommations
B.1.1 Exercices
B.2 Ensembles
B.2.1 Définition
B.2.2 Opérations ensemblistes
B.2.3 Cardinal
B.2.4
-uplets
B.2.5 Parties
B.2.6 Définition
B.2.7 Composition
B.2.8 Classification des applications
B.2.9 Application réciproque
B.3 Raisonnements par récurrence
B.3.1 Principe
B.3.2 Exemple
B.3.3 Exercices
B.4 Analyse combinatoire
B.4.1 Factorielles
B.4.2 Arrangements
B.4.3 Combinaisons
B.4.4 Triangle de Pascal
B.4.5 Liens avec les ensembles
B.5 Exercices récapitulatifs
B.5.1 Echauffement
B.5.2 Formule de Poincaré
B.5.3 La moulinette à méninges
Bibliographie
Alexandre
2009-07-20