The WOOD1 world instance Formalized

Translating the data from Wilson into our formalism generates the following results:

The formal structure of an environment so far:

$\displaystyle ENV(e)$ $\displaystyle iff$ $\displaystyle e = \langle I_{e}, O_{e},IS, \psi\rangle$ (3.23)
$\displaystyle I_{e}$ $\displaystyle :=$ $\displaystyle Input strings for ENV$ (3.24)
$\displaystyle O_{e}$ $\displaystyle :=$ $\displaystyle Output strings of ENV$ (3.25)
$\displaystyle IS_{e}$ $\displaystyle :=$ $\displaystyle Internal states of ENV$ (3.26)
$\displaystyle \psi$ $\displaystyle :$ $\displaystyle I_{e} \times IS \longmapsto IS \times O_{e}$ (3.27)

The instantiation of this environment with the requirements of a WOOD1-environment.

$\displaystyle ENV-WOOD1(e)$ $\displaystyle iff$ $\displaystyle ENV(e) \& IS_{wood1} = (POS \times SURF \times OBJ)^{n \times m}$ (3.28)
$\displaystyle POS$ $\displaystyle \subseteq$ $\displaystyle X \times Y$ (3.29)
$\displaystyle SURF$ $\displaystyle =$ $\displaystyle \{'.'\}$ (3.30)
$\displaystyle OBJ$ $\displaystyle =$ $\displaystyle \{'O', 'F', '*i', '\epsilon'\}$ (3.31)
$\displaystyle I_{wood1}$ $\displaystyle =$ $\displaystyle messages from a system$ (3.32)
$\displaystyle O_{wood1}$ $\displaystyle =$ $\displaystyle messages to a system$ (3.33)

The main point is that the internal states $ IS_{wood1}$ are now realized by an $ n \times m$ matrix whose cells are associations of a 2-dimensional coordinate $ (x,y) \in POS$ with a surface element $ '.'$ which additionally can be associated with an object $ 'O'$ or food $ 'F'$ or a system $ '*i'$ or 'nothing' $ '\epsilon'$. The $ '*i'$ encodes the systems $ '*0',\cdots, '*n'$.

For the communication between the environment wood1 and systems we assume the following protocol (cf. figure 3.6):

Figure 3.6: Environment - System Protocol States

  1. Every time a certain map is active on the server. Every map has a map-name with Y-many rows and X-many columns.
  2. Before starting actions a client asks for the actual map with the string 'who map' where 'who' signals the server that the new client needs an ID and the client is asking for the map data.
  3. As soon as the client gets its new ID and the map name with the Y and X values by 'ID map-name X Y' the client switches into the state 'position'.
  4. In the state position the client announces a start position with the string ID start Y X (thereby using the newly received ID from the server!). If this position is not possible (answer: no), then the client has to try again as soon as it will receive an environment string. Then it switches into the state 'move'.
  5. In the state move the client can announce movements with the string ID move DIR. If not possible (answer: no) the client has to try again. If it is possible the client receives an environment string.
  6. The client can stop by fulfilling a stop condition. This can be e.g. 'starvation' or 'cycle limit'. In this case he sends a message 'ID quit'. This tells the server that the client has stopped its activity and the state of this client will be set to the value 'finished'.

Gerd Doeben-Henisch 2013-01-14