Top Banner
Complexit´ e en algorithmique Gilles Aldon, J´ erˆ ome Germoni, Jean-Manuel M´ eny IREM de Lyon Mars 2012 GA, JG, JMM (IREM de Lyon) Complexit´ e Mars 2012 1 / 21
44

Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Sep 12, 2018

Download

Documents

hoangnguyet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite en algorithmique

Gilles Aldon, Jerome Germoni, Jean-Manuel Meny

IREM de Lyon

Mars 2012

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 1 / 21

Page 2: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite

Trois questions essentielles

Un algorithme a pour objectif la resolution d’un probleme.Est-ce que l’algorithme donne...

1 une reponse ? ; terminaison

2 la bonne reponse ? ; correction

3 la bonne reponse en un temps acceptable ? ; complexite

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 2 / 21

Page 3: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite

Trois questions essentielles

Un algorithme a pour objectif la resolution d’un probleme.Est-ce que l’algorithme donne...

1 une reponse ? ; terminaison

2 la bonne reponse ? ; correction

3 la bonne reponse en un temps acceptable ? ; complexite

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 2 / 21

Page 4: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite

Trois questions essentielles

Un algorithme a pour objectif la resolution d’un probleme.Est-ce que l’algorithme donne...

1 une reponse ? ; terminaison

2 la bonne reponse ? ; correction

3 la bonne reponse en un temps acceptable ? ; complexite

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 2 / 21

Page 5: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite

Trois questions essentielles

Un algorithme a pour objectif la resolution d’un probleme.Est-ce que l’algorithme donne...

1 une reponse ? ; terminaison

2 la bonne reponse ? ; correction

3 la bonne reponse en un temps acceptable ? ; complexite

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 2 / 21

Page 6: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Terminaison, correction

Terminaison

Preuve de terminaison

Mise en evidence d’un convergent, i.e. une quantite qui diminue a chaquepassage, vivant dans un ensemble bien fonde (ou il n’existe pas de suitesinfinies strictement decroissantes).

Algorithme PGCDEntree : a , b e n t i e r sS o r t i e : un e n t i e rVar iab les l o c a l e s : x , y , r

x := a ; y := b ;tant que y != 0 f a i r e

r := r e s t e de l a d i v i s i o n de x par yx := yy := r //

renvoyer x

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 3 / 21

Page 7: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Terminaison, correction

Terminaison

Preuve de terminaison

Mise en evidence d’un convergent, i.e. une quantite qui diminue a chaquepassage, vivant dans un ensemble bien fonde (ou il n’existe pas de suitesinfinies strictement decroissantes).

Algorithme PGCDEntree : a , b e n t i e r sS o r t i e : un e n t i e rVar iab les l o c a l e s : x , y , r

x := a ; y := b ;tant que y != 0 f a i r e

r := r e s t e de l a d i v i s i o n de x par yx := yy := r //nouvelle valeur de y < ancienne valeur

renvoyer x

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 3 / 21

Page 8: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Terminaison, correction

Correction - validite

Preuve de correction

Mise en evidence d’un invariant de boucle, i.e. une assertion qui est vraieavant l’entree dans la boucle et qui, si elle est vraie au debut d’un passage,reste vraie en fin de passage. Donc vraie en sortie.

Algorithme PGCDEntree : a , b e n t i e r sS o r t i e : un e n t i e r //Var iab les l o c a l e s : x , y , r

x := a ; y := b ; //tant que y != 0 f a i r e

r := r e s t e de l a d i v i s i o n de x par yx := y //y := r //

renvoyer x //

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 4 / 21

Page 9: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Terminaison, correction

Correction - validite

Preuve de correction

Mise en evidence d’un invariant de boucle, i.e. une assertion qui est vraieavant l’entree dans la boucle et qui, si elle est vraie au debut d’un passage,reste vraie en fin de passage. Donc vraie en sortie.

Algorithme PGCDEntree : a , b e n t i e r sS o r t i e : un e n t i e r // D(a, b) = diviseurs communsVar iab les l o c a l e s : x , y , r

