Vous êtes sur la page 1sur 10

Chapitre7 : Les algorithmes d'approximation

Les algorithmes d'approximation


I. Présentation

 Un algorithme d'approximation permet de déterminer des valeurs approchées de la solution


de certains problèmes dont on ne peut pas déterminer la valeur exacte de la solution.

Exemple : cas de calculer de la constant Pi

 Un algorithme d'optimisation permet de trouver une solution optimale (meilleur) à un


problème de minimisation ou de maximisation.
Remarque :
Un algorithme d'approximation ne peut pas trouver une solution optimale.

II. Problèmes d'optimisation


1. Activité :
Soit un triangle équilatéral dont le coté mesure a en cm. On inscrit dans ce triangle un
rectangle MNPQ.
A

a
Q P

On pose BM=x B x M N C
On se propose de déterminer la valeur de x tel que l’aire du rectangle soit maximale.
2. Solution :
SR = long * larg = MN * MQ = ((a-2x)*MQ
MQ = ?
1er méthode
tg(angle MBQ)=tg(60)=QM/x= racine_carrée(3)
QM=racine_carrée(3) * x
D’où S=racine_carrée(3)*x * (a-2x)
 S=a*racine_carrée(3)*x-2*racine_carrée(3) * x²

Page -1-
Chapitre7 : Les algorithmes d'approximation

2ème méthode

Sin 60 = 3 /2
Sin 60= coté opposée / hypotinus = MQ/BQ

 MQ/BQ = 3 /2  MQ = 3 /2 * BQ
Théorème de Talas
AQ/AB=AP/AC=QP/BC
AQ/a=(a-2x)/a
AQ=a-2x  QB=a-(a-2x)=2x

 MQ = 3 /2 * 2x = 3 x
Conclusion :
SR = (a-2x)*MQ
= (a – 2X) * 3 x

Analyse de programme principal

Résultat = écrire ("La valeur de x = ", Xmax, "donne une surface = ",Smax)
Proc Recherche (a, pas, xmax, Smax)
a= donnée
Pas = donnée

Algorithme de programme principal


0) Début Calcul_surface
1) Ecrire (" la longueur de cote ", a) Lire (a)
2) Ecrire (" la valeur de pas ", Pas) Lire (Pas)
3) Proc Recherche (a, pas, xmax, Smax)
4) écrire ("La valeur de x = ", Xmax, "donne une surface = ",Smax)
5) Fin Calcul_surface
T.D.O
Objets Type / nature

a, pas, xmax, Smax Réel


Recherche procédure

Page -2-
Chapitre7 : Les algorithmes d'approximation
Analyse de la procédure Recherche
[X  0, Smax  0]
Répéter
X  x + pas

S  (a-2x)* 3 x
Si S > Smax alors Smax  S
Xmax  X
Finsi
Jusqu’à (x > = a/2)

Algorithme de la procédure Recherche


0) DEF PROC Recherche (a, pas : réel ; Var Xmax, Smax : réel)
1) X  0 T.D.O
2) Smax  0 Objets Type / nature
3) Répéter X, S Réel
X  x + pas

S  (a-2x)* 3 x
Si S > Smax alors Smax  S
Xmax  X
Finsi
Jusqu’à (x > = a/2)
4) Fin Recherche

III. Problèmes d'optimisation


3. Activité : Soit un triangle ABC rectangle en A tel que AB = 3 cm et AC = 2 cm, on
place un point M sur le segment [AB] tel que AM = x.
N est la projection de M sur (BC) parallèlement à (AC)
P est la projection de N sur (AC) parallèlement à (AB)

M N
3 Cm
X

A P C
2 Cm
Page -3-
Chapitre7 : Les algorithmes d'approximation

On veut trouver la valeur (ou les valeurs) de x tel que AMNP ait pour aire 1 Cm 2
4. Solution :
 Pour résoudre ce problème, on va suivre la démarche suivante :
 Exprimer l'aire du rectangle AMNP en fonction de x,
 Ecrire l'algorithme d'une fonction permettant de trouver les valeurs de x qui donne
