The ANIMAT2

The structure of the ANIMAT2 Agent is described in the scilab file zcs2-animat 16.3. The main structure is a list called ANIMAT which contains alle elements which are actually associated with the AGENT structure:

$ ANIMAT = list(Xanimat, Yanimat, ENERGYTotal, ENERGYActual, \\
ENERGYInput, VI...
..., CLASSIF, ACTDEPTH, FOODIDX, \\
NONFOODIDX, VTHRESHOLD, MATCHSET, ACTIONSET )$

With regard to the theoretical formula $ AGENT \subseteq PERC \times ISTATES$ we have to apply the following mapping:

$ ISTATES = \{Xanimat, Yanimat, ENERGYTotal, ENERGYActual, \\
ENERGYInput, VITA...
..., CLASSIF, ACTDEPTH, FOODIDX, \\
NONFOODIDX, VTHRESHOLD, MATCHSET, ACTIONSET\}$

Thus the different parameters of the ANIMAT2-structure are different properties of the internal states (ISTATES). The 'meaning' of these different parameters can be described as follows:

  1. Xanimat : X coordinate in the grid
  2. Yanimat: Y coordinate in the grid
  3. ENERGYTotal: Sum of all energy; dynamically changing
  4. ENERGYActual: Actual amount of energy after eating
  5. ENERGYInput: Not used
  6. VITAL: Status vital is '0' or '1'
  7. ACTOLD: Last action
  8. CLASSIF: Actual set of classifiers; can be changed
  9. ACTDEPTH: How many actions 'backwards' are considered for rewarding in case of success
  10. FOODIDX: Index of energy gained by food intake
  11. NONFOODIDX: Amount of energy decrementing the overall energy by non-food actions
  12. VTHRESHOLD: Threshold when state vital should be '1' and when it should be '0'
  13. MATCHSET: Set of classifiers selected from CKLASSIF in accordance with perception for possible actions
  14. ACTIONSET: Those actions which have the highest feedback values. One of these should be executed.

While $ VITAL = VITAL$

we have to map

$ MEM = \{Xanimat, Yanimat, ENERGYTotal, ENERGYActual, \\
ENERGYInput, ACTOLD, CLASSIF, ACTDEPTH, FOODIDX, \\
NONFOODIDX, VTHRESHOLD, MATCHSET, ACTIONSET\}$

Additionally one could include the parameter PERCEPTION. This is until now only handled as an input parameter to the behavior function which rules the behavior of the ANIMAT agent. There is not yet a clearly defined ANIMAT agent behavior function distinguished from all the other functions. The managing function lifeR2() is a collection of functions where a subset rules the agent as such and the others rule the behavior of the environment4.3

[ANIMAT, HISTORY, GRID, FOOD]=
liveR2(ANIMAT, X, Y, GRID, RUNS, SHOW, MATCHSET, ACTIONSET, CLASSIF, FOODIDX)

To execute the behavior of an ANIMAT agent structure one has to provide $ (X,Y)$-position of the agent in a given $ GRID$. Then will the liveR2-function place the agent in this position by setting $ AGENT(1)=X$ and $ AGENT(2)=Y$. Furthermore one has to deliver the maximal number of cycles ($ RUNS$) which shall be executed until the agent shall stop again. The $ SHOW$-parameter has only a technical meaning: if set to '1' certain print-commands within the functions will print some control values. If set to '0' these prints will be suppressed. The parameters $ MATCHSET,
ACTIONSET, CLASSIF, FOODIDX$ are only additional names for certain parts of the ANIMAT structure (see the descriptions above). While $ FOODIDX$ have to be defined before starting the behavior function the parameters $ CLASSIF, MATCHSET, ACTIONSET$ are computed during runtime.

To start the behavior function liveR2() one has to call this function on the console like in the examples 16.6.1 and 16.6.3.

Gerd Doeben-Henisch 2012-03-31