x := a ; y := b ; // D(a, b) = D(x , y)tant que y != 0 f a i r e

r := r e s t e de l a d i v i s i o n de x par yx := y //y := r //

renvoyer x //

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 4 / 21

Page 10: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Terminaison, correction

Correction - validite

Preuve de correction

Mise en evidence d’un invariant de boucle, i.e. une assertion qui est vraieavant l’entree dans la boucle et qui, si elle est vraie au debut d’un passage,reste vraie en fin de passage. Donc vraie en sortie.

Algorithme PGCDEntree : a , b e n t i e r sS o r t i e : un e n t i e r //Var iab les l o c a l e s : x , y , r

x := a ; y := b ; // D(a, b) = D(x , y)tant que y != 0 f a i r e

r := r e s t e de l a d i v i s i o n de x par yx := y // x = qy + r , 0 ≤ r < yy := r // D(a, b) = D(x , y) = D(y , x − qy)

renvoyer x //

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 4 / 21

Page 11: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Terminaison, correction

Correction - validite

Preuve de correction

Mise en evidence d’un invariant de boucle, i.e. une assertion qui est vraieavant l’entree dans la boucle et qui, si elle est vraie au debut d’un passage,reste vraie en fin de passage. Donc vraie en sortie.

Algorithme PGCDEntree : a , b e n t i e r sS o r t i e : un e n t i e r //Var iab les l o c a l e s : x , y , r

x := a ; y := b ; // D(a, b) = D(x , y)tant que y != 0 f a i r e

r := r e s t e de l a d i v i s i o n de x par yx := y // x = qy + r , 0 ≤ r < yy := r // D(a, b) = D(x , y) = D(y , x − qy)

renvoyer x // D(a, b) = D(x , 0) : PGCD = x

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 4 / 21

Page 12: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : suite de Fibonacci

Complexite : la suite de Fibonacci

Calcul des nombres de Fibonacci (fn)n∈N definis par

f0 = f1 = 1, ∀n ∈ N \ {0, 1}, fn = fn−1 + fn−2 :

Trois algorithmes :

algorithme recursif,

algorithme iteratif,

calcul de puissances.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 5 / 21

Page 13: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : suite de Fibonacci

Temps de calcul avec l’algorithme recursif

Algorithme f i b r e c ( n : e n t i e r )s i n<2 a l o r s renvoyer 1s inon renvoyer f i b r e c ( n−1)+ f i b r e c ( n−2)

Mise en place et mesure des temps de calcul

Instructions utiles

Xcas Sage

dessin de listes listplot(L) list_plot(L)

mesure du temps time(calcul) t = cputime()

calculst = cputime()-t

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 6 / 21

Page 14: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : suite de Fibonacci

Temps de calcul avec l’algorithme recursif

Algorithme f i b r e c ( n : e n t i e r )s i n<2 a l o r s renvoyer 1s inon renvoyer f i b r e c ( n−1)+ f i b r e c ( n−2)

Mise en place et mesure des temps de calcul

Instructions utiles

Xcas Sage

dessin de listes listplot(L) list_plot(L)

mesure du temps time(calcul) t = cputime()

calculst = cputime()-t

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 6 / 21

Page 15: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : suite de Fibonacci

Complexite de l’algorithme recursif

Algorithme f i b r e c ( n : e n t i e r )s i n<2 a l o r s renvoyer 1s inon renvoyer f i b r e c ( n−1)+ f i b r e c ( n−2)

Operations elementaires :

an

appels a la fonction fib_rec (et tests),

sn

sommes.

Evaluation de (an)

a0 = a1 = 0, ∀n ≥ 2, an = 1 + an−1 + 1 + an−2,

La suite (an + 2) satisfait a une relation de recurrence lineaire.

Consequence : an = Cφn + C ′φ′n ∼ Cφn, ou φ = 1+√

52 , C ,C ′ > 0.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 7 / 21

Page 16: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : suite de Fibonacci

Complexite de l’algorithme recursif

