• Aucun résultat trouvé

A partir de ces coecients, les constantes a;b et c se calculent comme suit: a = (a0 ,a1)2 + (a2 ,a3)2 ,a2 4 (7.6) b = 2((a0 ,a1)(b0 ,b1) + (a2 ,a3)(b2 ,b3),a4 b4) (7.7) c = (b0 ,b1)2+ (b2 ,b3)2 ,b2 4 (7.8)

Bien sur cet algorithme n'est pas complet. Il se revele toutefois utile. Il permet par exemple de determiner l'intersection d'une droite et d'un cercle connus. Son inconve-nient est qu'il introduit des erreurs numeriques si le resultat fourni est sous la forme d'un nombre ottant. Pour limiter l'introduction de ces erreurs, une idee consiste a retarder autant que possible les appels a cet agent en s'inspirant du principe de reso-lution naf [Col93] du resolveur du langage de programmation logique avec contraintes PrologIII. Une autre idee consiste, pour rester dans une arithmetique exacte, a integrer dans la representation de tous les nombres construits la racine carree calculee par la resolution du trin^ome comme cela est presente dans le paragraphe 1.3.3.

7.3 Agent intervalle

Nous decrivons dans les paragraphes suivants un agent dit \intervalle". Nous com-mencons par exposer d'une part les objectifs de cet agent et d'autre part l'inter^etd'user d'une telle approche. Puis, nous decrivons succinctement les principes des resolveurs sur intervalles a n d'en faire ressortir des limites. En n, nous illustrons nos propos par un exemple de resolution.

7.3.1 Objectifs de l'agent intervalle

Cet agent a pour charge de determiner par approximations successives les solutions du systeme d'equations issu de la speci cation de la gure suivant une approche sur le domaine des intervalles [Cle87]. Il evalue tous les atomes de propriete (cf tableau 4.1 page 59).

Les inter^ets de cette approche sont multiples. Tout d'abord, elle permet de taquer a des problemes de construction diciles qualitativement, c'est-a-dire de s'at-taquer a des gures contenant peu d'objets relies entre eux principalement par des contraintes geometriques se traduisant par des equations quadratiques. Un autre avan-tage de cette approche est qu'elle est correcte, c'est-a-dire qu'elle n'introduit par

d'er-122 Agents mis en oeuvre

reur de calcul. En n, cette approche est en general rapide [LGRT96].

7.3.2 Resolveurs sur intervalles

L'idee fondamentale des resolveurs sur intervalles est de manipuler des variables auxquelles sont associees non plus uniquement une valeur exacte, mais un domaine de valeurs, un intervalle.

L'inter^et des methodes de calculs sur intervalles est double. D'une part, elles four-nissent un ou une union d'intervalles resultats en garantissant l'encadrement de la ou des solutions correctes. D'autre part, elle permettent de s'attaquer a de nouveaux problemes et d'etudier non plus seulement des valeurs particulieres de variables, mais les domaines de variation de ces dernieres.

Pour ce faire, l'algorithme de consistance [Dav87, LR97, CDR98] generalement utilise est un algorithme de point xe de type AC-3 [Mac77]. Cet algorithme est decrit dans le tableau 7.1. Dans cet algorithme, la fonction ~C est l'extension aux intervalles de la fonction de calcul associee a la contrainte C. La notation D; represente les domaines des variables reduit au domaine vide. Ceci se produit lorsque le systeme de contraintes est inconsistant.

1 Filtrage(C1, :::, Cn: contraintes,

2 D: domaines des variables des contraintes) 3

4 queue f C1,:::, Cn g

5

Tant Que

D 6= D;

et

queue6=;

Faire

6 DepilerContrainte(queue, C) 7 D0 ~C(D) 8

Si

D0 6 = D

Alors

9 queue queue[ f C0 jC0 2 f C1,:::, Cn g^ C0 6 = C ^ 10 var(C)\ var(C0) 6=; g 11 D D0 14

FinSi

15

FinTantQue

16 Filtrage D

Tab.7.1 { Algorithme de propagation d'intervalles.

Une premiere limite de cette approche est qu'elle peut conduire a une explosion combinatoire. En e et, les extensions des fonctions de calcul associees aux contraintes

7.3 Agent intervalle 123

ne preservant pas toujours la convexite des domaines, comme par exemple la division, il s'ensuit que les domaines calcules par la fonction ~C ne sont pas un domaine mais une union de domaines, generant ainsi des points de choix. Pour pallier a cette limite, une idee consiste a approcher cette union par un intervalle englobant [Lho93, Ben94, BMvH94, BO97].

Une fois un point xe atteint, une possibilite pour obtenir des domaines reduits pour les di erentes variables consiste a avoir recours a des enumerations d'intervalles. Par de telles enumerations, on force le resolveur a tenter de nouveau de reduire les bornes du domaine d'une variable sur une premiere moitie de ce dernier, puis sur l'autre.

En n, une autre limite de cette approche reside dans sa tres grande dependance vis-a-vis de la forme des contraintes1 comme l'illustre l'exemple 7.1.

Exemple 7.1

Dependance des approches sur les intervalles

Le calcul du domaine de la fonction :

f(x) = x,x avec x2[0;1]

donne f(x) 2 [,1;1] alors qu'il para^t facile de deduire que le domaine de f(x) est reduit a 0. Ceci est lie a l'interpretation de la fonction f(x) comme etant la fonction

f(x) = x,y avec x;y2[0;1].

Pour pallier a cette limite, une idee consiste a user d'algorithmes formels comme nous l'avons presente dans le chapitre 2.

7.3.3 Exemple de resolution sur intervalles

A n d'illustrer l'inter^et de la de nition de cet agent, nous considerons le probleme suivant seulement soluble par ce dernier.

Exemple 7.2

Resolution sur intervalles

Construire un triangle ABM a partir de l'angle AMB\ et de la longueur des me-dianes issues des sommets A et B. La gure 7.2 illustre le resultat attendu.

Le systeme algebrique (S) correspondant a cet enonce est le suivant :

124 Agents mis en oeuvre

Fig. 7.2 { Triangle determine par un de ses angles et les longueurs de ses medianes opposees. yM = 2xM (7.9) yM = 12xM + 32 (7.10) yA = 2xA (7.11) yB = 12xB+ 32 (7.12) 2xMAM = xM +xA (7.13) 2yMAM = yM +yA (7.14) 2xMB M = xM +xB (7.15) 2yMB M = yM +yB (7.16) (xA,xMB M)2+ (yA ,yMB M)2 = 32 (7.17) (xB,xMAM)2+ (yB,yMAM)2 = 32 (7.18) (7.19)