You are here

Open holonic multi-agent ITS architecture

21 January, 2016 - 14:46

Despite the fact that holonic multi-agent systems are suitable for agent based ITS development it is not clear how to use holons in ITSs without any specific architecture. Such architecture is proposed in (Lavendelis & Grundspenkis, 2008). From outside it is a single holon. The only agent that represents the system outside is the interface agent, which implements all interactions with the learner. So, it is the head of the higher level holon and the only agent implementing the communication module. The remaining modules are implemented as subholons and are included in the body of the higher level holon. Each module can be realized as one or more holons. Modules that carry out wide functionality (pedagogical module and student module) are implemented as multiple holons. The functionality of the student module contains the following two groups of functions: learner’s knowledge evaluation functions (usually evaluation of the learner’s solution) as well as building and maintaining of the student model. Thus the student model is realized as two holonic agents – student modelling and knowledge evaluation agent. The pedagogical module similarly to the above defined set of agents consists of the following holonic agents: the curriculum agent, the teaching strategy agent, the problem generation agent and the feedback agent. The expert module is implemented as a single agent – the expert agent. So, the higher level of the architecture contains 7 body agents (see Figure 12.2). The higher level agents have the same functionality as the agents from the above defined agent set, except three agents of the student modelling holon are merged into one higher level holon that has all the functionality of the three merged agents. Interactions among the higher level holons are defined in two degrees of detailed elaboration. Firstly the acquaintance diagram is developed showing which holons have any interactions. Secondly, messages sent among agents are defined in the interaction diagrams (Lavendelis, 2009).

media/image2.png
Figure 12.2 The higher level of the holonic ITS architecture 

Higher level agents are realized as holons that consist of a single head agent and some subholons (body agents). The head of the holon is responsible for the coordination of all subholons that is done by centralized planning and task allocation to the body agents. The heads use directory facilitator service to find body agents and their capabilities. Heads are responsible for tasks that need one unique performer, like, the head of student modelling agent is responsible for building complete student model and providing it to other agents.

The architecture is open and contains two types of holons: open and closed. Open holons consist of the head and a certain type of body agents, however, the number and exact instances of body agents are not defined during the design of the system and can be freely changed during the maintenance and runtime, so modifying the system’s functionality.

Body agents have to register their services at the directory facilitator agent. Heads of open holons use the directory facilitator agent to find actual body agents in open holons. Closed holons consist of agents that are specified during the design and can not be changed during the runtime of the system. Body agents are responsible for certain types of tasks that are subtasks of the holon’s tasks. Body agents of closed holons usually carry out principally different tasks. Contrary, body agents of open holons are responsible for different subtypes of one type of tasks. So, it is possible to add a new body agent to an open holon that is responsible for a new subtype of the task. For example, each body agent of an open holon is responsible for generation of one type of problems. New type of problems can be introduced by adding new body agents. Student modelling, curriculum and feedback agents are closed holons, while problem generation, teaching strategy, expert and knowledge evaluation agents are open holons. The interactions in all open holons as well as algorithms used by heads are similar. The main steps carried out to fulfil the task of the holon are the following:

1. The head of the holon receives request to carry out a task. If the task can be done by the head of the holon, it is performed and the result is sent to the requester and the algorithm ends. Otherwise, it continues with the Step 2.

2. The head of the holon queries the directory facilitator agent to find all body agents.

3. If the directory facilitator has found at least one appropriate agent, the head queries the body agents. Depending on the holon only one body agent or all appropriate agents are queried. One agent is queried if only one type of subtasks suites the request. All agents are queried if all types of subtasks suite the request. If no body agents are found a system error is generated.

4. After receiving the request from the head of the holon, body agents carry out the task and send the results to the head.

5. If more than one body agent is queried during the Step 3, the head waits for replies from all of them or until the time-out has occurred. Then, it finds the most appropriate result provided by the body agents. For example, if each body agent has generated a problem of some type, then the head chooses the most appropriate one for the learner.

6. The head forwards either the only result or the result chosen during the Step 5 to the agent that sent the request during the Step 1. The head may also send the result to some other agents, if needed.

Interactions in the closed holons are simpler than in open ones. There is no need to use directory facilitator service, because all body agents and their services are known. After the head of the holon receives the request for some task, it just has to find the corresponding performer for the task. Usually there is only one such performer in closed holons. It might be the head of the holon (usually for global tasks of the holon, like building full student model in the student modelling holon) or any of the body agents. If it is one of the body agents, it is requested to carry out the task and its result is forwarded to the initial requester. Open holons allow addition of new functionality of certain types without changing existing code. It is possible to add new body agents in the open holon and so add new types of subtask that holons are capable to accomplish. For example, each body agent of the problem generation holon generates some type of problems. To add new type of problems to the system, a new body agent is added to the open holon. Still, it is not the only agent that has to be added to the system, to add new type of problems. New body agents must be added to all open holons where each type of problems is treated differently. Such holons are expert agent’s holon and knowledge evaluation agent’s holon, because each type of problems must be solved and evaluated in different ways. Additionally, all new functionality must be provided to the learner. For, example new type of the problems must be shown to the learner by the interface agent. Thus the functionality of the interface agent should be extendable, too. To achieve it, the conception of hierarchical holonic multi agent systems is extended by implementing the head of the higher level holon (the interface agent) as an open holon. The most common tasks in the user interface are done by the head of the interface agent’s holon, while other tasks are done by the body agents. So, a corresponding body agent must be also added to the interface holon to add new type of problems. The whole holonic multi-agent ITS architecture is given in the Figure 12.3.

media/image3.png
Figure 12.3 Holonic ITS architecture (modified from (Lavendelis & Grundspenkis, 2008)