V. Complexité  Exemples pour démarrer (tri insertion, tri fusion)

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
Tris.
Licence pro MPCQ : Cours
Distance inter-locuteur
Algorithmes et structures de données avancés
Fonctions & procédures
Calculs de complexité d'algorithmes
LE CALCUL LITTÉRAL AU COLLÈGE
Les numéros
Les identités remarquables
1 Introduction 1 - Equations de Maxwell dans le vide 2 - Equations de propagation du champ électromagnétique dans le vide 2 - Equations de propagation.
Chapitre II.Rappels mathématiques et complexité
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Les structures de données arborescentes
Cours de physique générale I Ph 11
ASI 3 Méthodes numériques pour l’ingénieur
Sémantique axiomatique
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
1.2 COMPOSANTES DES VECTEURS
Titre : Implémentation des éléments finis sous Matlab
1 Journée de regroupement des correspondants "Egalité et genre" - 21 novembre 2011 Rectorat de Rouen - SAIO - CD-HD Résultats scolaires, appréciations.
Tableaux de distributions
Tableaux de distributions
LES NOMBRES PREMIERS ET COMPOSÉS
Les points importants des chapitres 1 et 2. Ce quil faut retenir Les 2 conception du pgcd() (méthode force brute et diminuer pour régner) Définition de.
1 INETOP
Calculs et écritures fractionnaires
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
La Distribution des Données
1.1 LES VECTEURS GÉOMÉTRIQUES
Titre : Implémentation des éléments finis en Matlab
Les Algorithmes de Tri Introduction Tri par Sélection
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Inéquations du premier degré à une inconnue
Résoudre une équation du 1er degré à une inconnue
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Inéquations du premier degré à une inconnue
Programmation linéaire en nombres entiers : les méthodes de troncature
III. Récursivité Principe et exemples
ASI 3 Méthodes numériques pour l’ingénieur
Mise en forme en Mathématiques
Un peu de maths (et d’info)
Elaboré par M. NUTH Sothan 1. 2 Soit x, y et z des coordonnées cartésiennes à 3 dimension. G un ensemble de points dans le plan (u, v). Déf. : On appelle.
Introduction à l’algorithmique et aux structures de données
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
chapitre -1- OPERATIONS [B] REGLES DE PRIORITE (f n°103) lundi 15 septembre 2014  rappels de 6°  du nouveau en 5°  applications  exercices  Page.
Equation différentielle de 2ème ordre
ASI 3 Méthodes numériques pour l’ingénieur
Suites numériques Définitions.
Exercice de vérification 1 p
Inéquations du premier degré à une inconnue
ITI1520 Lab #8: Récursivité Gilbert Arbez, Mohamad Eid, Daniel Amyot, Sylvia Boyd, Diana Inkpen et Alan Williams.
Partie II: Temps et évolution Energie et mouvements des particules
Multiprécision.
III. Récursivité Principe et exemples
Transcription de la présentation:

V. Complexité  Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas Autres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude

Complexité algorithmique Rappel de l’équifinalité 1 problème, plusieurs algorithmes (façons de le résoudre) Equivalence fonctionnelle… … mais différence en termes de performance Temps de réalisation Nombre et durée des opérations de production de la solution  Complexité temporelle Ressources mobilisées Nombre et taille des variables et SDD (résultats intermédiaires)  Complexité spatiale Complexité Principe

Analyse algorithmique Besoin de pouvoir Connaître a priori les performances d’un algorithme En fonction de la taille (et de la nature) de l’entrée  Analyse algorithmique But : évaluer la complexité d’un algorithme Moyen Méthodes et techniques de mathématiques Dénombrement, comportements asymptotiques, récurrences, … Le premier à systématiser la démarche Don Knuth dans TAOCP Dans la suite du chapitre Focalisation sur l’analyse de la complexité temporelle Transposable sans difficulté à l’analyse de la complexité spatiale Complexité Evaluation

Tri par insertion But Principe Trier en ordre croissant un tableau A d’entiers Principe On positionne le 2nd élément par rapport au 1er Puis on positionne le 3ème par rapport aux 2 premiers Et ainsi de suite… Complexité Evaluation Exemple 1

Algorithme Complexité Evaluation Exemple 1

Temps d’exécution Temps d’exécution de l’algorithme Somme sur l’ensembles des instructions i élémentaires Du temps constant ai pour l’instruction Multiplié par Le nombre ki de répétitions de cette instruction Qui va naturellement dépendre de la taille n de l’entrée Ici la taille du tableau à trier Mais aussi de la nature de l’entrée Est-il déjà, au moins partiellement, trié ? Complexité Evaluation Exemple 1

Application au cas Instruction indexée d’après le numéro de ligne  Instructions 2, 3, 4, 5, 6, 7, 9 Par exemple L’affectation j  i – 1 Prend un temps constant a4 Est répétée k4 = n – 1 fois L’évaluation de l’expression j > 0 et A[j] > e Prend un temps constant a5 Elle est répétée un nombre de fois qui varie suivant i 1 ≤ k5(i) ≤ i Notons ti = k5(i) Complexité Evaluation Exemple 1