une aire très proche de 1 cm2.
L’aire de rectangle AMNP = AM * AP
= x * AP (on pose AP =y)
=x*y
Aire de triangle ABC = aire de triangle PCM + aire de triangle MNB + aire de rectangle AMNP
= (PN * PC) + (MB * MN) + x * y
= (x * (2 – y)/2) + (y * (3 – x) /2) + x * y
= x – (x * y)/2 + 3/2 * y – (x * y)/2 + x * y
= x + 3/2 * y
=3
 y = 2 – 2/3 * x
D’où l’aire de rectangle AMNP = x * (2 – 2/3 * x)
= 2 * x – 2/3 x 2 = 1

Analyse de programme principal

Résultat =
Écrire ("La meilleur solution avec ce pas de variation est pour x = ", x, " l’aire = ", A)
Proc recherche (P, x, A)
P = donnée

Algorithme de programme principal


0) Début Rectangle T.D.O
Objets Type/Nature
1) Ecrire ("Donner la valeur du pas : ") Lire (P) P, x, A Réel
2) Proc recherche (P, x, A) Valeur_x Fonction

3) Ecrire ("La meilleur solution avec ce pas de variation est pour X = ", X, "l’aire = ", A)
4) Fin Rectangle

Page -4-
Chapitre7 : Les algorithmes d'approximation
Analyse de la procédure recherche
Résultat = [..]
[x  0] Répéter
x x+P
A  2 * x - 2/3 * x * x
Jusqu'à (A >= 1)

Algorithme de la fonction valeur_x


0) DEF proc recherche (P : réel ; var A, X : réel)
1) x  0
2) Répéter
xx+P
A  2 * x - 2/3 * x * x
Jusqu'à (A >= 1)
3) Fin recherche

IV.Applications
Application N°1 : Dans une feuille de carton carrée de 10 cm de coté, on découpe aux
quatre coins quatre carrés de coté X de telle façon qu’en relevant les quatre bords restants,
on obtienne une boite de forme parallélépipédique.
On veut trouver la valeur de X telle que le volume de la boite ainsi formée soit maximum.
10 Cm

NB : Le volume du parallélépipédique = surface de base * hauteur


= (10 - 2 * X) * (10 - 2 * X) * X

Page -5-
Chapitre7 : Les algorithmes d'approximation

Solution :
Analyse de programme principal
Résultat = Ecrire ("La meilleur solution avec ce pas de variation est pour X = ", X, "le volume
= ", V)
Proc recherche (P, X, V)
P = donnée

Algorithme de programme principal


0) Début Volume_Max T.D.O
1) Ecrire ("Donner la valeur du pas : "), Lire (P) Objets Type/Nature
P, X, V Réel
2) Proc recherche (P, X, V)
recherche Procédure
3) Ecrire ("La meilleur solution avec ce pas de
variation est pour X = ", X, "le volume = ", V)
4) Fin Volume_Max

Analyse de procédure recherche


Résultat = [..]
[X  0, Vmax  0]
Répéter
X  x + pas
V  (10 – 2 * x) * (10 – 2 * x) * x
Si V > Vmax alors Vmax  V
Xmax  X
Fin si
Jusqu’à (x > = 5)

Algorithme de la procédure Recherche


0) DEF PROC Recherche ( pas : réel ; Var Xmax, Vmax : réel)
1) X  0 T.D.O
Objets Type / nature
2) Vmax  0
X, S Réel
3) Répéter
X  x + pas V  (10 – 2 * x) * (10 – 2 * x) * x
Si V > Vmax alors Vmax  V
Xmax  X
Finsi
Jusqu’à (x > = 5)

Page -6-
Chapitre7 : Les algorithmes d'approximation
4) Fin Recherche

