• Aucun résultat trouvé

Appels de conjectures en cours de preuve

Stratégies de Résolution en Apprenant à partir des Exercices déjà Trouvés

7. Appels de conjectures en cours de preuve

Le système a la possibilité d’appeler des conjectures, guidées par le but en cas de configurations incomplètes permettant d ‘avancer vers une des conclusions partielles à prouver. Un exemple de règle appelant une conjecture se trouve dans la section 7.3.

7.1. Que se passe t’il en cas d’appel ?

De nouveaux concepts sont introduits et des objets créés en fonction de ce que demande la conjecture. Il y a chargement de nouvelles règles et ré-ordonnancement car le système reconstruit une nouvelle liste de règles actives. Pour l’instant tout fait déduit au sein de la conjecture ainsi que les objets créés sont conservés par la suite. Si la conclusion finale est prouvée en milieu de conjecture alors le système sort et la démonstration est terminée. Une conjecture prouvée apparaît comme un nouveau fait déduit et on a mémorisé le sous-arbre ayant permis son émergence. Si il y a échec lors d’un appel, on reprend le fonctionnement global avec éventuellement appels d’autres conjectures. Si Argos a eu besoin de faire appel à une conjecture pour démontrer, il l'indique dans la rédaction de la preuve comme une sorte de question intermédiaire, un lemme, qu'il a dû montrer avant de s'attaquer à l'exercice proprement dit. (voir Annexe5)

7.2. Problèmes

Un appel de conjecture est une démarche typiquement heuristique. Cet appel doit être fait au bon moment. Trop tôt et c’est l’échec, trop tard ça ne sert plus à rien. Il ne faut pas que le démonstrateur s’égare. Il apparaît utile de supprimer les règles de création d’objet lors d’un appel de conjectures et de n’accepter que des règles de création ciblées en fonction de la conclusion. Un mathématicien ne fait pas un appel de conjecture par hasard. Dès le codage de la figure il en émet. Il fonctionne par exemple par analogie. Il a déjà rencontré une situation similaire et il essaye de voir si, sur le problème du moment, cela va fonctionner de la même façon. C’est en fonction de son expérience qu’il fera tel ou tel choix. Comment acquérir la

« certitude » de celui qui « voit » sur la figure et à qui il ne manque que le

cheminement déductif?

7.3. Exemple de règle appelant une conjecture :

Exemple en français: Si on veut montrer que ABCD est un parallélogramme, rectangle, carré ou losange, si le milieu d’une des diagonales existe déjà et qu’un appel de conjecture pour montrer que c’est le milieu de l’autre n’a pas déjà été lancé alors essayer de montrer que c’est aussi le milieu de l’autre diagonale.

Traduction interne :

regle(N, conjecture,_) :- appelConjecture(non), (eltConcl(N, plg(A,B,C,D)) ;eltConcl(N, rect(A,B,C,D)) ;eltConcl(N, losange(A,B,C,D)) ;eltConcl(N, carre(A,B,C,D)) ), (milieu(N,A,C,I,_), not milieu(N,B,D,I,_),

not conj_traite(N, milieu(B,D):I), assert(conj_traite(N, milieu(B,D):I)), X = B, Y = D

; milieu(N,B,D,I,_), not milieu(N,A,C,I,_),

not conj_traite(N, milieu(A,C):I), assert(conj_traite(N, milieu(A,C):I)), X = A, Y = C

),

%écrire ce message sur le brouillon de recherche

que’ ,I,=,mil,'(',X,Y,') pour montrer que’,A,B,C,D,’est un parallélogramme’]),

conj1(N,milieu(X,Y):I,_).

On peut envisager la possibilité de construction automatique d’une telle règle à partir d’énoncés déclaratifs du type ci-dessus. Un utilisateur mathématicien pourra ainsi exprimer des heuristiques qui pourront être transformées en règles, automatiquement, par le système.

8. Apprentissage

8.1. En quoi le système devient-il différent après avoir résolu un exercice?

