Logo IDEAL

Lessons:

Implementation of DEvelopmentAl Learning (IDEAL) Course

Home » 5. Radical interactionism » 54. Implementation

Implementing radical interactionism

Table 54 presents our radical interactionist algorithm, by introducing a few modifications in our previous algorithms of Page 43. These modifications have impacts on the learn() and anticipate() functions. The participants interested in programming will find the details on Page 57.

Table 54: Radical interactionist algorithm.

001   i1 = createPrimitiveInteraction("i1", -1)
002   i2 = createPrimitiveInteraction("i2", 1)
003   i3 = createPrimitiveInteraction("i3", -1)
004   i4 = createPrimitiveInteraction("i4", 1)
      ... Other interactions afforded by the agent/environment coupling
      
005   constructExperiment(i1)
006   constructExperiment(i3)
      ... Other experiments constructed by default
       
007   while()
008      anticipations = anticipate()
009      experiment = selectExperiment(anticipations)
010      intendedInteraction = experiment.intendedInteraction()
011      enactedInteraction = enact(intendedInteraction)
012      learn()
013      if (enactedInteraction.valence ≥ 0)
014         mood = PLEASED
015      else
016         mood = PAINED

101   function enact(intendedInteraction)
102      if intendedInteraction.isPrimitive 
103         return environment.enact(intendedInteraction)
104      else
105         enactedPreInteraction = enact(intendedInteraction.preInteraction)
106         if (enactedPreInteraction ≠ intendedInteraction.preInteraction)
107            return enactedPreInteraction
108         else
109            enactedPostInteraction = enact(intendedInteraction.postInteraction)
110            return getOrLearn(enactedPreInteraction, enactedPostInteraction)

Table 54, Lines 001 to 004: Now, primitive interactions are created as primitive objects rather than being the product of experiments and results. Lines 005 and 006: Default experiments are created as secondary constructs from primitive interactions. Default experiments generate initial anticipations that can be picked by default when the agent begins.

Lines 007 to 016: The main loop is the same as on Page 43.

Lines 101 to 110: The enact() function is identical to that on Page 43, except for Line 103, which calls the enact(primitiveInteraction) method of the environment. The enact(primitiveInteraction) method replaces the previous giveResult(experiment) method; it tries to enact the primitive interaction in the environment and returns the actually enacted interaction. Participants interested in programming will find an environment implemented with this principle on Page 58.

The video in the next page explains and illustrates how this algorithm works.

« Previous | Next »

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

Share