• Aucun résultat trouvé

CHAPITRE 5 ÉVALUATION DES DÉMONSTRATIONS ET ORDONNANCEMENT

5.5 Ordonnancement des inférences

5.5.3 Description de l’algorithme d’ordonnancement proposé

Le but de notre algorithme étant d’ordonner des inférences et non des noeuds individuels, il a été nécessaire de proposer une métrique qui représente le moment d’activation de celles-ci. Nous avons décidé de regrouper les temps d’activation des noeuds formant l’inférence sous forme d’une liste ordonnée de valeurs triées en ordre décroissant. La structure LA(hA, J, Ci) représente donc cette liste pour chaque inférence.

LA(hA, J, Ci) = Trier([t | hn, ti ∈ TA(HP DIC) ∧ (n ∈ A ∨ n = J ∨ n = C)]) (5.12)

Pour la séquence d’actions citée précédemment, le tableau 5.1 présente les LA(i) pour chaque inférence (i) acceptée pour la résolution du problème du rectangle. Dans ce tableau, les co- lonnes en gris correspondent aux inférences faisant partie de la solution la plus avancée, qui est surlignée en jaune dans la figure 5.6. Notre algorithme d’ordonnancement distingue trois types d’inférence qui sont définis selon le contenu du LA(i) associé. Le premier type, soit EI, est constitué des inférences que l’élève n’a pas encore travaillées, donc tous les temps

d’activations associés sont égaux à -1. Dans notre exemple, seul λ2 fait partie de ce type. Nous avons, à l’autre extrême, les inférences complétées, soit celles qui n’ont aucun temps d’activation de -1, par exemple λ1a. Celles-ci ne sont pas traitées par notre algorithme d’or- donnancement, car aucune aide n’est nécessaire pour les compléter étant donné qu’elles le sont déjà. Toutes les autres inférences sont partiellement complétées et sont alors de type PI. Ces dernières sont importantes, car ce sont celles pour lesquelles l’élève a proposé quelques énoncés, mais qu’il n’a pas réussi à compléter, donc l’aide du tuteur est potentiellement utile et même nécessaire.

Tableau 5.1 Listes des temps d’activation à la suite d’une séquence d’actions i λ3b λ4 λ5 λ7 λ8c λ1b λ6 λ8b λ3a λ8d λ8a λ2 λ1a LA(i) 9 9 8 8 8 8 8 7 7 5 5 -1 9 3 -1 7 7 5 4 -1 5 -1 3 1 -1 8 -1 -1 6 3 1 3 -1 1 -1 1 -1 -1 7 -1 -1 3 1 -1 -1 -1 -1 -1 -1 -1 4 -1 -1 -1 -1 Type PI PI PI PI PI PI PI PI PI PI PI EI -

Dans le but d’ordonner les listes d’activation des inférences obtenues, nous avons choisi d’utiliser une méthode similaire à celle utilisée pour ordonner les mots dans un dictionnaire. Nous proposons donc un comparateur de type lexicographique défini comme suit :

a <lexb : Si | a |=| b | alors (a1, ..., ak) <lex (b1, ..., bk) ↔ a1 < b1∨ [a1 = b1∧ (a2, ..., ak) <lex (b2, ..., bk)] Si | a |6=| b | alors (a1, ..., ap) <lex(b1, ..., bq) ↔ (a1, ..., am) <lex(b1, ..., bm) ∨ [(a1, ..., am) = (b1, ..., bm) ∧ m < p] m = min(p, q) (5.13)

Celui-ci compare donc, de façon séquentielle, les temps d’activation ayant des rangs identiques dans les LA(i) jusqu’à ce qu’une différence soit trouvée. À ce moment, on retourne le résultat de la simple comparaison de la valeur des deux temps. Si les deux listes sont de tailles différentes et que tous les éléments comparables sont identiques, nous avons décidé, à l’opposé de la règle du dictionnaire, de classer les inférences dans l’ordre inverse de la cardinalité des

LA(i). Pour bien comprendre ce choix, il faut savoir que la liste ordonnée d’inférence sera

énoncés. Cependant, lorsque deux inférences ont des temps d’activation identiques, mais que l’une contient moins de noeuds que la seconde, nous proposons de travailler sur la première en priorité, car elle requiert moins de travail de la part de l’élève pour la compléter. Par conséquent, il est logique de trier les LA(i) semblables en ordre inverse de leur cardinalité. L’algorithme 5.2 présente la stratégie d’ordonnancement telle qu’elle a été implantée dans la version actuelle de QEDX. Dans celui-ci, nous utilisons SD(HPDIC), soit la stratégie domi- nante de résolution de l’élève qui nous semble la plus plausible. Actuellement, elle correspond à la solution la plus avancée qui est déterminée par la méthode par propagation décrite à la section précédente. Nous faisons aussi référence à HPDIC[I] qui correspond à l’ensemble des inférences du graphe HPDIC. De plus, pour signifier la concaténation d’éléments à la queue des listes ordonnées, soit ListeInfOrd et LIT, nous utilisons le symbole ⊕.

