[PDF] Cours générale d algorithme en pdf | Cours informatique

Texte intégral

(1)

2006/2007 63

Plan du cours

1. Introduction – Contenu du cours 2. Logique mathématique – Calcul propositionnel – Calcul des prédicats

– Logique floue et aide à la décision

3. Induction

4. Analyse d’algorithmes

– Comparaison asymptotique de fonctions – Complexité

5. Récurrence

6. Mathématique de la gestion

– Théorie des graphes – Optimisation

Analyse d’algorithmes

• Algorithme :

– « recette », séquence d’actions définies de façon non ambigüe, qui peut être appliquée pour résoudre un problème en un temps fini.

(2)

2006/2007 65

Outil d’analyse :

Comportement asymptotique de fonctions

• Questions :

– Peut-on extrapoler le temps requis pour résoudre un problème sur base de jeux de données de test (plus petits…) ?

– Comment comparer deux algorithmes

indépendamment des machines sur lesquelles ils seront implémentés ?

– Comment s’assurer qu’un algorithme s’adaptera bien à une augmentation de la taille du problème à résoudre ?

2006/2007 66

Analyse d’algorithmes

• Etudier le temps requis par un algorithme

en fonction de la taille du problème.

Comment comparer le taux de

croissance de différentes fonctions ?

(3)

2006/2007 67

Analyse d’algorithmes

• Hypothèses simplificatrices :

– Soient 2 algorithmes A1 et A2 avec :

• A1 systématiquement plus rapide que A2 pour de « petits » jeux de données.

• A2 systématiquement plus rapide que A1 pour de « grands » jeux de données.

A2 sera préféré à A1 car « presque toujours » meilleur.

– On ne tient pas compte des paramètres de performances propres aux ordinateurs sur lesquel l’algorithme est implémenté.

Comparaison asymptotique de

fonctions

• Fonctions étudiées :

– Temps de calcul en fonction de la taille des données (input).

(4)

2006/2007 69

Dominance asymptotique

• F domine asymptotiquement G si : • Exemple :

(

)

( )

( )

0 0

,

0,

:

:

N

c

n

N

G n

c F n

∀ ≥

≤ ×

( )

2

( )

domine

3

F n

=

n

G n

=

n

( )

( )

( )

2

3

3

3

n

G n

n

F n

c F n

=

≤ ×

0

0

3

N

=

c

=

2006/2007 70

Notation

• Définition : soient 2 fonctions F et G :

• Expressions courantes :

( ) {

:

domine asymptotiquement

}

O F

=

G F

G

( )

( )

( )

est

G

O F

G

O F

G

O F

=

(5)

2006/2007 71

Autres définitions

( )

:

( )

( )

,

0

G n

F

G

d

n

N

F n

=

≥ ∀ ≥

( )

:

( )

( )

,

0

G n

O F

G

c

n

N

F n

=

≤ ∀ ≥

( )

:

( )

( )

,

0

G n

F

G d

c

n

N

F n

Θ

=

≤ ∀ ≥

Interprétation

• Si

• Alors F et G croissent approximativement

de la même façon lorsque n est grand.

( )

et

( )

(6)

2006/2007 73

Exemple 1

( )

( )

1 1

2

2

0

2

n

n

F n

n

G n

n

=

=

<

2006/2007 74

Exemple 1

( )

1 1

G

O F

( )

( )

1 1

et

1 1

G

O F

F

O G

( )

1 1

F

O G

( )

( )

1 1 0 1 0 c G n F n N =  ≤ ⇒  = 

( )

(

)

(

)

( )

( )

1 0 1 1 2 4 4 2 4 2 2 2 c F n n n n N n n G n c G n =  ⇒ = ≤ + −  =  ≤ − ≤ − ≤ ≤ ×

(7)

2006/2007 75

Exemple 2

( )

( )

2 2

100.000.000

0

0

n

F n

n

G n

n

n

=

=

=

>

( )

( )

2 2

et

2 2

G

O F

F

O G

(

c

=

1 et

N

0

=

1

)

Exemple 4

( )

( )

2 4 4

F n

=

n

G n

=

n

(8)

2006/2007 77

Exemple 4

( )

4 4

F

O G

( )

( )

4 4

mais

4 4

F

O G

G

O F

( )

4 4

G

O F

( )

2

( )

4 4 0 1 2 c F n n n G n N =  ⇒ = < =  = 

( )

( )

( )

( )

0 0 0 4 4 0 4 4 , : si : si : N c N c n N G n c F n N c n c G n c F n ∀ > = ⇒ > × ≤ > ⇒ > × 2006/2007 78

Généralisation de l’exemple 4

( )

k

( )

k1

F n

=

n

G n

=

n

+

( )

mais

( )

F

O G

G

O F

1, 2,3,

k

=

(9)

2006/2007 79

Extension à des fonctions

partielles

• Fonction partielle : définie pour presque