Après avoir résolu un exercice, ARGOS accomplit un certain nombre de tâches automatiquement.

Il constitue tout d’abord une base de données contenant les règles qui se sont déclenchées, celles qui ont été vraiment utiles à la preuve, les concepts ayant été introduits et utilisés, les concepts figurant dans la partie conclusion, les objets ayant été nécessaires et ayant été créés en cours de preuve, la raison pour laquelle on les a créés et ce à quoi ils ont servi, puis la durée de la démonstration.

Il va alors mettre à jour ses connaissances stratégiques. Il rajoute des liens entre les règles utiles et les concepts de la conclusion sauf s’ils existaient déjà. Il mémorise donc que telle règle est une règle utile pour montrer tel élément de conclusion. Chaque règle possède un poids, mesurant son importance par rapport à un concept conclusif donné. Ce poids est lui aussi mis à jour pour chaque règle ayant été utile.

Ceci va alors permettre une mise à jour des stratégies existantes pour démontrer tel ou tel type de conclusion. Par exemple si telle règle a été utile pour montrer qu’un triangle était équilatéral son poids est augmenté de 1. Ceci pourra entraîner un changement de l’ordre des règles dans la liste correspondant à la stratégie pour montrer qu’un triangle est équilatéral.

8.2. Discussion et problèmes.

Le but de cet apprentissage est bien sûr de modéliser les mécanismes d’apprentissage de l’humain. Un travail énorme reste à faire.

Comment généraliser une technique à partir d’un ou plusieurs exercices résolus de la même façon ? Comment le système pourrait-il s’apercevoir que plusieurs solutions sont du même type ?

Comment découvrir des « schémas » d’utilisation d’une propriété qui pourraient déboucher sur la construction automatique de nouvelles règles à partir d’une connaissance donnée ? Comment l’être humain classifie t-il et réorganise t-il ses connaissances après la recherche d’un nouvel exercice ?

Il faut donc fournir au système des méta-connaissances de contrôle au sens de J. Pitrat [Pitrat 90] qui lui permettent de " monitorer " ses actions d’apprentissage [Pitrat 99]. Il faut que le système « soit capable de juger de la qualité de ce qu’il apprend » [Pintado 94].

Expérimentalement on constate une amélioration du démonstrateur après apprentissage quand il n’a pas eu besoin de créer des objets nouveaux en cours de preuve. Dans le cas contraire comme les règles de création sont en bout de liste de règles actives on ne note aucune amélioration après apprentissage. Il manque au système des stratégies de création d’objets bien ciblées en fonction du but.

Voici un exemple d’exercice posant problème au niveau de l’apprentissage car nécessitant beaucoup de créations d’objets non immédiates.

Exemple:

Soit abd un triangle, e le milieu de [bd] et d le milieu de [bc] et ab = dc. Montrer que les angles géométriques ead et dac sont égaux.

Figure:

Pour montrer que ead = dac ARGOS va devoir créer des objets qui n’apparaissent pas de prime abord même au yeux de l’expert devant la figure à l’état brut. Il doit créer k le milieu de [a, b], l’angle adk, les droites(kd) et (ek) et en plus il devrait penser lui-même à introduire la réflexion d’axe la médiatrice de [ad]. Quelles heuristiques de création d’objet va t-il pouvoir apprendre qui pourront lui être utile dans d’autres situations semblables, sans pour cela générer d’explosion combinatoire dans tous les autres cas ? C’est un problème ouvert qui n’a pas de solution satisfaisante pour le moment. On peut seulement lui donner par exemple l’heuristique suivante :

Si un triangle est isocèle, si le milieu d’un côté autre que la base existe, alors créer son symétrique par rapport à l’axe de symétrie. Ceci pourra servir souvent. Mais on ne peut pas

b e d c

a

créer de façon systématique tout axe de symétrie d’une figure donnée. Pourtant l’expert a toujours ces considérations présentes et prêtes à servir.