Algorithme f i b r e c ( n : e n t i e r )s i n<2 a l o r s renvoyer 1s inon renvoyer f i b r e c ( n−1)+ f i b r e c ( n−2)

Operations elementaires :

an appels a la fonction fib_rec (et tests),

sn sommes.

Evaluation de (an)

a0 = a1 = 0, ∀n ≥ 2, an = 1 + an−1 + 1 + an−2,

La suite (an + 2) satisfait a une relation de recurrence lineaire.

Consequence : an = Cφn + C ′φ′n ∼ Cφn, ou φ = 1+√

52 , C ,C ′ > 0.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 7 / 21

Page 17: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : suite de Fibonacci

Complexite de l’algorithme recursif

Algorithme f i b r e c ( n : e n t i e r )s i n<2 a l o r s renvoyer 1s inon renvoyer f i b r e c ( n−1)+ f i b r e c ( n−2)

Operations elementaires :

an appels a la fonction fib_rec (et tests),

sn sommes.

Evaluation de (an)

a0 = a1 = 0, ∀n ≥ 2, an = 1 + an−1 + 1 + an−2,

La suite (an + 2) satisfait a une relation de recurrence lineaire.

Consequence : an = Cφn + C ′φ′n ∼ Cφn, ou φ = 1+√

52 , C ,C ′ > 0.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 7 / 21

Page 18: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : calcul de puissances

Aparte : calcul de puissances

Probleme : calculer xn (n entier) en minimisant le nombre demultiplications.

Algorithme Naive ( x , n : e n t i e r )s i n=0 a l o r s renvoyer 1s inon renvoyer Naive ( x , n−1)∗x

Algorithme p u i s s R e c ( x , n : e n t i e r )s i n=0 a l o r s renvoyer 1s inon s i n p a i r

y = p u i s s R e c ( x , n /2)renvoyer y∗y

s inony = p u i s s R e c ( x , ( n−1)/2)renvoyer x∗y∗y

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 8 / 21

Page 19: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : calcul de puissances

Nombre d’operations dans un calcul de puissances

Probleme : calculer xn (n entier) en minimisant le nombre demultiplications.

Algorithme n b P u i s s a n c e N a i v e ( n : e n t i e r )s i n=0 a l o r s renvoyer 0s inon renvoyer n b P u i s s a n c e N a i v e ( n−1)+1

Algorithme nbPu i s sanceRec ( n : e n t i e r )s i n=0 a l o r s renvoyer 0s inon s i n p a i r

renvoyer p u i s s R e c ( n/2)+1s inon

renvoyer p u i s s R e c ( ( n−1)/2)+2

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 9 / 21

Page 20: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : calcul de puissances

Nombre d’operations dans un calcul de puissances

Comptage des operations

Soit n un entier non nul, [ar , ar−1, . . . , a1, a0] ses chiffres en base 2. Lenombre de produits faits par l’algorithme recursif est :

M(n) = r − 1 + ar + ar−1 + · · ·+ a1 + a0.

Il est donc compris entre r = log(n) et 2 log(n).

Par recurrence sur r .

Si n est pair : a0 = 0 et n/2 = [ar , . . . , a1], d’ou :

M(n) = M(n

2)+1 = r−2+ar + · · ·+a1 +1 = r−1+ar + · · ·+a1 +a0.

Si n est impair : a0 = 1 et (n − 1)/2 = [ar , . . . , a1], d’ou :

M(n) = M(n − 1

2)+2 = r−2+ar+· · ·+a1+2 = r−1+ar+· · ·+a1+a0.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 10 / 21

Page 21: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : calcul de puissances

Nombre d’operations dans un calcul de puissances

Comptage des operations

Soit n un entier non nul, [ar , ar−1, . . . , a1, a0] ses chiffres en base 2. Lenombre de produits faits par l’algorithme recursif est :

M(n) = r − 1 + ar + ar−1 + · · ·+ a1 + a0.

Il est donc compris entre r = log(n) et 2 log(n).

Par recurrence sur r .

Si n est pair : a0 = 0 et n/2 = [ar , . . . , a1], d’ou :