Programme Pascal
program surface_maximale; if s>smax then
uses wincrt; begin
var p,xmax,smax:real; smax:=s;
procedure recherche (p:real; var xmax:=x;
xmax, smax:real); end;
var until(x>=5/2);
x,s:real; end;
begin begin
x:=0; write('saisir un entier '); read(p);
s:=0; recherche(p,xmax,smax);
repeat writeln('la valeur de x = ',xmax:10:6,' pour
donner une surface maximale =
',smax:10:6);
x:=x+p; end.
s:=s+sqr(10-2*x)*x;
Application N°2 : Un disque de rayon R=5 cm est tangent à deux
S
disques intérieurs tangents entre eux.
Les trois centres sont alignés. On veut déterminer la valeur du rayon r1 r2
d’un des deux disques intérieurs pour que l’aire comprise entre le
grand disque et les disques intérieurs soit maximum.
On se propose de déterminer une valeur approchée du rayon.
R = r1 + r2 = 5  r2 = 5 –r1 R=5
S = 25 П - (r12 П + (5-r1)2 П )

S = 25 П - r12 П - (25 – 10 r1 + r12) П

S = 25 П - r12 П - 25 П + 10r1 П –r12 П

S=- 2 П r12 + 10 П r1
à Variation de r1 ] 0 , r/2]
Algorithme de programme principal
0) Début Surface_vide T.D.O
1) Ecrire ("Introduire une valeur de pas") Objet Type
Lire (pas) Pas, rmax, smax Réel

2) Proc recherche (pas, rmax, smax) recherche procédure

Page -7-
Chapitre7 : Les algorithmes d'approximation
3) Ecrire ("Le rayon = ", rmax, " donne une surface vide =", Smax)
4) Fin Surface_vide

Algorithme de la procédure recherche


0) Procédure Calcul (pas : réel; Var rmax, smax : réel)
1) r1  0
2)
T.D.O
Smax  0
Objet Type
3) Répéter
r1, s réel
r1  r1+ pas Pi Constante = 3.14
S  -2*Pi*r1*r1 + 10*Pi *r1
Si (S >Smax) Alors
smax  S

rmax  r1
Finsi
Jusqu’à (r1 >= 2.5)
4) Fin Calcul
Application N°3 :
Soit C un cercle de rayon r=2cm.
On construit un rectangle ABCD inscrit dans C.
On veut trouver les dimensions du rectangle pour que son périmètre soit égal à 5 cm.

r
y

Algorithme de programme principal


0) Début dimension
1) Ecrire (" la valeur de pas ", Pas) Lire (Pas)
2) Proc Recherche (pas, xmax, Pmax)
3) Ymax = 2- Xmax

Page -8-
Chapitre7 : Les algorithmes d'approximation
4) écrire ("La valeur de x = ", Xmax, ", la valeur de y = Ymax", donne un périmètre =
",Pmax)
5) Fin Calcul_surface

T.D.O
Objets Type / nature

Pmax, pas, xmax, Réel


Ymax procédure
Recherche
Analyse de la procédure Recherche
[X  0]
Répéter
X  x + pas
P  2*(x + 16  x 2 )

Jusqu’à (P > = 5)

Algorithme de la procédure Recherche


0) DEF PROC Recherche (pas : réel ; Var x, P : réel)
1) X  0
2) Répéter
X  x + pas
P  2*(x + 16  x 2 )

Jusqu’à (P > = 5)
3) Fin Recherche

Programme Pascal

program perimitre_maximale; s:=s+2*x+sqrt(16-sqr(x));


uses wincrt; until(s>=5);
var p,x,s:real; end;
procedure recherche (p:real; var begin
s,x:real); write('saisir un entier '); read(p);
begin recherche(p,s,x);
x:=0; writeln('la valeur de x = ',x:10:6,'la valeur
repeat de y = ',sqrt(16-sqr(x)):10:6);
x:=x+p;

Page -9-
Chapitre7 : Les algorithmes d'approximation
write(' pour donner une surface maximale = end.
',s:10:6);

Page -10-

Vous aimerez peut-être aussi