L’algorithme proposé peut s’adapter à deux principaux scénarios d’apprentissage, soit un mode d’exploration libre du problème et un mode dans lequel on privilégie le travail sur la solution dominante déterminée. Dans le premier cas, le système propose toujours de l’aide par rapport au travail récent de l’élève et s’adapte aux changements de stratégie instantanément. Il ne sera cependant pas très efficace pour inciter l’élève à compléter une preuve même s’il ne lui reste que quelques énoncés à soumettre pour y arriver. Ce mode est utile au début du problème, car l’élève n’a habituellement pas de stratégie claire et explore différentes pistes de solution pour voir la réaction du tuteur. Il est donc important de suivre son cheminement et de respecter son état cognitif. À un certain moment, l’élève croit avoir trouvé sa stratégie et veut compléter efficacement sa solution. Dans QEDX, nous avons choisi de quitter le mode d’exploration libre lorsque l’élève réussit à atteindre un seuil d’achèvement de 40% pour la solution la plus avancée. Ce seuil a été déterminé à la lumière de l’analyse des fichiers journaux recueillis au cours d’une expérimentation en classe (Tessier-Baillargeon et al., 2011). Dès que celui-ci est atteint, notre tuteur insiste alors sur les inférences qui permettent de compléter la solution déterminée, même si l’élève propose des énoncés correspondants à une autre stratégie. Le changement de stratégie sera détecté lorsque le pourcentage d’achèvement de la nouvelle solution dépassera celui de la stratégie dominante déterminée. Dans notre algorithme, il suffit de fournir une solution dominante vide pour utiliser le mode d’exploration libre ou de fournir la solution dominante déterminée pour privilégier le travail sur cette dernière. En effet, si une solution dominante est fournie, les inférences la composant seront ordonnées en priorité. Pour créer la liste ordonnée des inférences qui sera utilisée par la couche GMD, nous y insérons d’abord la liste ordonnée des inférences de la solution dominante, si elle existe. Nous y ajoutons ensuite la liste ordonnée des inférences du graphe HPDIC qui ne font pas partie de la solution dominante. Pour chacune de ces deux dernières listes, une même procédure est

fonction OrdonnerInférencesGraphe

ListeInfOrd ← {}

ListeInfOrd ← OrdonnerInférences( SD(HPDIC) )

ListeInfOrd ← ListeInfOrd ⊕ OrdonnerInférences( HPDIC[I] \ SD(HPDIC) )

retourne ListeInfOrd fin fonction

fonction OrdonnerInférences(Inférence InfÀOrd)

EI ← {i | i ∈ InfÀOrd ∧ max(LA(i)) < 0}

PI ← {i | i ∈ InfÀOrd ∧ max(LA(i)) > 0 ∧ min(LA(i)) < 0} LIT ← TriInverse( PI, Opérateur< )

Cour ← LIT.Premier

tant que Cour 6= ∅ faire

pour tout {i | hi, Couri ∈ S ∧ i ∈ EI ∧ i /∈ LIT } faire

LIT ← LIT ⊕ i

fin pour

pour tout {i | hCour, ii ∈ S ∧ i ∈ EI ∧ i /∈ LIT } faire

LIT ← LIT ⊕ i

fin pour

Cour ← LIT.Suivant

fin tant que

LIT ← LIT ⊕ ( InfÀOrd \ LIT )

retourne LIT fin fonction

fonction Opérateur<(Inférence i1, Inférence i2)

si LA(i1) <lex LA(i2) alors

retourne V rai fin si

si LA(i1) = LA(i2) alors

si hi2, i1i ∈ S alors retourne V rai fin si fin si retourne F aux fin fonction

Algorithme 5.2 Ordonnancement des inférences pour un graphe HPDIC

appliquée. Nous commençons par classer les inférences en trois catégories, soit les inférences complétées, les inférences pour lesquelles aucun travail n’a été fait (EI) et celles qui sont partiellement complétées (PI).

Nous trions ensuite l’ensemble PI en ordre décroissant pour accorder la priorité aux inférences activées récemment en utilisant le comparateur lexicographique proposé. Si celui-ci détermine que les deux inférences ont des temps d’activation identiques, nous avons ajouté un critère hiérarchique pour tenter de les départager. En effet, cette situation se produit habituelle- ment lorsqu’un résultat intermédiaire est activé et que tous les autres noeuds des inférences adjacentes ne le sont pas. Dans ce cas, nous avons remarqué que les enseignants privilégient

