Partie 2

publicité
Plan du cours
1.
Introduction
–
2.
Contenu du cours
Logique mathématique
–
–
–
3.
4.
Calcul propositionnel
Calcul des prédicats
Logique floue et aide à la décision
Induction
Analyse d’algorithmes
–
–
5.
6.
Comparaison asymptotique de fonctions
Complexité
Récurrence
Mathématique de la gestion
–
–
2008/2009
Théorie des graphes
Optimisation
95
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.
• Analyse d’un algorithme :
–
–
–
–
–
Approprié à la tâche à laquelle il est destiné ?
Meilleur qu’un autre ?
Possibilités d’amélioration ?
Ressources utilisées en temps et en mémoire ?
Performances indépendamment de l’implémentation
?
2008/2009
96
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 ?
2008/2009
97
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 ?
2008/2009
98
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
lesquels l’algorithme est implémenté.
2008/2009
99
Comparaison asymptotique de
fonctions
• Fonctions étudiées :
– Temps de calcul en fonction de la taille des
données (input).
– Domaine : nombre naturels.
– Image : nombres réels positifs.
F :  0,  
2008/2009
100
Dominance asymptotique
• F domine asymptotiquement G si :
 N  , c   0,   :
n  N : G  n   c  F  n 
0
0
• Exemple :
F  n  n
N 0 c3
0
2008/2009
2
domine G  n   3n
G  n   3n
 3n
2
 3F  n 
 c  F n
101
Notation
• Définition : soient 2 fonctions F et G :
O  F   G : F domine asymptotiquement G
• Expressions courantes :
G O F 
G est O  F 
G  OF 
2008/2009
102
Autres définitions
 G n

O  F   G :
 c, n  N 
 F n

0
 G n

  F   G :
 d , n  N 
 F n

0


G n
  F   G : d 
 c, n  N 
F n


0
2008/2009
103
Interprétation
• Si
G  O  F  et
F  O G 
• Alors F et G croissent approximativement
de la même façon lorsque n est grand.
2008/2009
104
Exemple 1
F n  n
1
2008/2009
n  2 n  2
G n  
n2
 0
1
105
Exemple 1
G  O  F  et F  O  G 
1
G O F 
1
1
1
1
1
 c 1
G n  F n  
N  0
1
1
0
F  O G 
1
1
 c2
 F  n   n  n   n  4

N  4
 2n  4
 2  n  2
 2G  n 
 c  G  n  106
1
0
1
2008/2009
1
Exemple 2
100.000.000 n  0
G n  
n
n0

F n  n
2
2
G  O  F  et
2
2
F  O G 
2
2
 c  1 et N  1
0
2008/2009
107
Exemple 4
F  n  n
4
2008/2009
G n  n
2
4
108
Exemple 4
F  O  G  mais G  O  F 
4
4
F  O G 
4
4
4
4
 c 1
 F n  n  n  G n

N  2
2
4
4
0
G O F 
4
4
N , c :
si N  c : n  N  G  n   c  F  n 
si N  c : n  c  G  n   c  F  n 
0
0
0
0
2008/2009
4
4
4
4
109
Généralisation de l’exemple 4
F  n  n
k
G n  n
k 1
k  1, 2,3,
F  O  G  mais G  O  F 
2008/2009
110
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 :
 N  , c   0,   :
n  N avec F  n  et G  n  définis : G  n   c  F  n 
0
0
2008/2009
111
Propriétés (1)
• Théorème 1 :
a   0,    a  F  O  F 
• Corollaire :
a  0 : a  F  O  F  et F  O  a  F 
• Conséquence (a=1) : la dominance
asymptotique est une relation réflexive.
2008/2009
112
Propriétés (2)
• Théorème 2 :
H  O G 
 H O F 

G  O  F 
• Conséquence : la dominance asymptotique est
une relation transitive.
• Corrolaire :
n  O  n  pour i  j
i
2008/2009
j
113
Propriétés (3)
• Théorème 3 :
G O  F 
G  H OF 
 

H  O  F 
 G  H O F 
• Corollaire (par induction) :
G  O  F 

 i  1, , k

i
 a G  a G   a G OF 

a , a , , a 

1
2008/2009
1
2
2
1
k
2
k
k
114
Relation d’équivalence
• Théorème 4 :
a. F  O  G  ssi O  F   O  G 
b. O  F   O  G  ssi F  O  G  et G  O  F 
c.  F,G  : O  F   O  G  est une relation d'équivalence
• Cf. 
2008/2009
115
Fonctions polynomiales
• Définition : fonction polynomiale de
degré k :
P  n  a n  a n 
k 1
k
k
k 1
a n ana
2
2
1
0
– Avec ak  0.
– Fonction partielle : définie seulement pour
les n tels que P(n) est positive  ak > 0.
2008/2009
116
Fonctions polynomiales
• Théorème 5 :
k ,k 
1
0k k
2
1
2
x
x O  x 

x O  x 
k1
k2
k2
k1
• Corollaire (monômes) :
i, j 
2008/2009
i  j n
n  O  n 

n  O  n 
i
j
j
i
117
Fonctions polynomiales
• Théorème 6 : pour une fonction polynomiale
de degré k :
P  n  a n  a n 
k 1
k
k
k 1
a n ana
2
2
1
0
On a :
P n O n 
n  O  P  n 
k
k
2008/2009
118
Fonctions exponentielles
d :n
2008/2009
2
x:n
3
w: 2
n
119
Fonctions exponentielles
• Théorème 7 :
k
k2
n  O  2 

2  O  n 
2008/2009
k
n
n
k
120
Fonctions logarithmiques
x : n o : ln  n 
2008/2009
121
Fonctions logarithmiques
• Corollaire du théorème 7 :
ln  n   O  n 
n  O  ln  n  
2008/2009
122
Comparaison
2008/2009
123
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) ?
• Comment comparer les performances de deux
algorithmes indépendant des machines sur
lesquelles ils seront implémentés ?
• Comment s’assurer qu’un algorithme s’adaptera
bien à des jeux de données de taille plus
élevée ?
2008/2009
124
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)).
2008/2009
125
Principe de comptage
2008/2009
126
Exemple 1
2008/2009
127
Exemple 1
• Que compter ?
– Comparaisons ?
– Echanges ?
• Pour une séquence :
2008/2009
128
Exemple 1
• Nombre de comparaisons :
– 1+1+1=3
• Complexité :
– O(1)
2008/2009
129
Exemple 2
2008/2009
130
Exemple 2
• Pour une sélection :
2008/2009
131
Exemple 2
• Nombre de comparaisons :
– 2 + Max { 0, 1 + 1 + 1 } = 5
• Complexité :
– O(1)
2008/2009
132
Exemple 3
2008/2009
133
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 !
2008/2009
134
Exemple 4
2008/2009
135
Exemple 4 - Répétition
2008/2009
136
Exemple 4
• Nombre de comparaisons :
– Boucle intérieure : N - 1
– Boucle extérieure :
(N – 1) × (N – 1)
• Complexité :
– O(N2)
2008/2009
137
Exemple 5
2008/2009
138
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)
2008/2009
139
Téléchargement