Vous êtes sur la page 1sur 10

Chapitre7 : Les algorithmes d'approximation

Les algorithmes d'approximation


Prsentation

I-

Un algorithme d'approximation permet de dterminer des valeurs approches de


la solution de certains problmes dont on ne peut pas dterminer 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 problme de minimisation ou de maximisation.
Remarque :
Un algorithme d'approximation ne peut pas trouver une solution optimale.

II-

Problmes d'optimisation
1. Activit :

Soit un triangle quilatral dont le cot mesure a en cm. On inscrit dans ce


triangle un rectangle MNPQ.

a
Q

On pose BM=x

B
x M
N
C
On se propose de dterminer la valeur de x tel que laire du rectangle soit
maximale.
2. Solution :
SR = long * larg = MN * MQ = ((a-2x)*MQ
MQ = ?
1er mthode
tg(angle MBQ)=tg(60)=QM/x= racine_carre(3)
QM=racine_carre(3) * x
Do S=racine_carre(3)*x * (a-2x)
S=a*racine_carre(3)*x-2*racine_carre(3) * x

Page -1-

Chapitre7 : Les algorithmes d'approximation

2me mthode
Sin 60 =

/2

Sin 60= cot oppose / hypotinus = MQ/BQ


3

MQ/BQ =

/2 MQ =

/2 * BQ

Thorme de Talas
AQ/AB=AP/AC=QP/BC
AQ/a=(a-2x)/a
AQ=a-2x QB=a-(a-2x)=2x
MQ =

/2 * 2x =

Conclusion :
SR = (a-2x)*MQ
= (a 2X) *

Analyse de programme principal


Rsultat = crire ("La valeur de x = ", Xmax, "donne une surface = ",Smax)
Proc Recherche (a, pas, xmax, Smax)
a= donne
Pas = donne

Algorithme de programme principal


0) Dbut 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,

Rel

Smax

procdure

Recherche

Page -2-

Chapitre7 : Les algorithmes d'approximation

Analyse de la procdure Recherche


[X 0, Smax 0]
Rpter
X x + pas
S (a-2x)*

Si S > Smax

alors Smax S

Xmax X
Finsi
Jusqu (x > = a/2)

Algorithme de la procdure Recherche


0) DEF PROC Recherche (a, pas : rel ; Var Xmax, Smax : rel)
1) X 0

T.D.O
Objets

2) Smax 0
X, S

3) Rpter

Type / nature
Rel

X x + pas
S (a-2x)*

Si S > Smax

alors

Smax S

Xmax X
Finsi
Jusqu (x > = a/2)
4) Fin Recherche

III-

Problmes d'optimisation
1. 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) paralllement (AC)


P est la projection de N sur (AC) paralllement (AB)

B
M

3 Cm
X

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
2. Solution :

Pour rsoudre ce problme, on va suivre la dmarche 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 trs proche de 1 cm2.
Laire 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
Do laire de rectangle AMNP = x * (2 2/3 * x)
= 2 * x 2/3 x2 = 1

Analyse de programme principal


Rsultat =
crire ("La meilleur solution avec ce pas de variation est pour x = ", x, "
laire = ", A)
Proc recherche (P, x, A)
P = donne

Algorithme de programme principal


0) Dbut Rectangle
1) Ecrire ("Donner la valeur du pas : ")

Lire (P)

2) Proc recherche (P, x, A)

Objets
P, x, A
Valeur_x

T.D.O
Type/Nature
Rel
Fonction

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

Page -4-

Chapitre7 : Les algorithmes d'approximation

Analyse de la procdure recherche


Rsultat = [..]
[x 0] Rpter
x x+P
A 2 * x - 2/3 * x * x
Jusqu' (A >= 1)

Algorithme de la fonction valeur_x


0) DEF proc recherche (P : rel ; var A, X : rel)
1) x 0
2) Rpter
xx+P
A 2 * x - 2/3 * x * x
Jusqu' (A >= 1)
3) Fin recherche

IV-

Applications

Application N1 : Dans une feuille de carton carre de 10 cm de cot, on dcoupe


aux quatre coins quatre carrs de cot X de telle faon quen relevant les quatre
bords restants, on obtienne une boite de forme paralllpipdique.
On veut trouver la valeur de X telle que le volume de la boite ainsi forme soit
maximum.

10 Cm

