What the MRS can do for you
Topics:
What the MRS does (a day in the life of...)
What it can be used for
What the MRS doesWhen working with MicroPsi, the
MRS constantly works for you. Under normal circumstances, you should't notice it at all. So' here's what's under the hood.
Basically, the MRS is a set of communicating
components. For more details, have a look at the
components page; here's a brief summary of what is going on:
There is a ticking
timer component, creating a new "simulation step" (often referred to in the code and elsewhere as "step", "simstep" or "time") regularily. In the default configuration, the timer ticks every 100ms or 10 times per second.
When the timer decides to tick, it contacts the
server component, announces the new step and leaves everything else to the server. The server is called server because it's the component that all agents and consoles talk to. The server does the message routing between all other components. It gathers agent actions and perception, storing and forwarding information. When the server is told to initiate a new simulation step, it looks for the actions the agents wanted to perform in this step, wraps them all together and tells the world component that a new simulation step has come and what all the agents want to do in this step.
The world receives the actions, executes them and simulates its internal dynamics. Having done that, the simulation step is calculated.
While all this happens, the agents (possibly dozens of them) keep constantly asking the server for perception (and the server in turn asks the world), the agents send actions to be executed in the next step, and the consoles (possibly dozens of them, GUIs, 3DViewers, Websites) interact with the server, requesting information or modifications.
An agent typically calculates no or one action per simulation step. (Agents can send more than one action to the server, but only the last action will be executed, so every agent can execute only one action per steo.) What the agent implementation does to find out what to do is not the businnes of the MRS. However, the MRS provides an
agent framework component, including an agent adaptation API AAA that fosters the creation of agent implementations.
A console is a component that, in some way, interacts with the system. Consoles use the MRSs messaging capabilities to retrieve information or request modifications. On case of a console is the "Eclipse Console", the set of Eclipse plugibs you'r looking at when installing the toolkit. However, there are other consoles: Non-GUI (Text) consoles usable from the WWW etc.
As you see, a running MRS consists of components talking to each other. This talking is done through "channels". For more information on this concept, have a look at the
components snip. All channels can contain additional messages, called "questions" and "answers", that are used by consoles to talk to all other components in a generic, channel-independent manner.
All components live inside a "ComponentRunner". A ComponentRunner starts and operates one or more components. So, the technical definition of a running MRS goes as follows:
A running MRS consists of n (an arbitrary number of) instances of ComponentRunner in n Java VMs on up to n computers, each of which contains an arbitrary number of components. Exactly one component must be a timer, exactly one a server and exactly one a world component. The other components are agents or consoles.
(Note: A "world component" is not necessarily a simulated world. It can also be a "RobotWorldComponent", an interface to some real world.)
What the MRS can be used forWell. We use it for operating MicroPsi agents in simulated and real worlds. You can use it for playing with any number of mircpsi agents in a simulated word, a micropsi agent on a robot, or any kind of agent in the simulation or on the robot.
There are, howevery, scenarios where we would encourage you to use the MRS and others where whe would not. The MRS is something for you if you
- want to do something with node nets or our agents in general
- want to situate node-net or NN-agents
- want to do multi-agent simulations with any kind of agent, especially coginitively rich ones
- want to control robots with some complex kind of mind.
- want to do A-Life
Note that the MRS is
not:
- blazingly fast and suitable for real-time requirements (as you'd have in some RoboCup scenario.)
- suitable for any problem-solving or other, more technical understanding of the term "multi-agent system"
- able to process vast numbers of "unimportant", fast messages. The messaging model in the MRS is always store-and-forward. Messages will reach their destinations, but it takes time to travel through a system that might by distributed and held together even by HTTP-Requests.
It is perfectly possible to use the MRS "headless", without the Eclipse Console. See
How to configure the MRS for information on how to get the MRS running with or without the Eclipse Console.