# Implementation of DEvelopmentAl Learning (IDEAL) Course

## More algorithms to implement radical interactionism

Radical interactionism implies a conceptual inversion of the roles of interactions and experiments. There are no concrete experiments that the environment can process. Instead, the environment can only process primitive interactions, and all experiments are abstract.

Like in the algorithm on Page 44 and the code on Page 45, experiments have an intended interaction. When the agent chooses an experiment to perform, it tries to enact this experiment's intended interaction.

Now, experiments also have a list of enacted interactions. When the enacted interaction differs from the intended interaction, the enacted interaction is added to the experiment's list of enacted interactions. As a result, the next time the agent considers choosing this experiment, it can anticipate this possible outcome among others, and balance its decision on the basis of these different anticipations. Table 57 reports the algorithm that implements this mechanism.

Table 57: constructing and exploiting experiments from interactions.

```101   Learn()
102      if enactedInteraction ≠ intendedInteraction
103         experiment.addEnactedInteraction(enactedInteraction)
104      superInteraction = learnCompositeInteraction(previousEnactedInteraction, enactedInteraction)
105      learnCompositeInteraction(previousSuperInteraction, enactedInteraction)
106      learnCompositeInteraction(previousSuperInteraction.preInteraction, superInteraction)

201   Anticipate()
202      activatedInteractions = getActivatedInteractions()
203      for each activatedInteraction in activatedInteractions
204         proclivity = activatedInteraction.weight * activatedInteraction.postInteraction.valence
205         addAnticipation(activatedInteraction.postInteraction.experiment, proclivity)
206      for each anticipation in anticipations
207         for each interaction in anticipation.experiment.enactedInteractions
208            for each activatedInteraction in activatedInteractions
209               if interaction = activatedInteraction.postInteraction
210                  proclivity = activatedInteraction.weight * interaction.valence
211                  anticipation.addProclivity(proclivity)
212      return anticipations
```

Lines 102 and 103: If the enacted interaction is not the intended interaction, add the enacted interaction to the experiment's list of enacted interactions.

Lines 104 to 106: Learn the three higher-level composite interactions as explained in Figure 44.

Lines 201 to 212: The proclivity of anticipation is now balanced depending on the odds of obtaining the afforded interaction (Lines 103 to 205) and the odds of obtaining a different enacted interaction (Lines 206 to 211).

See public discussions about this page or start a new discussion by clicking on the Google+ Share button. Please type the #IDEALMOOC057 hashtag in your post: