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.
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 ?
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).
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
( )
( )
( )
23
3
3
n
G n
n
F n
c F n
=
≤
≤
≤ ×
00
3
N
=
c
=
2006/2007 70Notation
• 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
∈
=
2006/2007 71
Autres définitions
( )
:
( )
( )
,
0G n
F
G
d
n
N
F n
Ω
=
≥ ∀ ≥
( )
:
( )
( )
,
0G n
O F
G
c
n
N
F n
=
≤ ∀ ≥
( )
:
( )
( )
,
0G 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
( )
2006/2007 73
Exemple 1
( )
( )
1 12
2
0
2
n
n
F n
n
G n
n
−
≥
=
=
<
2006/2007 74Exemple 1
( )
1 1G
∈
O F
( )
( )
1 1et
1 1G
∈
O F
F
∈
O G
( )
1 1F
∈
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 = ⇒ = ≤ + − = ≤ − ≤ − ≤ ≤ ×2006/2007 75
Exemple 2
( )
( )
2 2100.000.000
0
0
n
F n
n
G n
n
n
=
=
=
>
( )
( )
2 2et
2 2G
∈
O F
F
∈
O G
(
c
=
1 et
N
0=
1
)
Exemple 4
( )
( )
2 4 4F n
=
n
G n
=
n
2006/2007 77
Exemple 4
( )
4 4F
∈
O G
( )
( )
4 4mais
4 4F
∈
O G
G
∉
O F
( )
4 4G
∉
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 78Généralisation de l’exemple 4
( )
k( )
k1F n
=
n
G n
=
n
+( )
mais
( )
F
∈
O G
G
∉
O F
1, 2,3,
k
=
…
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
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 jn
∈
O n
i
≤
j
2006/2007 82Proprié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 ∈ = ⇓ + + + ∈ ∀ ∈ … … … ℝ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 kP n
=
a n
+
a n
− −+ +
…
a n
+
a n
+
a
2006/2007 85
Fonctions polynomiales
• Théorème 5 :
• Corollaire (monômes) :
( )
( )
1 2 2 1 1,
20
1 2 k k k kk k
k
k
x
x
O x
x
O x
∈
< <
∈
∈
∉
ℝ
ℝ
( )
( )
,
i j j ii j
i
j
n
n
O n
n
O n
∈
<
∈
∈
∉
ℕ
ℕ
2006/2007 86Fonctions polynomiales
• Théorème 6 : pour une fonction polynomiale de degré k : On a :
( )
1 2 1 2 1 0 k k k kP n
=
a n
+
a n
− −+ +
…
a n
+
a n
+
a
( )
( )
( )
(
)
k kP n
O n
n
O P n
∈
∈
2006/2007 87
Fonctions exponentielles
2 3:
:
: 2
nd n
x n
w
Fonctions exponentielles
• Théorème 7 :
( )
( )
2
2
2
k n n kk
k
n
O
O n
∈
≥
∈
∉
ℝ
2006/2007 89
Fonctions logarithmiques
( )
:
: ln
x n
o
n
2006/2007 90Fonctions logarithmiques
• Corollaire du théorème 7 :
( )
( )
( )
(
)
ln
ln
n
O n
n
O
n
∈
∉
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) ?
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
2006/2007 95
Exemple 1
Exemple 1
• Que compter ? – Comparaisons ? – Echanges ?2006/2007 97
Exemple 1
• Nombre de comparaisons :
– 1 + 1 + 1 = 3• Complexité :
– O(1) 2006/2007 98Exemple 2
2006/2007 99
Exemple 2
• Pour une sélection :
Exemple 2
• Nombre de comparaisons :
– 2 + Max { 0, 1 + 1 + 1 } = 5
• Complexité :
– O(1)2006/2007 101
Exemple 3
2006/2007 102Exemple 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 !
2006/2007 103
Exemple 4
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 106Exemple 5
2006/2007 107