"The Great Merge."
Most likely this is a familiar term, but perhaps you haven't been able to experience the idea quite yet, or are not familiar with the many benefits "The Great Merge" permits. Let us take a moment to expand upon "The Great Merge," other Agent-Based modeling enhancements, and what these changes mean for future model building. "The Great Merge," in summary, is an ultimate unification of agents, entities, resources, pedestrians, trains, etc. and is useful to modelers in a multitude of ways. Read through the following list to familiarize yourself with the new developments.
- Agents can be anything: An agent could go through a process flow chart with the appropriate characteristics, or if your model calls for it, an agent could be a pedestrian passing through an area where physical space and interactions are important. Delay blocks are unnecessary now for modeling these types of processes, and as a result you'll find combining modeling methods even simpler than before.
- Agents can contain statecharts: A statechart defines the current status of an agent. Notice in Illustration #1 above, where a patient agent, containing a statechart, contracts an illness, then enters a flow chart (possible treatment) that is shared by other similar agents, and is located in the Main object.
- Agent Population Wizard: The Wizard allows you to quickly set basic parameters of the agent population and the environment where it is going to exist. To launch, simply drag the Agent element from the General Palette to the Graphical Editor window (shown below in Illustration #2). You can also create new types of entities, resources, pedestrians, etc. and to increase ease of use, we've added such components to the corresponding libraries and set up the Agent Population Wizard to launch automatically when your creations are added to the Graphical Editor.
- Embed Agents: An agent can serve as an environment where other agents can be embedded. These parameters are easily set up in the agent's properties, no need to add an environment component (See Illustration #3).
- Connections element inside agents: You may often find yourself with many agents in one model, which leads to the need for agent interactions and agents uniting into one network. A Connections element has been added inside each agent, which includes the ability to set up interaction parameters and connections between the agent's contacts. In order to set up specific connections, for example, two-way connections between agents of different types, simply use the "Link to Agents" component from the General Palette, shown in Illustration #4 and #5 below. Other capabilities of this feature include connecting an entire list of the agents to one select agent and sending messages to particular agents in a contact list. Find out more about the Connections element on the Online Help page.
- Hierarchical links: Often developers make their AnyLogic models hierarchical, in which case you need to call one agent class by another. You will find, in AnyLogic 7, available links inside agents, making it easier to create a link to a different level of agent. In order to refer to the owner agent, use the pointer name main, instead of get_Main(), like before. Also, when you add an object to the canvas, the link to an upper-level agent is created automatically (See Illustration #6).
- Graphical inheritance: You can create a basic agent, ("vehicle". "Bus", "truck", and "car") that can inherit an agent class from an upper level agent. As you can see in Illustration #7 below, elements inherited from the upper-class agent will look blurred and be unavailable for editing, only parameter values can be changed. You will be able to avoid creating many similar agents using inheritance while building models that are better structured and easier to understand.
I hope you can put these improvements to good use during your future model building!