M(n) = M(n

2)+1 = r−2+ar + · · ·+a1 +1 = r−1+ar + · · ·+a1 +a0.

Si n est impair : a0 = 1 et (n − 1)/2 = [ar , . . . , a1], d’ou :

M(n) = M(n − 1

2)+2 = r−2+ar+· · ·+a1+2 = r−1+ar+· · ·+a1+a0.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 10 / 21

Page 22: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : calcul de puissances

Application : suite de Fibonacci par les puissances

Pose, pour tout n entier :

Fn =(fn fn+1

).

Alors :

Fn+1 =(fn+1 fn + fn+1

)= FnA ou A =

(0 11 1

).

D’ou :

Fn = F0An = F−1A

n+1 ou F−1 =(f−1 f0

)=(0 1

).

Ainsi, Fn est la deuxieme ligne de An+1.

Interet

Calcul de An+1 en O(log n) operations arithmetiques.NB : Formule de Binet en diagonalisant A.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 11 / 21

Page 23: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : calcul de puissances

Application : suite de Fibonacci par les puissances

Pose, pour tout n entier :

Fn =(fn fn+1

).

Alors :

Fn+1 =(fn+1 fn + fn+1

)= FnA ou A =

(0 11 1

).

D’ou :

Fn = F0An = F−1A

n+1 ou F−1 =(f−1 f0

)=(0 1

).

Ainsi, Fn est la deuxieme ligne de An+1.

Interet

Calcul de An+1 en O(log n) operations arithmetiques.NB : Formule de Binet en diagonalisant A.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 11 / 21

Page 24: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Complexite en seconde ou premiere : un exemple simplepour le lycee

Ecrire � le � programme suivant :Entree : un entier naturel p > 0.Sortie : les triangles a cotes entiers, rectangles, de perimetre p.

Premiere version :

Algorithme t r i a n g l e s e n t i e r s v 0 ( p : e n t i e r )pour a de 1 jusque p :

pour b de 1 jusque p :pour c de 1 jusque p :

t e s t e r l e t r i p l e t ( a , b , c )s t o c k e r ( a , b , c ) s i s a t i s f a i s a n t

renvoyer l i s t e des t r i p l e t s

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 12 / 21

Page 25: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Complexite en seconde ou premiere : un exemple simplepour le lycee

Ecrire � le � programme suivant :Entree : un entier naturel p > 0.Sortie : les triangles a cotes entiers, rectangles, de perimetre p.

Premiere version :

Algorithme t r i a n g l e s e n t i e r s v 0 ( p : e n t i e r )pour a de 1 jusque p :

pour b de 1 jusque p :pour c de 1 jusque p :

t e s t e r l e t r i p l e t ( a , b , c )s t o c k e r ( a , b , c ) s i s a t i s f a i s a n t

renvoyer l i s t e des t r i p l e t s

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 12 / 21

Page 26: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Premiere approche experimentale

Sur une calculatrice Ti82, plus de 5 secondes pour un perimetre p = 10.

Hypothese de proportionnalite temps – nombre de boucles.Quel temps pour un perimetre p = 1000 ?

5× 1003

3600× 24≈ 58 jours

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 13 / 21

Page 27: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Premiere approche experimentale

Sur une calculatrice Ti82, plus de 5 secondes pour un perimetre p = 10.

Hypothese de proportionnalite temps – nombre de boucles.Quel temps pour un perimetre p = 1000 ?

5× 1003

3600× 24≈ 58 jours

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 13 / 21

Page 28: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Complexite : les triangles entiers

Amelioration de l’algorithme :

Algorithme t r i a n g l e s e n t i e r s v 1 ( p : e n t i e r )pour a de 1 jusque p / 3 :

pour b de a jusque f l o o r ( ( p−a ) / 2 )t e s t e r l e t r i p l e t ( a , b , p−a−b )s t o c k e r ( a , b , p−a−b ) s i s a t i s f a i s a n t

renvoyer l i s t e d e s t r i p l e t s

Comparer les temps de calcul experimentalement et expliquer.FICHIER SAGE

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 14 / 21

