Last news Economics Technologies EU Scenarios About us Admin Area
FLAME Framework
Home > FLAME Framework > FLAME and Agent-based Modelling
FLAME and Agent-based Modelling


Agent-Based Modelling

Agent based modelling is one of the emergent branches of AI which best demonstrates complex, social behaviour of different communities living together in real world scenarios. The ideology allows agents, representing individuals or groups, to be put into a simulated environment where their individual interactions can then be studied more closely. These agents run in parallel and allow some sort of emergent behaviour to emerge from their interactions with themselves and the environment.

     Agent based models encourage bottom-up approach, allowing the research to focus on the individual elements interacting with each other rather than looking at the complete scenario as a whole. In earlier research, the pattern in models was proved using differential equations with more common examples being found in economic modelling where mathematical formulas are still being used to prove behaviour of ideas. There are various tools which facilitate researchers to write and study their models through simulations.

Using tools - FLAME

Although there are various tools for writing agent-based models, most of them are not suitable for modelling large models when agent numbers can be of the order of millions. For modelling the European economy which is a largely complex model we use the modelling framework FLAME.

     FLAME (Flexible Large-scale Agent Modelling Environment)
is an agent based modelling framework which allows researchers from all disciplines to easily create their own agent models based on formal software methodologies. The framework promotes formal modelling processes as it is based on the formal X-machine specification and thus allows all models to be easily merged with other software tools if required. The biggest advantage of using FLAME is that it produces models which are automatically parallelisable, which can thus allow simulations of high concentrations of agents to run on large scale mainframes, without effort required by modellers, and achieve results in finite time. 

FLAME has been involved in a variety of complex projects from different disciplines. Examples include the Epitheliome Project for creating various models of the skin and the SUMO project for modelling the behaviour of E-Coli bacterial cells living in organisms. More examples can be found on the official website, www.flame.ac.uk.
 
FLAME was developed at the University of Sheffield and has a growing user community exploiting FLAME in different disciplines and complex projects.

Features of FLAME

Agents in FLAME are designed on the X-machine methodogy and are based on the communicating X-machines. They comprise of:
- Memory Variables
- Messages for communication
- Functions agents can perform

X-machines are extended finite state machines with the added inclusion of memory. They are used to specify and test software systems.
            
                                            
                                [Figure 1: X-agent diagram]

Figure 1 shows a diagrammatic representation of the X-agent. S1, S2 and S3 are the states the agent can exist in. F1 is the transition function which the agent uses its memory to change states. The transition functions can access messages and use them to find the outcome of the function result.
                    
                             [Figure 2: Block diagram of FLAME framework]

Figure 2 shows the block diagram of the FLAME Framework. The framework uses a model XMML file and a functions file as inputs into the parser program, XParser. The XParser then converts the inputs into simulation code which with starting values can then simulate the model to produce results. The XMML definition is the X Machine Modelling Language which uses similar XML tags to code the model specifications. 

Basics of using FLAME

To model agents as X-machines the input and output streams are taken to be messages sent between agents. 
Stages in creating an X-machine agent model are as follows: 

1.     Identify the system functions 
2.     Identify the states, which impose some order on execution of functions 
3.     Identify the input and output messages for each function 
4.     Identify the pre and post memory for each function 

For more information refer to www.flame.ac.uk.