8inf433 algorithmique (introduction). définition informelle algorithme: procédure ou ensemble fini...
TRANSCRIPT
![Page 1: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/1.jpg)
8INF433
Algorithmique(Introduction)
![Page 2: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/2.jpg)
Définition informelle
Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème
Exemple: programme en C.
Structures de données: Méthodes permettant d'organiser de grandes quantités de données.
Il y a plusieurs algorithmes possibles pour un même problème.
![Page 3: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/3.jpg)
Exemple 1Multiplication: algorithme standard
45
× 19
------
405 (9 × 45)
+ 45 (1 × 45)
------
855
![Page 4: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/4.jpg)
Exemple 2Multiplication à la russe
45 19 1922 38 11 76 765 152 1522 3041 608 608
-------855
![Page 5: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/5.jpg)
Exemple 2 (suite) Multiplication à la russe
19 45 459 90 904 1802 3601 720 720
-------855
![Page 6: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/6.jpg)
Objectifs principaux du cours
• Apprendre certaines techniques permettant de concevoir des algorithmes efficaces
• Être en mesure d'analyser et de comparer l'efficacité de différents algorithmes.
![Page 7: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/7.jpg)
Origine
Le mot algorithme dérive du nom:
Abû Abdullah Muhammad Ibn Mûsâ Al-Khawarizmî Vers 825 après J.C. il écrit un ouvrage de mathématique où il
décrit la façon d'effectuer l'addition, la multiplication, etc.
Premier algorithme non trivial connu (295 avant J.C.):
Algorithme d'Euclide pour calculer le plus grand commun multiple de deux nombres entiers.
![Page 8: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/8.jpg)
Algorithme naïf
PGCD(m,n)
i = min(n,m) + 1
répéter
i=i-1
jusqu'à ce que i divise m et n
retourner i
![Page 9: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/9.jpg)
Algorithme d'Euclide (version moderne)
PGCD(m,n)
tant que m>0 faire
t=m
m=n mod m
n=t
retourner n
t m n15 21
15 6 156 3 63 0 3
![Page 10: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/10.jpg)
Problèmes
On est intéressé par les problèmes algorithmiques seulement:
1. Doit pouvoir se résoudre sur un ordinateur: Par exemple le problème de trouver une juste sentence pour une personne reconnu coupable d'un délit fait appel à des considérations culturelle et philosophiques et ne peut donc pas être résolu par un ordinateur.
2. L'ensemble des solutions correctes doit être non ambiguë: Par exemple la traduction d'un texte de l'anglais au français peut être réalisée par un ordinateur mais il n'est pas clair ce que l'on doit considérer comme une traduction correcte.
![Page 11: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/11.jpg)
Problèmes algorithmiques
Un problème algorithmique est défini par:
1. La description de l'ensemble des entrées possibles (chaque entrée est une séquence finie de caractères).
2. La description d'une fonction qui associe à chaque entrée un ensemble de résultats corrects (chaque résultat est aussi une séquence finie de caractères)
![Page 12: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/12.jpg)
Exemples de problèmes algorithmiques
• Multiplication (problème d'évaluation):Entrée: Deux entiers binaires x et y (de longueur arbitraire)Sortie: Le produit de x par y en binaire
• Test de primalité (problème de décision):Entrée: Un entier binaire positif nSortie: 1 si n est premier, 0 sinon.
• Problème du plus court chemin (problème d'optimisation):Entrée: Un graphe pondéré, donné sous la forme d'une matrice
d'adjacence, ainsi que deux noeuds particuliers s et tSortie: Une suite de noeuds représentant un plus court chemin du
noeud s au noeud t
![Page 13: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/13.jpg)
Le choix de l'algorithme
L'analyse d'un algorithme se fait selon les critères suivants:
1. Rectitude
2. Complexité (temps d'exécution, espace mémoire, etc.)
3. Facilité de maintenance
Nous nous intéresserons principalement au deux premiers critères.
![Page 14: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/14.jpg)
Quelques problèmes étudiés dans ce cours (1)
Problèmes de nature mathématique:– Plus grand commun diviseur
– test de primalité
– multiplication
– exponentiation
– factorisation
– multiplication matricielle
Grande utilité en cryptologie (commerce électronique)
![Page 15: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/15.jpg)
Cryptologie à clef publique (RSA)
1) Choisir 2 grands nombres premiers p et q2) Calculer n=pq3) Calculer m=(p-1)(q-1)4) Trouver e et d tels que ed mod m = 1
Clef privée: (d, n)Clef publique: (e, n)
![Page 16: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/16.jpg)
Comment Alice et Bernard utilisent RSA
Bernard encodeson message Mavec cette clef:C=Me (mod n)
Bernard cherchela clef publiqued’Alice (e, n)dans un annuaire.
Alice reçoit C et utilise sa clef privée (d, n) pour le décrypter :M= Cd (mod n)
![Page 17: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/17.jpg)
Quelques problèmes étudiés dans ce cours (2)
Problèmes de graphes:– Plus court chemin
– Arbre couvrant
– Problème du commis voyageur
– Coloration de graphes
– Parcours de graphes
Utilité dans plusieurs domaines (jeux, réseaux, etc.)
![Page 18: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/18.jpg)
Quelques problèmes étudiés dans ce cours (3)
Traitement de séquences de caractères:– Plus longue sous-séquence commune
– Mise en forme de textes
– Recherche de chaînes de caractères
– Compression de texte
Applications en bio-informatique, base de données, traitement de texte.
![Page 19: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/19.jpg)
Quelques problèmes étudiés dans ce cours (4)
Géométrie algorithmique:– Déterminer si deux segments de droite se coupent
– Recherche de l'enveloppe convexe
– Recherche des points les plus rapprochés
Application en infographie.
![Page 20: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/20.jpg)
Techniques de conception d'algorithmes (1)
Algorithmes voraces (ou gloutons): Méthode itérative utilisée pour résoudre des problèmes d'optimisation.
Exemples d'applications: – Chemin le plus court dans un graphe
– Arbre couvrant minimal
– Compression de texte
– Souvent utilisé pour trouver une solution initiale afin résoudre un problème d'optimisation (e.g. branch and bound)
![Page 21: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/21.jpg)
Techniques de conception d'algorithmes (2)
Algorithmes diviser-pour-régner: Approche récursive: On divise le problème en plusieurs sous problèmes et on combine les résultats pour obtenir la solution globale.
Exemples d'applications: – Tri par fusion– Quicksort– Multiplication de grand entiers– Exponentiation– Trouver les points les plus rapprochés
![Page 22: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/22.jpg)
Techniques de conception d'algorithmes (3)
Programmation dynamique: Utilisé lorsqu'une solution récursive est inefficace parce que beaucoup d'appels identiques sont effectués
Exemples d'applications: – Calcul des nombres de Fibonacci
– Formatage de texte en paragraphe
– Produit de plusieurs matrices
– Plus longue sous séquence commune
![Page 23: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/23.jpg)
Techniques de conception d'algorithmes (4)
Algorithmes probabilistes: L'algorithme a accès à un générateur de bits aléatoires.
Deux principaux types:1. Faible probabilité que le temps d'exécution soit long.2. Faible probabilité de ne pas trouver la bonne réponse.
Exemples d'applications: – Test de primalité– Factorisation– Approximation de problèmes complexes– Hachage universel
![Page 24: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/24.jpg)
Techniques de conception d'algorithmes (5)
Algorithmes parallèles: L'algorithme peut utiliser plusieurs processeurs pour accélérer les calculs.
Exemples d'applications: – Multiplication matricielle– Tri par fusion
![Page 25: 8INF433 Algorithmique (Introduction). Définition informelle Algorithme: Procédure ou ensemble fini de règles permettant de résoudre un problème Exemple:](https://reader035.vdocuments.mx/reader035/viewer/2022062622/551d9db8497959293b8dc862/html5/thumbnails/25.jpg)
Outils mathématiques
• Notation asymptotique: Pour comparer et analyser les algorithmes indépendamment de la machine ou du langage
• Résolution de récurrence: Pour analyser l'efficacité des algorithmes récursifs
• Éléments de base de la théorie des probabilité: Pour analyser les algorithmes probabilistes.