of the agent using state machines, that can be ”acti-
vated” by the rule engine of the agent. eXAT tasks
can be combined sequentially or concurrently, allow-
ing re-usability of the defined state machines. Fork
and join operators on concurrent state machine exe-
cution exist that allow composition of complex tasks.
TSTATES provides some of the above mentioned
features and lacks others. State machine invocation
is possible through the
activate-machine
primitive,
but concurrent execution of state machines, as that is
defined in COLBERT and XABSL is missing. Concur-
rent actions, although is clearly a desired property in
a robotic system that operates in the real world, might
not be that suitable for agent simulation platforms and
especially for NetLogo. In the latter, fairness among
agents in the simulation is provided by ensuring that
at each cycle one action is selected and executed in
the environment. However, having multiple concur-
rent active states is a future direction of the TSTATES
library, possibly incorporating some sort of priority
annotation on the actions that would allow in the end
to have a single action as the outcome of the state ma-
chine.
There is a large number of agent simulation plat-
forms that have been developed in the past decade
(Nikolai and Madey, 2009) (Allan, 2010). Out of
these, state machine like behaviour encoding is of-
fered in two of them, Sesam (Kl¨ugl et al., 2006)
and RePast (North et al., 2007). In Sesam a vi-
sual approach to modelling agents is adopted, where
users develop activities that are organised in using
UML-like activity diagrams. RePast offers agent be-
havioural modelling through flowcharts (along with
JAVA, Groovy and ReLogo) that allow the user to vi-
sually organise tasks. While both approaches are sim-
ilar to the TSTATES, the latter offers callable states
and machine invocation history that, to our opinion,
facilitate the development of sophisticated models,
as presented above. Furthermore its tight integration
with the NetLogo platform and given the latter’s sim-
plicity in building simulations, allows users to build
models more easily. However, since among some user
categories, visual development of state machines is a
rather attractive feature, we consider the inclusion of
such a facility in the future.
6 CONCLUSIONS AND
DISCUSSION
This work reports on extensions regarding the
TSTATES DSL and on the use of the latter in a more
complex example. The approach presents a num-
ber of benefits: determining complex behaviour using
state transitions is simple and integration with Net-
Logo platform’s language primitives is transparent,
thus loosing not expressivity w.r.t. the agent models
that can be encoded.
We intend to extend the current approach in a
number of ways:
• Support the execution of concurrent active states
as discussed in section 5 and possibly fork and
join composition operators on machine invoca-
tion. However, this is a issue that requires further
research and outside the scope of this paper.
• Provide facilities for debugging and authoring
state machines in NetLogo, as for example vi-
sual tools to encode state machines, like in (Kl¨ugl
et al., 2006) and (North et al., 2007). The latter
we expect to increase the adoption of TSTATES
and the platform itself.
We are also considering other agent program-
ming language paradigms as well, such as AgentS-
peak(L) (Rao and Georgeff, 1991). However, these
approaches usually require the definition of an event
queue from which an event is selected and the corre-
sponding rule fires. In the case of NetLogo, such an
approach presents a number of problems: since the
agent is allowed to monitor a large number of global
variables, own variables and the environment around
it through a large set of language primitives (reporters
and procedures), it might be the case that the event
queue list grows to a size that makes its manipulation
inefficient. Thus, state machine oriented approaches
allow to focus on a smaller set of changes in the world
and consequently lead to a more efficient execution.
Finally, it should be noted that both the library
TSTATES and the examples presented in this paper,
can be found at http://users.uom.gr/∼ iliass/.
REFERENCES
Allan, R. J. (2010). Survey of agent based modelling and
simulation tools. Technical Report DL-TR-2010-007,
DL Technical Reports.
Bandini, S., Federici, M. L., and Vizzari, G. (2007). Situ-
ated cellular agents approach to crowd modeling and
simulation. Cybernetics and Systems, 38(7):729–753.
Davidsson, P., Holmgren, J., Kyhlbck, H., Mengistu, D.,
and Persson, M. (2007). Applications of agent based
simulation. In Antunes, L. and Takadama, K., edi-
tors, Multi-Agent-Based Simulation VII, volume 4442
of Lecture Notes in Computer Science, pages 15–27.
Springer Berlin / Heidelberg. 10.1007/978-3-540-
76539-4
2.
Kl¨ugl, F., Herrler, R., and Fehler, M. (2006). Sesam: imple-
mentation of agent-based simulation using visual pro-
gramming. In Proceedings of the fifth international
AgentbasedModellingandSimulationusingStateMachines
277