[MUSIC] Last module, I detailed what agent were. And now we will see how we will build a system by simply putting several agent in the same environment. So usually we talk about multi-agent systems, and it can look like that. So we have a collection of agents. Like before, they are in the environments. But now the agent can interact with each other. There are several ways of understanding and ending this interaction. Here, I try to detail the connection, the interaction between the agents. But in fact, of course an agent can simply see the other agent as part of it's environment perception. So again, from an agent again, all the rest can be seen as a black box. This property is really interesting for modeling because it means that we can focus on a spot of the model and consider that all the rest is uniform black box. And so we can refine the agent rules without caring about the rest. And hoping that doing that and putting all the agent [INAUDIBLE] inside, together, emergent behavior will occur. So I will discuss a bit now about what are the aspects involved with multi-agent system. So, the first thing that we have to say is most agent based systems, they use a multi-agent system because one single agent is just a function. So it's just a program, we don't need any smart framework to do that. So most, the interesting thing about it is the fact that we will put several models together, several agents. And we hope that by the interaction or the cumulative effect of all these agents, something rich will happen. And here we are discussing about simulation and modeling of natural processes and of course about agent-based modeling. But pay attention because multi-agent systems are, in fact, used in lots of other fields like optimization for example. The fact that lots of optimization methods they use, agent which will try to find the optimized solution. I won't speak about it. There are really interesting methods of network security where some agents are mobile and will jump from one computer to the other and try to monitor what's going on. I won't talk about it. And finally the videogames is perhaps the most interesting example from the system that are multi-agents but not agent-based modeling, per se. In the videogames, for example, every opponent or every character in the game that is not controlled by a player is programmed using multi-agent system approach. Bad guys and shooters, for example, and so on. But I won't talk about it. We will restrict ourselves to agent-based modeling. But, all I will say here about multi-agent system are valid for all applications. So first of all, often the agents are specialized. They have a special location. Their environment is a special domain can be 2D, it can be 3D, or it can have whatever topology you want, for example, a graph. If you are interested in epidemics spreading, you are not only interested in where the people are, because they will move. What is interesting is the graph of the relation. For example, every agent, they have a higher chance of infecting their coworkers, their family, and so on, so what is the real special domain here is a graph with the relation between the agents. But, really often, they are in 2D and 3D, and the example I will show you is the case. The agent of a location, they could move, for example, animals, pedestrians, can move if you have a traffic model, the agent will move and so on. And this location is really interesting, is really important. Because it could affect two things. First of all, the perception awareness of the agents, of the environment. Instead of seeing everything, he will just see a little bit of it. And then the current position of an agent can change the interaction network between other agents. So two small examples here. At left, so here we have an environment, black walls like a kind of maze. And agent are the black dots. And in green, you see the environment awareness of every agent. So here, I present you two kind of approach. The first one agent is aware of its immediate surrounding with a radius. For example, it can be a radio signal, and the agent can perceive another thing that are in the same radius or it can listen to noise around it and so on. But we can have other approaches. For example, in that case, the agent have a line of sight. They have a direction where they point and they can just see what is in front of them. So you can decide as you want to what would be the environment awareness of the agent, what exactly they will perceive. And in lots of interesting models that would change with their spatial position. The other parameter which is affected is the interaction topology, because here again, the agent are black dots. And if you see a blue line between two dots mean that these two agent can interact. At right, you can see an example of an agent interaction network where every agent can interact with the others. That would be the case for example with the radio system with every agent can decode or send a message to the other one. And I don't know, telephone or email where everybody can reach all people. But you can also interaction other interaction topology. For example, you can see that the interaction happen only at contacts. So when two agents are in contact, they can exchange something. Or you can have, for example, the topology can depend on the special awareness of every agent. In that example, for example, the agent can communicate only if they are aware of the same region of the space. So, these three agents can communicate but not though too far away because they don't see the same zone. But they can use the middle agent to relay. Or these three agents, these four agent here can communicate with each other because they are quite close enough and so on. So you have to decide if they are interaction, what's the topology? Is it only a shorter, one short contact of nodes? And so that would change a lot, the output and the dynamic of your network. So here, we will talk in the rest of this lecture about agent based models. Agent based model again is the use of a multi-agent system to model a natural phenomenon. And again we model the agent, the basic individual entities, but we observe a global complex behavior, and that's the behavior that we want to validate with the nature that we want to compare to experiments. Now that I define what a Multi-Agent System, I will spend the next module to explain you how usually they are implemented in a computer system. [MUSIC]