75
Chapitre 3 : Algorithmes Diviser pour R´ egner Prof. Abdelmajid Dargham Facult´ e des Sciences, Oujda Master Sp´ ecialis´ e Ing´ enierie Informatique Universit´ e Mohamed Premier Septembre, 2012

Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Chapitre 3 :

Algorithmes Diviser pour Regner

Prof. Abdelmajid DarghamFaculte des Sciences, Oujda

Master Specialise Ingenierie Informatique

Universite Mohamed Premier

Septembre, 2012

Page 2: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Sommaire du chapitre 3

Principe de la technique diviser pour regner

Exemples classiques

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 3: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Sommaire du chapitre 3

Principe de la technique diviser pour regner

Exemples classiques

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 4: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Sommaire du chapitre 3

Principe de la technique diviser pour regner

Exemples classiques

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 5: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Definition 1.1

Un algorithme de type diviser pour regner est une procedurerecursive qui resout un probleme donne selon le schemasuivant :

Diviser : le probleme est decompose en plusieurssous-prolemes dont la resolution est identique a celle duprobleme initial.

Regner : les sous-prolemes sont resolus de faconrecursive. Cependant, un sous-probleme peut etre resoludirectement si la taille de son entree est petite.

Combiner : les solustions des sous-prolemes sontcombinees pour former la solution du probleme initial.

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 6: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Definition 1.1

Un algorithme de type diviser pour regner est une procedurerecursive qui resout un probleme donne selon le schemasuivant :

Diviser : le probleme est decompose en plusieurssous-prolemes dont la resolution est identique a celle duprobleme initial.

Regner : les sous-prolemes sont resolus de faconrecursive. Cependant, un sous-probleme peut etre resoludirectement si la taille de son entree est petite.

Combiner : les solustions des sous-prolemes sontcombinees pour former la solution du probleme initial.

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 7: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Definition 1.1

Un algorithme de type diviser pour regner est une procedurerecursive qui resout un probleme donne selon le schemasuivant :

Diviser : le probleme est decompose en plusieurssous-prolemes dont la resolution est identique a celle duprobleme initial.

Regner : les sous-prolemes sont resolus de faconrecursive. Cependant, un sous-probleme peut etre resoludirectement si la taille de son entree est petite.

Combiner : les solustions des sous-prolemes sontcombinees pour former la solution du probleme initial.

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 8: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Definition 1.1

Un algorithme de type diviser pour regner est une procedurerecursive qui resout un probleme donne selon le schemasuivant :

Diviser : le probleme est decompose en plusieurssous-prolemes dont la resolution est identique a celle duprobleme initial.

Regner : les sous-prolemes sont resolus de faconrecursive. Cependant, un sous-probleme peut etre resoludirectement si la taille de son entree est petite.

Combiner : les solustions des sous-prolemes sontcombinees pour former la solution du probleme initial.

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 9: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 10: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : Solution

Variables S : Solution;Debut

Si (‖P‖ est petite) Alors S := CasBase(P)Sinon