tous les n (tous sauf un nombre fini de

valeurs).

• Extension de la définition de dominance :

F

domine asymptotiquement G si :

(

)

( )

0

( )

( )

( )

0

,

0,

:

avec

et

définis :

N

c

n

N

F n

G n

G n

c F n

∀ ≥

≤ ×

Propriétés (1)

• Théorème 1 :

• Corollaire :

(

0,

)

( )

a

a F

× ∈

O F

(10)

2006/2007 81

Propriétés (2)

• Théorème 2 :

• Conséquence : la dominance asymptotique est une relation transitive.

• Corrolaire :

( )

( )

( )

H

O G

H

O F

G

O F

( )

pour

i j

n

O n

i

j

2006/2007 82

Propriétés (3)

• Théorème 3 :

• Corollaire (par induction) :

( )

( )

( )

( )

G

O F

G

H

O F

H

O F

G

H

O F

+ ∈

− ∈

( )

( )

1 1 2 2 1 2 1, , , , , i k k k G O F i k a G a G a G O F a a a ∈   =  ⇓ + + + ∈   ∀ ∈  … … … ℝ

(11)

2006/2007 83

Relation d’équivalence

• Théorème 4 :

• Cf.

Θ

( )

( )

( )

( )

( )

( )

( )

(

) ( )

( )

{

}

. ssi . ssi et

. F,G : est une relation d'équivalence

a F O G O F O G b O F O G F O G G O F c O F O G ∈ ⊆ = ∈ ∈ =

Fonctions polynomiales

• Définition : fonction polynomiale de

degré k :

– Avec a ≠0.

( )

1 2 1 2 1 0 k k k k

P n

=

a n

+

a n

+ +

a n

+

a n

+

a

(12)

2006/2007 85

Fonctions polynomiales

• Théorème 5 :

• Corollaire (monômes) :

( )

( )

1 2 2 1 1

,

2

0

1 2 k k k k

k k

k

k

x

x

O x

x

O x

< <

( )

( )

,

i j j i

i j

i

j

n

n

O n

n

O n

<

2006/2007 86

Fonctions polynomiales

• Théorème 6 : pour une fonction polynomiale de degré k : On a :

( )

1 2 1 2 1 0 k k k k

P n

=

a n

+

a n

+ +

a n

+

a n

+

a

( )

( )

( )

(

)

k k

P n

O n

n

O P n

(13)

2006/2007 87

Fonctions exponentielles

2 3

:

:

: 2

n

d n

x n

w

Fonctions exponentielles

• Théorème 7 :

( )

( )

2

2

2

k n n k

k

k

n

O

O n

(14)

2006/2007 89

Fonctions logarithmiques

( )

:

: ln

x n

o

n

2006/2007 90

Fonctions logarithmiques

• Corollaire du théorème 7 :

( )

( )

( )

(

)

ln

ln

n

O n

n

O

n

(15)

2006/2007 91

Comparaison

Complexité d’un algorithme

• Comment estimer le temps d’exécution d’un programme pour un jeu de données de taille donnée à partir des temps observés pour des jeux de données de test (plus petits) ?

(16)

2006/2007 93

Complexité

• Mesure de la complexité en temps d’un

algorithme.

• Utilisation de la notation O.

• Exemple :

– Un algorithme de tri en O(n2) sera moins bon

qu’un autre en O(n ln(n)).

2006/2007 94

(17)

2006/2007 95

Exemple 1

Exemple 1

• Que compter ? – Comparaisons ? – Echanges ?

(18)

2006/2007 97

Exemple 1

• Nombre de comparaisons :

– 1 + 1 + 1 = 3

• Complexité :

– O(1) 2006/2007 98

Exemple 2

(19)

2006/2007 99

Exemple 2

• Pour une sélection :

Exemple 2

• Nombre de comparaisons :

– 2 + Max { 0, 1 + 1 + 1 } = 5

• Complexité :

– O(1)

(20)

2006/2007 101

Exemple 3

2006/2007 102

Exemple 3

• Nombre de comparaisons :

– 2 + Max { 1, 2 + Max ( 1 , 1 ) } = 5

• Complexité :

– O(1)

• Remarque :

– En comptant les échanges : maximum 2, alors que maximum 3 pour les versions précédentes !

(21)

2006/2007 103

Exemple 4

(22)

2006/2007 105

Exemple 4

• Nombre de comparaisons :

– Boucle intérieure : N - 1 – Boucle extérieure : (N – 1) × (N – 1)

• Complexité :

– O(N2) 2006/2007 106

Exemple 5

(23)

2006/2007 107

Exemple 5

• Nombre de comparaisons :

– Boucle intérieure : N - 1 – Boucle extérieure : (N – 1) + (N – 2) + … + 2 + 1 = N × (N – 1) / 2

• Complexité :

– O(N2)

Figure

Updating...

Références

Updating...