Until now, our decisional mechanisms were rudimentary and limited to approaching "attractive" affordances, in order to test mechanisms of the space memory. I thus explored possibilities for more complex mechanisms. In particular, a mechanism considering an agent that can modify its environment to construct affordances.
I was inspired by the Sokoban game for this new environment: the environment is discrete and proposes two new types of objects, movable yellow blocks and red tiles, the agent can observe its whole environment (as if it could see its environment from top view), and has an additional interaction: pushing a movable object. The rules of the environment define that when a yellow block is pushed over a red tile, the block becomes a blue prey. When a yellow block is pushed against a wall, it is stuck and the agent can bump into it. Thus, it is possible to construct objects affording "eat" and "bump" by moving yellow blocks.
The detection of constructible affordances is based on the mechanism of distant affordances detection. Indeed, it is possible that a context affording an interaction can only be partially present in the environment. We call such a partial context "proto-objects". Then, it is possible to detect a movable object, when the same object can be interacted more than once consecutively. As an example, a movable block can be pushed several times, and thus be considered at more than one position simultaneously. Note that this principle can also be applied to "bump" interaction. However, when the agent bumps, the environment doesn't move in the point of view of the agent. Then, when the agent detects N proto-objects allowing the construction of an object affording an interesting interaction, and at least N-1 proto-objects are movable (i.e. they are included in movable objects), then the agent can gather these elements to construct this object.
I developed a decisional mechanism that is added to other mechanisms (exploration and exploitation). This mechanism is active when every proto-objets allowing the construction of an object are present in the environmental context of the agent. Similarly to the exploitation mechanism that consider the distance between an object and the agent, this mechanism considers the distance between a movable proto-object and an other proto-object. When interacting with the first proto-object allows to reduce the distance between the two proto-objects, then the mechanism adds a utility value to the interaction allowing to move toward this first proto-object. Thus, the agent will generate behaviors that constructs objects affording attractive interactions.
Experiments conducted on simulated agents show that when a yellow block and a red tile are in the surrounding environment, the agent pushes the block over the tile, and changes, when needed, side of the block, until the prey appears. We also observe that the behavior of the agent considers other surrounding elements (Gay, Mille and Cordier, 2016).
In these two cases, the agent successfully pushes the yellow block over the red tile. When we add a wall block on the path used in the first test, the agent use an other path to avoid it.