Bilan Bilan Impact de la nature de l’entrée Si le tableau est déjà trié (meilleur des cas) Si le tableau est trié en ordre inverse (pire des cas) Cas général Complexité Evaluation Exemple 1

Meilleur et pire des cas Si le tableau est déjà trié (meilleur des cas) Le temps d’exécution est asymptotiquement proportionnel à n  Complexité linéaire Si le tableau est trié en ordre inverse (pire des cas) Le temps d’exécution est asymptotiquement proportionnel à n²  Complexité quadratique Complexité Evaluation Exemple 1

Le pire des cas fait référence Cas moyen Même ordre de grandeur que le pire des cas Pire des cas borne supérieure quelque soit l’entrée Pas de mauvaise surprise  On s’intéresse surtout au pire des cas  On s’intéresse surtout à l’ordre de grandeur Constantes et termes non dominants peu significatif Le tri par insertion est de complexité quadratique dans le pire des cas, ce que l’on note Complexité Evaluation Exemple 1

Tri-fusion But Stratégie Trier en ordre croissant un tableau A d’entiers Stratégie Paradigme « diviser pour régner » Descente Divisions successives du tableau en parties Remontée Fusion des parties triée (Procédure auxiliaire Fusionner en ) Terminaison de la descente récursive Une partie à un seul élément est naturellement triée Complexité Evaluation Exemple 2

Algorithme Complexité Evaluation Exemple 2

Temps d’exécution Temps d’exécution de l’algorithme On distingue T(n) : temps d’exécution sur une entrée de taille n D(n) : temps passé à diviser le problème en a sous-problèmes de taille n/b (la plupart du temps a = b) S(n) : temps passé à synthétiser la solution À partir des solutions aux sous-problèmes Il existe un seuil ε : n < ε  T(n) constant Traduction formelle : Complexité Evaluation Exemple 2

Application au cas D(n) : division du tableau en deux parties : S(n) : Procédure fusion : n < 1  T(1) = Expression du temps d’exécution du tri-fusion Cette récurrence se résout en En attendant de savoir le démontrer : … Complexité Evaluation Exemple 2

Application au cas Montrer par induction que : Complexité Evaluation Exemple 2

Comparaison Le tri-fusion est, dans le pire des cas, bien plus performant que le tri par insertion n = 109 Machine qui effectue 109 opérations par seconde Tri par insertion : ~30 ans Tri-fusion : ~30 secondes Complexité Evaluation Exemple 2

V. Complexité Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées  Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas Autres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude

Borne approchée Définition formelle de Si alors on dit que est une borne approchée asymptotiquement pour est une classe d’équivalence doit être asymptotiquement positive Complexité Nota. Asympt. Borne approchée

Borne approchée Exercice On note abusivement pour Soit une fonction polynomiale Montrer que Indice On note abusivement pour Si vous vous demandiez encore en L1 à quoi peut bien vous servir concrètement l’analyse en informatique, vous avez là un début de réponse Complexité Nota. Asympt. Borne approchée

Borne supérieure Définition formelle Si alors on dit que est une borne asymptotique supérieure pour est une classe d’équivalence La borne peut être asymptotiquement approchée Complexité Nota. Asympt. Borne supérieure

Borne inférieure Définition formelle Si alors on dit que est une borne asymptotique inférieure pour est une classe d’équivalence Complexité Nota. Asympt. Borne inférieure

Borne strictement supérieure Définition formelle Si alors on dit que est asymptotiquement négligeable devant Classe usuelle en analyse (développements limités) Complexité Nota. Asympt. Borne >

Borne strictement inférieure Définition formelle Si alors on dit que est asymptotiquement négligeable devant Complexité Nota. Asympt. Borne <

Illustrations Classes d’équivalence, i.e. Relation d’équivalence Transitivité Réflexivité Symétrie Valable pour les 5 notations Complexité Nota. Asympt. Exemples, propriétés

V. Complexité Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth)  Récurrences T(n) = aT(n/b) + f(n) et études cas Autres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude

Problématique Algorithmes conçus cf. diviser pour régner Ne conduisent pas directement à T(n) en fonction de n Mais à une récurrence, i.e. T(n) en fonction de T(n – 1) Rappel pour tri-fusion Comment établir que ? Complexité Récurrences Problématique

3 méthodes de résolution Des récurrences de la forme 1. Inductive On connait l’expression fonction de n a priori (conject.) On utilise un argument de récurrence 2. Itérative On transforme la récurrence en sommations que l’on peut ensuite borner (pour les fans de Faulhaber) 3. Méthode (quasi) générale de résolution Un théorème à appréhender en profondeur Trois cas à envisager en pratique Reste quelques cas irrésolubles (avec cette méthode) Complexité Récurrences Méthodes

Méthode générale Soit deux constantes a ≥ 1 et b ≥ 1, une fonction f(n) définie pour les entiers positifs par la récurrence Alors T(n) peut être borné asymptotiquement comme suit : 1. 2. 3. Récurrences Méth. générale Théorème

