• Aucun résultat trouvé

Avant de de nir la classe des gures pour laquelle une telle approche cooperative est complete,il convient de rappeler que celle-cise base sur les agents lineaire,quadratique, intervalle, completion d'objets et completion de proprietes. En e et, souvenons-nous que l'agent regle et compas considere comme hypothese que la gure est constructible numeriquement. C'est-a-dire que si un plan de construction d'une gure dynamique a pu ^etreetabli, alors cette gure dynamiqueest constructible numeriquement.Toutefois, la reciproque n'est pas vraie. C'est pourquoi la classe des gures constructibles par l'agent regle et compas est incluse dans celle d'une telle approche cooperative.

Il sembleclair que la classe des gures constructibles par cette approche cooperative est au moins egale a l'union des classes des gures constructibles par chacun des agents considere individuellement. Sur ce point, nous pouvons dire que la classe des gures constructibles par l'agent lineaire est celle des gures ayant une speci cation lineaire ou devenant lineaire suite a la resolution d'une partie du systeme puisqu'il s'appuie sur l'algorithme d'elimination de Gauss augmente [Col93] complet pour cette classe de systemes d'equations.

En fait, il est possible de de nir une autre classe de gures pour laquelle cette ap-proche cooperative est complete. Cette classe de gures est celle des gures de nies par une speci cation \constructive", c'est-a-dire celle des gures de nies par une speci ca-tion qui contient tous les objets et toutes les proprietes necessaires a une construcspeci ca-tion

8.4 Completude de la resolution 163

a la regle et au compas [Bou97].

Proposition 8.1

3 Completude des specifications constructives

Notre approche cooperative est complete pour la classe des speci cations construc-tives.

Demonstration : Pour montrer que notre approche est complete pour la classe des speci cations constructives, il faut montrer que les agents presents sont capables de realiser toutes les constructions elementaires geometriques. Ces constructions elemen-taires sont les suivantes:

{ construction d'une droite passant par deux points. Ceci se resume a resoudre un systeme de 2 equations lineaires en les 2 inconnues m etp du type:

y1 = mx1+p (8.1)

y2 = mx2+p (8.2)

soluble par l'agent lineaire.

{ construction d'un cercle de centre donne et passant par un point. Ceci se resume a resoudre un systeme d'une equations quadratique en l'inconnue r du type:

(x1

,x2)2+ (y1

,y2)2 =r2 (8.3)

soluble par l'agent quadratique.

{ construction d'une droite parallele a une droite et passant par un point. Ceci se resume a resoudre un systeme de 2 equations lineaires en les 2 inconnues m etp

du type:

y1 = mx1+p (8.4)

m = m0 (8.5)

soluble par l'agent lineaire.

{ construction d'une droite perpendiculaire a une droite et passant par un point. Ceci se resume a resoudre un systeme de 2 equations lineaires en les 2 inconnues m

164 Modele de cooperation

etp du type:

y1 = mx1+p (8.6)

m = 1m0 (8.7)

soluble par l'agent lineaire.

{ construction du point milieu de deux points.Ceci se resume a resoudre un systeme de 2 equations lineaires en les 2 inconnues x et y du type:

2x = x1+x2 (8.8)

2y = y1+y2 (8.9)

soluble par l'agent lineaire.

{ construction du symetrique d'un point par rapport a un autre point. Ceci se resume a resoudre un systeme de 2 equations lineaires en les 2 inconnuesx ety du type:

2x1 = x + x2 (8.10)

2y1 = y + y2 (8.11)

soluble par l'agent lineaire.

{ construction de l'intersection de deux droites.Ceci se resume a resoudre un systeme de 2 equations lineaires en les 2 inconnues y et x du type:

y = m1

x + p1 (8.12)

y = m2

x + p2 (8.13)

soluble par l'agent lineaire.

{ construction de l'intersection d'une droite et d'un cercle.Ceci se resume a resoudre un systeme d'une equation lineaires et d'une equation quadratique en les 2 in-connues y et x du type:

y = mx + p (8.14)

(x,x1)2

+ (y,y1)2 = r2 (8.15) soluble par la cooperation des agents lineaire et quadratique.

8.4 Completude de la resolution 165

{ construction de l'intersection de deux cercles.Ceci se resume a resoudre un systeme de 2 equations quadratiques en les 2 inconnues y etx du type:

(x,x1)2+ (y,y1)2 = r2 (8.16) (x,x2)2+ (y,y2)2 = r2 (8.17) soluble par la cooperation des agents lineaire,quadratique et completiond'objets. En e et, l'ajout par l'agent de completion d'objets de la corde commune aux 2 cercles, c'est-a-dire d'une equation lineaire redondante en les variables x et y, reduit ce probleme a celui de la construction de l'intersection d'une droite et d'un cercle.

2

Au dela de la classe des gures ayant une speci cation constructive, nous devons nous poser le probleme de la completude de notre approche cooperative pour la classe des gures ayant une speci cation \constructive par l'ajout de proprietes redondantes". Cette classe est celle des gures dont les speci cations contiennent tous les objets, mais possiblement pas toutes les proprietes necessaires a une construction a la regle et au compas.

Pour montrer que notre approche est complete pour cette nouvelle classe de gures, il faut montrer que l'agent completion de proprietes est en mesure de prouver la validite de toutes proprietes redondantes. Pour montrer ceci, il faut prouver d'une part que la theorie de la geometriesur laquelle il s'appuie est coherente et complete,et d'autre part que le demonstrateur automatique utilise est complet. La completude refutationnelle dans le cadre d'une logique propositionnelle du demonstrateur que nous utilisons a ete demontree par Ostier P [Ost97b]. Malheureusement m^eme si nous le pensons, il n'est pas evident de montrer que la theorie de la geometrie sur laquelle il s'appuie est coherente. Celle-ci est donnee dans l'annexe A de ce manuscrit. En n, elle ne semble pas complete aussi.

Pour nir, nous pouvons armer que la classe des gures constructibles par notre approche cooperative est plus importante encore. Par exemple, les exercices 26 et 55 traites et detailles dans l'annexe B en sont la preuve. Malheureusement, il est dicile de l'apprehender avec exactitude. La raison de cette diculte reside dans l'agent intervalle. Il n'est pas facile en e et de determiner a priori si les methodes d'enumeration d'intervalles conduisent a des domaines susamment reduits ou non.

Chapitre 9

Mise en oeuvre de la cooperation

L

a mise en uvre des agents de resolution de contraintes geometriques de GD-Rev constitue une partie centrale de notre travail. L'expose des resultats obtenus dans le chapitre suivant, est distine a montrer l'inter^et pratique d'une telle approche.

Nous decrivons dans ce chapitre les principaux aspects de la mise en uvre des di erents agents impliques dans GDRev et de leurs cooperations. Nous justi ons dans la section 9.1 le choix du langage de programmation utilise. Nous descrivons dans la section 9.2 la mise en uvre du contr^ole des agents. Nous detaillons dans la section 9.3 la mise en uvre des di erents agents. Nous decrivons dans la section 9.4 les aspects de la mise en uvre du langage ELDL. En n, nous indiquons dans la section 9.5 les aspects quantitatifs importants relatifs a cette mise en uvre.

9.1 Choix du langage de developpement

Pour mettre en uvre les di erents agents du processus cooperatif de resolution de contraintes geometriques, il a fallu choisir un langage de programmation parmi les langages de programmation avec contraintes. En e et, de par leur caractere declaratif, de tels langages de programmation semblent a priori particulierement bien adaptes a l'expression de contraintes geometriques. Ils excluent directement l'usage d'un langage de programmation imperatif qui auraient reclame la reprogrammation de resolveurs deja presents dans les langages de programmation avec contraintes.

Notre choix c'est porte sur le langage de programmation avec contraintes Prolog IV. Il a etepreferea des langages dits concurrents avec contraintes commeCC(FD) [vHSD93] ou OZ [Smo95] dans la mesure ou il integre un resolveur de contraintes lineaires exact

168 Mise en oeuvre de la cooperation

et aussi un resolveur non lineaire sur intervalles. Cette double integration facile gran-dement la mise en uvre en evitant des problemes d'interoperabilites. Elle permet ainsi de de nir l'ensemble du processus dans le m^eme langage de programmation.

L'absence de caractere concurrent ache de Prolog IV est compensee par la pre-sence du predicat de gelfreeze/2 qui permet de de nir un contr^ole de type concurrent. Rappelons que ce predicat permet de retarder l'execution du but contenu dans son deuxieme argument tant que la valeur de l'etiquette de son premier argument n'est pas connue. En n, la disponibilite de Prolog IV sur les machines PC et Sun est un atout non negligeable pour une large experimentation.