Page 29: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Complexite : les triangles entiersEvaluation de la complexite

Premiere version :Nombre de tests : p3.

Seconde version :Nombre de tests :

dp/3e∑a=1

(p2− a + 1

)6

1

9p(p + 3)

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 15 / 21

Page 30: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : � les triangles �

Complexite : les triangles entiersEvaluation de la complexite

Premiere version :Nombre de tests : p3.

Seconde version :Nombre de tests :

dp/3e∑a=1

(p2− a + 1

)6

1

9p(p + 3)

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 15 / 21

Page 31: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Complexite et ISN : tri par selection

Le principe du tri par selection d’une liste T = (T [1],T [2], . . . ,T [n]) :

Pour chaque entier j (1 6 j 6 n − 1) :

parcourir les elements T [j ], T [j + 1], . . ., T [n], retenir l’indice k duplus petit.

placer au rang j le plus petit des elements T [j ], T [j + 1], . . ., T [n](en echangeant T [j ] et T [k]).

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 16 / 21

Page 32: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

1 5 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 33: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

0 1 5 2 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 34: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

0 1 5 2 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 35: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

0 1 5 2 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 36: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

0 1 5 2 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 37: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

0 1 5 2 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 38: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection : illustration

2 1 5 0 9 4

0 1 5 2 9 4

0 1 5 2 9 4

0 1 2 5 9 4

0 1 2 4 9 5

0 1 2 4 5 9

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 17 / 21

Page 39: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Tri par selection

Entree : T liste de nombres de taille nSortie : liste T trieeTraitement :Pour j de 1 a n − 1indiceMin :=j

Pour k de j + 1 a nsi T [k] < T [j ] alors indiceMin:= k finSi

finPourEchange de T [j ] et T [indiceMin] si j 6= indiceMinfinPour

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 18 / 21

Page 40: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Complexite : tri par selection

Complexite experimentale : fichier SAGE ou fichier XCAS. . .

second degreNombre de comparaisons :

n−1∑j=1

n∑k=j+1

1

=n−1∑j=1

(n − j) =1

2n(n − 1)

Nombre d’echanges : au plus le nombre de comparaisons.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 19 / 21

Page 41: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Complexite : tri par selection

Complexite experimentale : second degre

Nombre de comparaisons :

n−1∑j=1

n∑k=j+1

1

=n−1∑j=1

(n − j) =1

2n(n − 1)

Nombre d’echanges : au plus le nombre de comparaisons.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 19 / 21

Page 42: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Complexite : tri par selection

Complexite experimentale : second degreNombre de comparaisons :

n−1∑j=1

n∑k=j+1

1

=n−1∑j=1

(n − j) =1

2n(n − 1)

Nombre d’echanges : au plus le nombre de comparaisons.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 19 / 21

Page 43: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Complexite en 1e : evaluation d’un polynome en une valeur

Entree : un polynome p (liste de ses coefficients) et une valeur reelle x .Sortie : p(x)

Exemples avec SAGE.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 20 / 21

Page 44: Complexité en algorithmique - math.univ-lyon1.frmath.univ-lyon1.fr/irem/IMG/pdf/04_Complexite.pdf · Complexit e en algorithmique Gilles Aldon, J er^ome Germoni, Jean-Manuel M eny

Complexite Complexite : tri par selection

Quelques remarques sur la complexite

Notion d’operation elementaire dependante du contexte.

Principe : evaluer (majorer) le nombre d’operations en fonction de lataille des donnees (valeur d’un argument, nombre de mots, nombred’inconnues, nombre de chiffres...).

Exemples :

Cryptographie RSA et factorisation : pour un nombre a 100 chiffres,1050 tests naıfs = trop !Algorithme de Gauss : complexite en O(n3) si les nombres ont unetaille fixe (flottants, corps finis ; pas rationnels...).Exemple : 106 inconnues ; 1018 operations > 109 secondes !P = NP.

GA, JG, JMM (IREM de Lyon) Complexite Mars 2012 21 / 21