Interprétation Comparaison asymptotique de f(n) et Si l’une des deux domine l’autre (cas 1 et 3) Elle fixe la complexité de T(n) Cas 1 : Cas 3 : Sinon (cas 2), si elle sont équivalentes La complexité de T(n) est leur complexité fois ln n Cas 2 : Mais attention aux conditions !!  Certains cas ne peuvent être résolus Récurrences Méth. générale Intuitivement

Exemples d’application Tri-fusion Karatsuba Récurrences Méth. générale Exemples

Exemple d’application 1 est naturellement dominée par Formellement : Le cas 1 s’applique et par conséquent : Récurrences Méth. générale Exemple 1

Exemple d’application 2 est du même ordre que Formellement : Le cas 2 s’applique et par conséquent : Récurrences Méth. générale Exemple 2

Exemple d’application 3 domine : Pour : Le cas 3 s’applique et par conséquent : Récurrences Méth. générale Exemple 3

Exemple d’application 4 domine : On pourrait s’attendre à pouvoir appliquer le cas 3 Mais : Donc, pour tout , Par conséquent, le théorème ne peut s’appliquer Récurrences Méth. générale Exemple 3

Application au tri-fusion est du même ordre que Formellement : Le cas 2 s’applique et par conséquent : Récurrences Méth. générale Tri-fusion

Application à Karatsuba Multiplication de deux nombres en numération de position Nombres de 2n chiffres Décomposition en deux moitiés Représentation algébrique de la multiplication naïve Les multiplications sont plus coûteuses que les additions Version naïve : 4 multiplications intermédiaires Forme équivalente de Karatsuba Complexification Mémorisation et réutilisation de résultats intermédiaires Ajout de 3 opérations additives supplémentaires On tombe à 3 multiplications ! Application récursive du procédé : O(n2)  O(n1,58) Récurrences Méth. générale Karatsuba

Application à Karatsuba est dominée d’un exposant 0,58 par Formellement : Le cas 1 s’applique et par conséquent : Récurrences Méth. générale Karatsuba

V. Complexité Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas  Autres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude

Complexité de l’algorithme d’Euclide Quelle complexité ? Réponse au + 5 fois le nombre de chiffre en base 10 du plus petit de a et b. Pas facile d’appliquer ce qui a été vu plus haut Nous allons démontrer le théorème de Lamé Les nombres de Fibonacci s’invitent dans la partie Au tableau, avec la participation des volontaires NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Complexité de l’algorithme d’Euclide Temps d’exécution T(n) de l’algorithme d’Euclide Grosso modo le nombre k d’appels récursifs Premier point : soit le PGCD(a, b) On force la convention a > b ≥ 0 Raisonnable Si b > a ≥ 0 alors un seul appel récursif supplémentaire a mod b = a et donc le 1er appel récursif est PGCD(b, a) Si a = b ≥ 0 alors un seul appel récursif a mod b = 0 et donc le 1er appel PGCD(b, 0) retourne b Si cet ordre est vérifié pour un appel récursif Elle sera alors vérifiée pour tous les appels suivants NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Fibonacci (Léonard de Pise, dit) Suite de Fibonacci Suite de nombres entiers Etude de la reproduction des lapins Interviennent dans la nature vivante Définition Premiers termes : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Propriétés de la suite de Fibonacci Strictement croissante à partir du rang 2 Reliée au nombre d’or (phi) D’où NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Lemme Si a > b ≥ 0 et si PGCD(a, b) effectue k appels récursifs alors et Preuve par récurrence P(1) : Supposons P(k) Soit a > b ≥ 0 tq PGCD(a, b) effectue k + 1 appels récursifs Alors PGCD(a, b) appelle PGCD(b, a mod b) qui effectue k appels récursifs et donc, d’après P(k) : et Or, de Il vient Et donc , soit P(k + 1) NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Théorème de Lamé Si a > b ≥ 0 et si alors PGCD(a, b) effectue moins de k appels récursifs Preuve : contraposée du lemme Propriété : la borne de Lamé est optimale Preuve : elle peut être atteinte Cas où a et b sont deux nombres de Fibonacci successifs un seul appel récursif Soit k ≥ 2, on vérifie aisément que Par conséquent appelle C’est-à-dire que effectue k – 1 appels récursifs NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Conséquences Borne de Lamé : La règle empirique : La complexité de l’algorithme d’Euclide est linéaire par rapport à la longueur de son plus petit opérande La règle empirique : D’où la règle empirique bien connue : Le nombre d’appels récursifs de l’algorithme d’Euclide est au + 5 fois le nombre de chiffre en base 10 du plus petit de a et b Exemple : PGCD(144, 89) : 10 appels NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

Complexité de l’expon. rapide Voir corrigé du DE L2 2015, exo 6 En tirer un argument pour affirmer la complexité en log2 n Corrigé détaillé dans « Exercices et problèmes d’algorithmique numérique » p 191 NDLR : Euclide était un martien Complexité Cas spéciaux Euclide

V. Complexité Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas Autres cas Euclide Exponentiation rapide  Classes de complexité, NP-Complétude

NP-complétude De quoi est-il question ? Exemples de problèmes NP-complets Le problème ouvert : P = NP ? Consultation de la littérature pour les plus motivés Complexité Classes NP-Complétude