MadKitGroupExtension - Presentation

As its name indicates it, MadKitGroupExtension is an open source extension of MadKit that enables to manage advanced representations of groups.


In MadKit, a group contains several agents which plays several roles. In MadKitGroupExtension, groups are represented as a hierarchy. So one group can be contained in a parent group, which can be contained in its turn in another parent group. In the same way, a group can contain several sub groups. That can be very usefull for the design of advanced multi-agent systems.


The next diagrams should enable the lecturer to better understand differences between MadKit and MadKitGroupExtension.


Partial MadKit UML representation :


MadKit UML



Partial MadKitGroupExtension UML representation:

MadKitGroupExtension UML


The class AbstractGroup is the super class of Group and MultiGroup. The class Group can represent one group, or one group and all its subgroups. The class MultiGroup can group several AbstractGroup which can be part of several branches of the group hierarchy. Then it is possible with the class MultiGroup to repesent a group, and all its subgroups, but also a group and another without requiring that must be part of the same branch of the tree of groups.



Note that one agent can't be attached to a MultiGroup or a Group that represents itself and its subgroups. It can be attached to a Group that represent only itself. This choice has been done to not loose the user. Indeed, if the agent could handle a set of groups, it should handle all groups represented by this set. However, this set aims to evolve over the time, especially if it represents subgroups. So the groups of the agent should evolve over the time. We have decided that this is too much ambigous for the user.



Here you will find examples in the use of classes Group and MultiGroup:

Examples in the use of classes Group and MultiGroup


The blue selection represent an instance of the class Group that represent only one group (Group 12). The green selection represent an instance of the class Group that represent Group 1 and its subgroups. The red selections represent three instances of the class Group that are regrouped in one instance of the class MultiGroup.