# On the Use of the Multi-Agent Environment for Mobility Applications
## 3 Environment for Non-Spatial Interaction in Mobility Applications
### Model  
Figure 7 illustrates the architecture of a multi-agent system following our generic model. The modelled MAS executes on a host, where (local) agents add, read and take objects to/from the environment. Every agent is either independent (like agents 1 and 2) or representing a non-modelled external system (traffic information server, for instance) or user (a traveller, for instance) in the MAS (like agents 3 and 4). The system agents interact with the environment via a shared space and don't have to maintain an updated list of the agents and their properties and capacities. For the specification of the system following this architecture, we adopt four primitives inspired by [PERSON] [25] and a set of operators borrowed from [PERSON]'s CCS [29]. A MAS adhering to the model is defined by a dynamic set of agents interacting with an environment-denoted \(\Omega_{ENV}\), which is composed of a dynamic set of _objects_. Agents can _perceive_ (read-only) and/or _receive_ (read and take) objects from the environment. Agents are defined by behaviour (a process), a state and local memory in which they store the data they perceive or receive from the environment. The primitives allowing these actions are the following [30]:  
\[\mu::=add(sds)\mid spawn(P,sds)\mid look(sds_{p},sds_{r},e)\mid update(sds)\]  
The primitive \(add(sds)\) adds to the environment an object described by \(sds\). For instance, \(add(position\gets 1)\) adds the property-value pair \((position\gets 1)\) to \(\Omega_{ENV}\). The primitive \( spawn(P,sds)\) launches a new agent that behaves like \(P\) and which state is described by a description \(sds\). For instance, \( spawn(add(position\gets 1),\{id\gets a_{1},position\gets 1\})\) creates an agent that has \(a_{1}\) as \(id\) and \(1\) as \(position\) and whose behaviour is \(add(position\gets 1)\). The primitive \( look(sds_{p},sds_{r},e)\) allows object perception and reception (perception and removal from the environment). It blocks until a set of objects becomes present in \(\Omega_{ENV}\) such that the expression \(e\) is evaluated to _true_; the objects associated with the variables in \(sds_{p}\) are perceived and those associated with the variables in \(sds_{r}\) are received. For instance, the following instruction:  
\[look(\{ticket\gets t\},\{paper\gets p\},t.destination=\"Berlin\"\wedge t. price\leq budget\]  
\[\wedge p.decision=\"accepted\")\]  
looks for two objects that will be associated with \(t\) and \(p\). The object associated with \(t\) will be perceived, while the object associated with \(p\) will be received. After the execution of this instruction, the two objects will be present in the local memory of the caller agent. The  
Figure 7: Architecture of a Multi-agent system with general-purpose explicit environment. latter will have two additional properties: _ticket_, which refers to the object associated with the variable \(t\) and _paper_, which refers to the object associated with \(p\). The perceived _ticket_ has \"Berlin\" as destination and a _price_ lower than the budget of the executing agent, while the _received_ paper is \"accepted\" (the property _decision_ is equal to \"accepted\"). The model thus proposes an environment-centric interaction for mobility applications. The advantages compared to point-to-point message exchanges or broadcasting messages to all agents are the following. On the one hand, in point-to-point message exchange, the agents (a traveller and a vehicle, for example) must be synchronised so that the transmission of a message by the first agent corresponds to its reception by the second. On the other hand, the sender must know the physical location of the receiver agent. With our approach, the communication is decoupled in time and space. Decoupling in time allows agents to communicate across time, i.e., their execution times do not have to overlap (the agents do not have to be synchronised by a rendezvous mechanism) to establish communication.