NB : Le volume du paralllpipdique = surface de base * hauteur


Page -5-

Chapitre7 : Les algorithmes d'approximation

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

Solution :

Analyse de programme principal


Rsultat = Ecrire ("La meilleur solution avec ce pas de variation est pour X = ", X,
"le volume = ", V)
Proc recherche (P, X, V)
P = donne

Algorithme de programme principal


0) Dbut Volume_Max
1) Ecrire ("Donner la valeur du pas : "), Lire (P)
2) Proc recherche (P, X, V)
3) Ecrire ("La meilleur solution avec ce pas de

T.D.O
Type/Nature
Rel
Procdure

Objets
P, X, V
recherch
e

variation est pour X = ", X, "le volume = ", V)


4) Fin Volume_Max

Analyse de procdure recherche


Rsultat = [..]
[X 0, Vmax 0]
Rpter
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 procdure Recherche


0) DEF PROC Recherche ( pas : rel ; Var Xmax, Vmax : rel)

T.D.O

1) X 0

Objets

2) Vmax 0

X, S

3) Rpter
X x + pas

V (10 2 * x) * (10 2 * x) * x

Si V > Vmax

alors

Vmax V

Page -6-

Type / nature
Rel

Chapitre7 : Les algorithmes d'approximation

Xmax X
Finsi
Jusqu (x > = 5)
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;

xmax:=x;

var 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 N2 : Un disque de rayon R=5 cm est tangent

deux disques intrieurs tangents entre eux.


Les trois centres sont aligns. On veut dterminer la valeur

r2

r1

du rayon dun des deux disques intrieurs pour que laire


comprise entre le grand disque et les disques intrieurs soit
maximum.
On se propose de dterminer une valeur approche du

R=5

rayon.
R = r1 + r2 = 5 r2 = 5 r1
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

Page -7-

T.D.O

Objet
Pas, rmax,

Type
Rel

smax

procdur

recherche

Chapitre7 : Les algorithmes d'approximation

0) Dbut Surface_vide
1) Ecrire ("Introduire une valeur de pas")
Lire (pas)
2) Proc recherche (pas, rmax, smax)
3) Ecrire ("Le rayon = ", rmax, " donne une surface vide =", Smax)
4) Fin Surface_vide

Algorithme de la procdure recherche


0) Procdure Calcul (pas : rel; Var rmax, smax : rel)
1) r1 0
2)

T.D.O

Smax 0

Obje

3) Rpter

t
r1, s
Pi

r1 r1+ pas
S -2*Pi*r1*r1 + 10*Pi *r1

Type
rel
Constante =
3.14

Si (S >Smax) Alors
smax S
rmax r1
Finsi
Jusqu (r1 >= 2.5)
4) Fin Calcul

Application N3 :
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 primtre soit gal 5
cm.

x
y

Page -8-

Chapitre7 : Les algorithmes d'approximation

Algorithme de programme principal


0) Dbut dimension
1) Ecrire (" la valeur de pas ", Pas)

Lire (Pas)

2) Proc Recherche (pas, xmax, Pmax)


3) Ymax = 2- Xmax
4) crire ("La valeur de x = ", Xmax, ", la valeur de y = Ymax", donne un
primtre = ",Pmax)
5) Fin Calcul_surface

T.D.O
Objets

Type / nature

Pmax, pas,

Rel

xmax, Ymax

procdure

Recherche

Analyse de la procdure Recherche

[X 0]
Rpter
X x + pas
P 2*(x +

16 x 2 )

Jusqu (P > = 5)

Algorithme de la procdure Recherche


0) DEF PROC Recherche (pas : rel ; Var x, P : rel)
1) X 0
2) Rpter
X x + pas
P 2*(x +

16 x 2 )

Jusqu (P > = 5)
3) Fin Recherche

Programme Pascal
program perimitre_maximale;

procedure recherche (p:real;

uses wincrt;

var s,x:real);

var p,x,s:real;

begin

Page -9-

Chapitre7 : Les algorithmes d'approximation

x:=0;

write('saisir un entier '); read(p);

repeat

recherche(p,s,x);

x:=x+p;

writeln('la valeur de x = ',x:10:6,'la

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

valeur de y = ',sqrt(16-sqr(x)):10:6);

until(s>=5);

write(' pour donner une surface

end;

maximale = ',s:10:6);

begin

end.

Page -10-