Les mécanismes décisionnels utilisés jusqu'ici sont très rudimentaires et limités à l'approche des objets affordant des interactions "satisfaisantes", dans le but de tester les mécanismes de la mémoire spatiale. J'ai donc exploré les possibilités de mécanismes plus élaborés. Notamment, un mécanisme considérant un agent capable de modifier son environnement pour construire des affordances.
Je me suis inspiré du jeu du Sokoban pour ce nouvel environnement : l'environnement est discret et dispose de deux nouveaux types d'objet, les blocs mobiles jaunes et les dalles rouges, l'agent peux observer l'ensemble de son environnement (comme si il voyait son environnement vu du dessus), et dispose d'une interaction supplémentaire : pousser un objet mobile. La physique de l'environnement fait que si un bloc est poussé sur une dalle rouge, le bloc deviens une proie bleu. Si un bloc jaune est poussé contre un mur, celui-ci est bloqué et l'agent peut se cogner dedans. Ainsi, il est possible de construire deux objets affordant respectivement "manger" et "se cogner" en déplaçant des blocs jaunes.
La détection d'affordance constructible repose sur la détection d'affordances distantes. en effet, il peut arriver qu'un contexte affordant une interaction ne se trouve que de façon partielle dans l'environnement. On appellera un contexte partiel un "proto-objet". D'autre part, il est possible de détecter un objet déplaçable, si celui-ci peut être interagi plusieurs fois consécutivement. Par exemple, un même bloc déplaçable peut être poussé plusieurs fois, et donc considéré comme étant à plusieurs positions simultanément. Notons que ce principe marche également avec "se cogner". Cependant, quand l'agent se cogne, le reste de l'environnement ne se déplace pas par rapport à lui. Ainsi, si l'agent détecte N proto-objets permettant la construction d'un objet affordant une interaction intéressante, et qu'au moins N-1 proto-objets sont déplaçables (c'est à dire qu'ils sont inclus dans un autre objet considéré comme déplaçable), alors l'agent peut les rassembler pour construire cet objet.
J'ai développé un mécanisme décisionnel qui s'ajoute aux autres (exploration et exploitation). Celui-ci s'active lorsque tous les proto-objets permettant la construction d'un objet sont présents dans le contexte de l'agent. Tout comme le mécanisme d'exploitation considère la distance d'un objet par rapport à l'agent, ce mécanisme considère la distance entre un proto-objet déplaçable et un autre proto-objet. Si interagir avec ce premier permet de réduire la distance entre les deux proto-objets, alors le mécanisme ajoute une valeur d'utilité à l'interaction qui permet de se rapprocher de ce premier proto-objet. Ainsi, l'agent va générer des comportements permettant de construire des objets affordant des interactions satisfaisantes.
Les expériences menées sur l'agent simulé montrent que lorsqu'un bloc jaune et une dalle rouge sont dans son environnement proche, l'agent va pousser le bloc vers la dalle, en changeant, lorsque c'est nécessaire, de côté, jusqu'à obtenir une proie. On observe également que le comportement de l'agent est également influencé par les autres objets qui l'entourent (Gay, Mille and Cordier, 2016).
Dans ces deux cas, l'agent arrive correctement à pousser le bloc jaune vers la dalle rouge. Si on ajoute un bloc mur sur le chemin emprunté dans le premier test, l'agent change sa trajectoire pour l'éviter.