l’inférence pour laquelle le résultat énoncé par l’élève est la conclusion de celle-ci. Le critère hiérarchique permet donc d’imiter cette stratégie d’aide. S’il n’y a pas de lien hiérarchique entre les deux inférences, nous considérons qu’elles ont une priorité équivalente et elles seront donc classées selon un ordre pseudo-aléatoire.

Après avoir ordonné les inférences du groupe PI, nous ajoutons celles d’EI en utilisant une stratégie précise. Étant donné que l’élève n’a pas encore travaillé sur celles-ci, il est normal qu’elles se retrouvent en fin de liste. Cependant, l’ordre de traitement de ces dernières n’est pas aléatoire et dépend directement du travail fait par l’élève. En effet, nous avons décidé d’utiliser un critère de proximité qui permet de donner une plus grande priorité aux inférences qui sont près de celles qui sont complétées ou partiellement complétées. Ce choix se justifie par le fait que les inférences adjacentes traitent habituellement de sujets semblables au travail réalisé par l’élève et nous semblent plus accessibles par rapport à l’état cognitif supposé de celui-ci. Pour y arriver, nous parcourons la liste des inférences déjà ordonnées et pour chaque inférence, nous ajoutons, en fin de liste, les inférences parentes et enfants faisant partie d’EI qui n’ont pas encore été traitées. La procédure est appliquée à l’ensemble de la liste, y compris les inférences d’EI qui viennent d’y être ajoutées. Cette stratégie permet donc de s’éloigner graduellement du travail récent de l’élève dans le but éventuel de lui proposer d’autres stratégies. À la suite de cette procédure, il peut arriver que des inférences d’EI n’aient pas été ajoutées à la liste ordonnée. Nous les ajoutons donc dans un ordre quelconque, car aucun critère ne nous permet de les départager.

À titre d’exemple, reprenons les données du tableau 5.1 qui correspondent au résultat de l’exécution des 9 actions présentées plus haut. Dans celui-ci, les inférences de type PI sont inscrites dans l’ordre inverse de celui prescrit par notre comparateur lexicographique. À partir de ces données, notre système est en mesure de déterminer une solution dominante qui contient quatre inférences, soit λ1a, λ3b, λ5 et λ8c. Selon le scénario d’apprentissage choisi, l’algorithme d’ordonnancement produit alors une des listes ordonnées d’inférences suivantes :

— Ordonnancement en mode d’exploration libre (OL) : λ3b λ4 λ5 λ7 λ8c λ1b λ6 λ8b λ3a λ8d λ8a λ2

— Ordonnancement prioritaire pour la solution dominante (OD) : λ3b λ5 λ8c λ4 λ7 λ1b λ6 λ8b λ3a λ8d λ8a λ2

Dans cet exemple, nous remarquons que l’inférence λ1a n’a pas été triée, car elle est complète. En ce qui concerne les inférences partielles, le tri lexicographique a été suffisant pour les ordonner. On constate aussi que, dans le cas d’OD, ce sont les inférences de la solution dominante qui sont les plus prioritaires, même si d’autres correspondent mieux au travail récent de l’élève. On peut enfin voir que l’inférence qui n’a pas encore été traitée par l’élève,

soit λ2, se retrouve à la suite des inférences partielles, non pas à cause du tri lexicographique, mais bien à cause de l’ajout des EI par proximité. En effet, elle a été ajoutée, car elle est parente de λ5 dans le cas d’OL. Pour OD, par contre, étant donné qu’elle ne fait pas partie de la solution dominante, l’analyse de λ5 n’a pas permis de l’ajouter et il a fallu attendre l’analyse de λ7. Or, si λ2 avait fait partie de la solution dominante, elle aurait été classée à la suite de λ8c, donc avant les autres inférences du graphe ne faisant pas partie de la solution. Le but de cette section était de présenter l’algorithme d’ordonnancement des inférences dont le résultat est utilisé par la couche GMD pour produire une suite de messages d’aide. Nous avons proposé une stratégie d’ordonnancement qui tente d’imiter les stratégies d’aide des en- seignants. Plus particulièrement, nous avons proposé un algorithme qui tente d’aider l’élève à compléter la solution dominante de façon efficiente et qui respecte la chronologie de ses actions, comme semblent le faire les enseignants observés. Pour y arriver, notre algorithme peut permettre une exploration libre du problème et passer à un mode plus directif lorsqu’un certain seuil est atteint. Pour respecter la chronologie des actions, nous utilisons un tri lexi- cographique inverse sur le temps d’activation des inférences. Dans la section suivante, nous présentons les résultats obtenus par l’application des différentes stratégies visant à contenir l’explosion combinatoire pour identifier la solution dominante. Nous présentons aussi briève- ment les résultats obtenus par notre algorithme d’ordonnancement. Cependant, celui-ci sera analysé plus en détail lors de la discussion.