Vous êtes sur la page 1sur 3

Modèles d’algorithmes d’optimisation et d’approximation

Forme générale d’un algorithme d’optimisation :


1er cas : problème de maximisation
Fonction nom_fonction (paramètres formels) : type résultat
Début
Initialiser la variable à faire varier (ex : x  0 )
Initialiser la variable à maximiser à zéro généralement (ex : Vmax  0 ) I.
Répéter
• Incrémenter la variable avec un certain pas (ex : x  x + eps )
• A l’aide de cette nouvelle valeur de x , calculer une valeur V (ex : distance, volume, surface, coût, consommation, etc)
Si V > Vmax alors
Vmax  V
II. Mises à jour de la valeur maximale et du x qui l’a engendrée.
x_opt  x
FinSi
Jusqu’à x ≥ à la limite de l’intervalle
Retourner x_opt
Fin
Qu’est ce qui change s’il s’agissait d’un problème de minimisation ?
I. Initialiser la variable à minimiser en lui affectant une valeur très grande
II. Le test change aussi : Si V < Vmin alors
Vmin  V
x_opt  x
FinSi
Forme générale d’un algorithme d’approximation du type : 𝜋, 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑 ′ 𝑜𝑟, 𝑟𝑎𝑐𝑖𝑛𝑒 𝑐𝑎𝑟𝑟é𝑒, 𝑠𝑖𝑛, 𝑐𝑜𝑠, 𝑒𝑡𝑐
Fonction nom_fonction (paramètres formels) : type_résultat
Début
Initialisations diverses ( parmi celles-ci , figure une initialisation du résultat actuel qu’on appellera « nouvelle valeur »)
Répéter
Ancienne valeur  nouvelle valeur
Calcul de « nouvelle valeur » en utilisant l’ancienne valeur et éventuellement d’autres
Jusqu’à abs (nouvelle valeur – ancienne valeur) ≤ epsilon (précision souhaitée)
Retourner la dernière nouvelle valeur calculée
Fin
Forme générale d’un algorithme de calcul de la valeur approchée du zéro d’une fonction
Fonction valeur_approch_zero (a, b, epsilon : réel ) : réel
T.D.O.L
Début
Objet Type / nature
m  (a+b) / 2
m réel
Tant que ( b-a ≥ epsilon) et (f(m) ≠ 0) faire
f fonction
Si f(a) * f(m) < 0 alors # Le zéro se trouve alors dans l’intervalle [a, m]
bm
Sinon # f(a) et f(m) sont de même signe, et par conséquent le zéro se trouve dans [m, b]
am
Fin Si
m  (a+b) / 2 #on calcule un nouveau milieu m
Fin Tant que
Retourner m
Fin

Page 1 sur 3
Forme générale d’un algorithme de calcul de la valeur approchée du point fixe d’une fonction

Fonction point_fixe (epsilon, x0 : réel) : réel


Début T.D.O.L
xn  x0 Objet Type / nature
Répéter xn, xprec réel
xprec  xn f fonction
xn  f (xprec)
Jusqu’à abs (xn – xprec) < epsilon
Retourner xn
Fin

N.B : Dans les deux cas précédents, la fonction f devra faire l’objet d’un algorithme à part.

Page 2 sur 3
Les méthodes de Calcul d’aire (intégrales)
Fonction rectangles_point_gauche (a, b : réel, n : entier) : réel
Début
h(b-a) / n
T.D.O.L
xa Objet T/N
s0 h, s réel
Pour i de 1 à n faire i entier
s s + f (x) f fonction
xx + h
Fin pour
Retourner h*s
Fin
Fonction rectangles_point_droit (a, b : réel, n : entier) : réel
Début
h(b-a) / n
xa + h
s0
Pour i de 1 à n faire
s s + f (x)
xx + h
Fin pour
Retourner h*s
Fin
Fonction rectangles_point_milieu (a, b : réel, n : entier) : réel A retenir :
Début Pour les trois méthodes des rectangles, l’algorithme est
h(b-a) / n le même, sauf au niveau de l’initialisation de x avant la
xa + h/2 boucle « Pour » qui s’écrit respectivement :
s0 • xa (point gauche)
Pour i de 1 à n faire
• xa + h (point droit)
s s + f (x)
• xa + h/2 (point du milieu)
xx + h
Fin pour
Retourner h*s
Fin
Fonction trapèzes ( a, b : réel, n : entier) : réel
Début
h(b-a) / n
xa Comme pour la méthode des rectangles point-gauche
s0
Pour i de 1 à n faire
s s + ( f (x) + f (x+h) ) / 2 La formule de calcul de s est un peu différente des
xx + h trois autres
Fin pour
Retourner h*s
Fin

N.B : Parfois on connait l’intervalle [a, b], donc on se contente du paramètre n (nombre de subdivisions) au niveau
de l’en-tête de la fonction.

Page 3 sur 3

Vous aimerez peut-être aussi