Le module procédural
Simule la mémoire procédurale Responsable du comportement du modèle Coordonne l’échange d’informations entre les buffers Unité : règle de production Le système de production de ACT-R se caractérise par ◦ Modularité les règles sont indépendantes les unes des autres ◦ Abstraction utilisation de variables ◦ Couple condition-action ◦ La partie condition spécifie généralement le contenu du buffer goal particularité de ACT-R ◦ Activation d’une règle : 0.050s Temps entre sélection et activation 2
Règles de productions (p Name “optional documentation string” buffer tests ==> buffer changes and requests) 3
Désignation des buffers LHS : test du contenu des buffers ◦ =buffer mise en correspondance du chunk générique avec celui dans le buffer ◦ ?buffer requête sur l’état du module RHS : actions sur les buffers ◦ =buffer change la valeur des attributs dans le buffer = goal > number = num2 ◦ +buffer requête pour déposer un chunk dans le buffer + retrieval> ISA count-order first = num2 ◦ -buffer efface le contenu du buffer - retrieval> ◦ Remarque : Il y a un effacement implicite des chunk dans la requête +buffer> 4
Variables Désignation des variables ◦ =variable Dans le LHS, un attribut XX d’un chunk générique est associé à la valeur de l’attribut XX du chunk correspondant dans le tampon ◦ attribut =var =var conserve la même valeur partout dans la règle de production Une fois qu’une variable =var correspond à une valeur, les comparaison suivantes sont possibles ◦ - attribut =var == l’attribut n’a pas la valeur =var ◦ < attribut =var == l’attribut a une valeur inférieure à =var ◦ > attribut =var == l’attribut a une valeur supérieure à =var Dans le RHS ◦ variable value : variable value = goal> ISA count-from count = num1 - end= num1 5
Exemple de règle : compter (P increment =goal> ISA count-from count =num1 - end =num1 =retrieval> ISA count-order first =num1 second =num2 =goal> count =num2 +retrieval> ISA count-order first =num2 !output! (=num1) ) 6
Exemple compter (2) Mémoire déclarative ◦ (chunk-type count-order first second) 2 slots Exemple (c1-2 ISA count-order; first 1; second 2) ◦ (chunk-type count-from start end count) 3 slots Exemple (first-goal ISA count-from ; start 2 ; end 4) Remarque un slot est indéfini dans le but Mémoire procédurale ◦ 3 règles Start Increment Stop 7
Mémoire procédurale (1/3) p start =goal> ISA count-from start =num1 count nil =goal> count =num1 +retrieval> ISA count-order first =num1 ) 8
Mémoire procédurale (2) (P increment =goal> ISA count-from count =num1 - end =num1 =retrieval> ISA count-order first =num1 second =num2 =goal> count =num2 +retrieval> ISA count-order first =num2 !output! (=num1) ) 9
Mémoire procédurale (3/3) (P stop =goal> ISA count-from count =num end =num -goal> !output! (=num) ) 10
But du modèle Définir un but est comme définir un chunk de la mémoire déclarative ◦ (first-goal ISA count-from start 2 end 4) Un premier but est généralement déposé dans le buffer goal avec la commande goal-focus ◦ (goal-focus first-goal) 11
Déroulement (1/4) PROCEDURAL CONFLICT-RESOLUTION PROCEDURAL PRODUCTION-SELECTED START PROCEDURAL BUFFER-READ-ACTION GOAL Début du cycle trouver les règles exécutables choisir la règle à exécuter la règle choisie est start vérifie le contenu du buffer but 12
13 Déroulement PROCEDURAL PRODUCTION-FIRED START PROCEDURAL MOD-BUFFER-CHUNK GOAL PROCEDURAL MODULE-REQUEST RETRIEVAL PROCEDURAL CLEAR-BUFFER RETRIEVAL DECLARATIVE START-RETRIEVAL annonce le début de l’exécution de la production start. count = num1 count 2 annonce le début de la seconde action Vide buffer retrieval à cause + début de la recherche dans la mémoire déclarative
14 Déroulement (3) DECLARATIVE RETRIEVED-CHUNK C DECLARATIVE SET-BUFFER-CHUNK RETRIEVAL C PROCEDURAL CONFLICT-RESOLUTION PROCEDURAL PRODUCTION-SELECTED INCREMENT PROCEDURAL BUFFER-READ-ACTION GOAL PROCEDURAL BUFFER-READ-ACTION RETRIEVAL Récupération du chunk c(2 à 3) dépôt du chunk c dans le tampon Début d’un nouveau cycle Sélection de la production increment lecture de la première action à faire lecture de la seconde action à faire
15 Déroulement (4 et …) PROCEDURAL PRODUCTION-FIRED INCREMENT PROCEDURAL MOD-BUFFER-CHUNK GOAL PROCEDURAL MODULE-REQUEST RETRIEVAL PROCEDURAL CLEAR-BUFFER RETRIEVAL Déclenchement de la règle increment Affichage de num1 Modification du buffer des buts avec num2 = 3 Requête du chunk count-order avec num2=3 vider la mémoire du tampon
Mémoire procédurale (3) (P stop =goal> ISA count-from count =num end =num -goal> !output! (=num) ) 16
?tampon == requête sur le statut du tampon (P fail =goal> ISA is-member object =obj1 category =cat judgment pending ?retrieval> state error ==> =goal> judgment no ) 17
18 Un chunk d’état de la tâche Définition de la tâche et de son état ◦ (goal ISA read-letters state start) (chunk-type read-letters letter state) ◦ Le slot state encode l’état du but. Ses valeurs sont : Start Find-location Attend Respond Done
19 Mémoire procédurale (1/4) (P find-unattended-letter =goal> ISA read-letters state start +visual-location> ISA visual-location :attended nil =goal> state find-location ) Règle pour passer de l’état de départ à celui de chercher une lettre dans le buffer de localisation Fait une requête au buffer de localisation la slot state du chunk dans le buffer but est maintenant find-location
20 Mémoire procédurale (2/4) actionnement du buffer visuel de localisation (P attend-letter =goal> ISA read-letters state find-location =visual-location> ISA visual-location ?visual> state free +visual> ISA move-attention screen-pos =visual-location =goal> state attend ) il y a un chunk de type visual location l’état du tampon visuel est libre Requête au visual buffer pour lire à la position indiquée
21 Mémoire procédurale (3/4) actionnement du buffer visuel (P encode-letter =goal> ISA read-letters state attend =visual> ISA text value =letter =goal> letter =letter state respond ) Le module de vision ne peut faire qu’un mouvement à la fois et plus long que de déclencher règle donc attention de ne pas poser de collision avec 2 règles qui en font 2 requêtes au module visuel La lettre s été perçue mais non rangée dans la mémoire déclarative
22 Mémoire procédurale (4/4) actionnement du buffer moteur (P respond =goal> ISA read-letters letter =letter state respond ?manual> state free =goal> state done +manual> ISA press-key key =letter ) Action déclenchée quand une lettre a été identifiée Vérification que le buffer manuel est vide Requête pour taper la lettre
23 Buffer visuel Le buffer visuel réencode toujours des lettres à moins qu’une requête explicite l’arrête +visual> isa clear