(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 11: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 12: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

Debut

Si (‖P‖ est petite) Alors S := CasBase(P)Sinon

(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 13: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 14: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon

(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 15: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);

Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 16: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPour

S := Combiner(S1, S2, ..., Sk);FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 17: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

Fin

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 18: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Principe de la technique diviser pour regner

Schema general d’un algorithme diviser pour regner

Schema general 1.2

Fonction Diviser Regner(P : Probleme) : SolutionVariables S : Solution;

DebutSi (‖P‖ est petite) Alors S := CasBase(P)

Sinon(P1, P2, ..., Pk) := Diviser(P);Pour i := 1 a k Faire Si := Regner(Pi); FinPourS := Combiner(S1, S2, ..., Sk);

FinSiRetourner S;

FinProf. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 19: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Soit a calculer le produit de deux entiers x et y ayantchacun n chiffres.

L’algorithme naıf effectue n2 multiplications simples(multiplication de 2 chiffres).

Posons : {x = a × 10

n2 + b

y = c × 10n2 + d

xy = ac × 10n + (ad + bc)× 10n2 + bd (1)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 20: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Soit a calculer le produit de deux entiers x et y ayantchacun n chiffres.

L’algorithme naıf effectue n2 multiplications simples(multiplication de 2 chiffres).

Posons : {x = a × 10

n2 + b

y = c × 10n2 + d

xy = ac × 10n + (ad + bc)× 10n2 + bd (1)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 21: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Soit a calculer le produit de deux entiers x et y ayantchacun n chiffres.

L’algorithme naıf effectue n2 multiplications simples(multiplication de 2 chiffres).

Posons : {x = a × 10

n2 + b

y = c × 10n2 + d

xy = ac × 10n + (ad + bc)× 10n2 + bd (1)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 22: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Soit a calculer le produit de deux entiers x et y ayantchacun n chiffres.

L’algorithme naıf effectue n2 multiplications simples(multiplication de 2 chiffres).

Posons : {x = a × 10

n2 + b

y = c × 10n2 + d

xy = ac × 10n + (ad + bc)× 10n2 + bd (1)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 23: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Soit a calculer le produit de deux entiers x et y ayantchacun n chiffres.

L’algorithme naıf effectue n2 multiplications simples(multiplication de 2 chiffres).

Posons : {x = a × 10

n2 + b

y = c × 10n2 + d

xy = ac × 10n + (ad + bc)× 10n2 + bd (1)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 24: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Un premier algorithme de type DR ( Diviser pour regner)base sur la formule (1).

Complexite :

T (n) =

{1 si n = 1

4T (n/2) si n ≥ 2

T (n) = Θ(n2).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 25: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Un premier algorithme de type DR ( Diviser pour regner)base sur la formule (1).

Complexite :

T (n) =

{1 si n = 1

4T (n/2) si n ≥ 2

T (n) = Θ(n2).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 26: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Un premier algorithme de type DR ( Diviser pour regner)base sur la formule (1).

Complexite :

T (n) =

{1 si n = 1

4T (n/2) si n ≥ 2

T (n) = Θ(n2).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 27: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers

Un premier algorithme de type DR ( Diviser pour regner)base sur la formule (1).

Complexite :

T (n) =

{1 si n = 1

4T (n/2) si n ≥ 2

T (n) = Θ(n2).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 28: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

C’est un algorithme de type DR .

Idee : utiliser 3 multiplications au lieu de 4 dans laformule (1).

ad + bc = ac + bd − (a− b)(c − d) (Forumule de Gauss)

xy = p × 10n + (p + q − r)× 10n2 + q, avec :

Formule de Karatsuba

p := ac

q := bd

r := (a − b)(c − d)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 29: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

C’est un algorithme de type DR .

Idee : utiliser 3 multiplications au lieu de 4 dans laformule (1).

ad + bc = ac + bd − (a− b)(c − d) (Forumule de Gauss)

xy = p × 10n + (p + q − r)× 10n2 + q, avec :

Formule de Karatsuba

p := ac

q := bd

r := (a − b)(c − d)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 30: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

C’est un algorithme de type DR .

Idee : utiliser 3 multiplications au lieu de 4 dans laformule (1).

ad + bc = ac + bd − (a− b)(c − d) (Forumule de Gauss)

xy = p × 10n + (p + q − r)× 10n2 + q, avec :

Formule de Karatsuba

p := ac

q := bd

r := (a − b)(c − d)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 31: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

C’est un algorithme de type DR .

Idee : utiliser 3 multiplications au lieu de 4 dans laformule (1).

ad + bc = ac + bd − (a− b)(c − d) (Forumule de Gauss)

xy = p × 10n + (p + q − r)× 10n2 + q, avec :

Formule de Karatsuba

p := ac

q := bd

r := (a − b)(c − d)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 32: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

C’est un algorithme de type DR .

Idee : utiliser 3 multiplications au lieu de 4 dans laformule (1).

ad + bc = ac + bd − (a− b)(c − d) (Forumule de Gauss)

xy = p × 10n + (p + q − r)× 10n2 + q, avec :

Formule de Karatsuba

p := ac

q := bd

r := (a − b)(c − d)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 33: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

C’est un algorithme de type DR .

Idee : utiliser 3 multiplications au lieu de 4 dans laformule (1).

ad + bc = ac + bd − (a− b)(c − d) (Forumule de Gauss)

xy = p × 10n + (p + q − r)× 10n2 + q, avec :

Formule de Karatsuba

p := ac

q := bd

r := (a − b)(c − d)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 34: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

Complexite de l’algorithme de Karatsuba :

T (n) =

{1 si n = 1

3T (n2) si n ≥ 2

T (n) = Θ(nlog2 3) ' Θ(n1.58).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 35: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

Complexite de l’algorithme de Karatsuba :

T (n) =

{1 si n = 1

3T (n2) si n ≥ 2

T (n) = Θ(nlog2 3) ' Θ(n1.58).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 36: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

Complexite de l’algorithme de Karatsuba :

T (n) =

{1 si n = 1

3T (n2) si n ≥ 2

T (n) = Θ(nlog2 3) ' Θ(n1.58).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 37: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des grands entiers : algorithme deKaratsuba

Complexite de l’algorithme de Karatsuba :

T (n) =

{1 si n = 1

3T (n2) si n ≥ 2

T (n) = Θ(nlog2 3) ' Θ(n1.58).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 38: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 39: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 40: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 41: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 42: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 43: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.

n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 44: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 45: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Soit a calculer la matrice C , produit des deux matricescarrees A et B de dimension n.

Le schema de calcul de l’algorithme naıf est :

Cij :=∑n

k=1 AikBkj

L’algorithme naıf effectue :

n3 multiplications.n2(n − 1) = Θ(n3) additions.

Sa complexite est alors : Θ(n3).

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 46: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 47: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 48: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 49: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 50: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 51: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 52: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

On decompose chaque matrice de dimension n en 4sous-matrices de dimension n

2:

A =

(A11 A12

A21 A22

)B =

(B11 B12

B21 B22

)C =

(C11 C12

C21 C22

)

C11 = A11B11 + A12B21

C12 = A11B12 + A12B22

C21 = A21B11 + A22B21

C22 = A21B12 + A22B22

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 53: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Le schema de calcul precedent donne un algorithme DRdont la complexite est :

T (n) =

{1 si n = 1

8T (n2) + n2 si n ≥ 2

Par consequent, T (n) = Θ(n3)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 54: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Le schema de calcul precedent donne un algorithme DRdont la complexite est :

T (n) =

{1 si n = 1

8T (n2) + n2 si n ≥ 2

Par consequent, T (n) = Θ(n3)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 55: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Le schema de calcul precedent donne un algorithme DRdont la complexite est :

T (n) =

{1 si n = 1

8T (n2) + n2 si n ≥ 2

Par consequent, T (n) = Θ(n3)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 56: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices

Le schema de calcul precedent donne un algorithme DRdont la complexite est :

T (n) =

{1 si n = 1

8T (n2) + n2 si n ≥ 2

Par consequent, T (n) = Θ(n3)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 57: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 58: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 59: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 60: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 61: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);

2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 62: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;

3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 63: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);

4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 64: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);

5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 65: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;

6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 66: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);

7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 67: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

C’est un algorithme de type DR .

Idee : utiliser 7 multiplications au lieu de 8.

Voici les etapes de calcul de cet algorithme :

1 M1 := (A11 + A22)(B11 + B22);2 M2 := (A21 + A22)B11;3 M3 := A11(B12 − B22);4 M4 := A22(B21 − B11);5 M5 := (A11 + A12)B22;6 M6 := (A21 − A11)(B11 + B12);7 M7 := (A12 − A22)(B21 + B22);

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 68: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 69: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 70: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;

2 C12 := M3 + M5;3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 71: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;

3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 72: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;3 C21 := M2 + M4;

4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 73: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 74: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner

Page 75: Chapitre 3 : Algorithmes Diviser pour RégnerChapitre 3 : Algorithmes Diviser pour R´egner Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Master Sp´ecialis´e Ing´enierie

Exemples classiques

Multiplication des matrices : algorithme de Strassen

La matrice C est calculee ainsi :

1 C11 := M1 + M4 −M5 + M7;2 C12 := M3 + M5;3 C21 := M2 + M4;4 C22 := M1 −M2 + M3 + M6;

La complexite de l’algorithme est :

T (n) =

{1 si n = 1

7T (n2) + 2n2 si n ≥ 2

Par suite : T (n) = Θ(nlog2 7) ' Θ(n2.807)

Prof. Abdelmajid Dargham Chapitre 3 : Algorithmes Diviser pour Regner