MaDKit ${madkit.version}


Multiagent Development Kit
by Fabien Michel, Jacques Ferber, and Olivier Gutknecht.
www.madkit.net
${TODAY}
MaDKit is a multiagent-based development platform written in Java that allows to easily
build distributed applications and simulations using the multiagent paradigm.
One key aspect of MADKit is that, in contrast to conventional approaches which are mostly agent-centered,
MaDKit follows an organization-centered approach (OCMAS).
Especially, MaDKit does not enforce any consideration about the internal structure of agents, thus allowing a developer to freely implements its own agent architectures.
So, MaDKit is built upon the AGR (Agent/Group/Role) organizational model and does not rely on a predefined agent model: (any kind of)
Agents play roles in groups and thus create artificial societies. So MaDKit features:
MaDKit-5 is free software, licensed under the CeCILL-C, featuring:
- Artificial agents creation and life cycle management.
- An organizational infrastructure for communication between agents.
- High heterogeneity in agent architectures: No predefined agent
model.
- Multi-Agent based simulation and simulator authoring tools.
- Multi-agent based distributed application authoring facilities.
Documentation and resources
- API:
Javadoc
detailing
the
MaDKit programming interface
- Tutorials: Getting
started with MaDKit source
code examples
illustrating basic features
- A French
tutorial realized by second year students at the IUT of
Montpellier, and its source
codes.
- Demo source codes are also a good starting point. They are available in the demos directory of the MaDKit-${madkit.version}.zip file.
- Xml files could be used to set the running parameters and launch agents. An example is available in the
${docs.dir}: XML_config_example.xml.
- A build.xml
ant file for easing the development and deployment of MaDKit projects.
- MaDKit classes Java source
code as a zip file. It could be used to attach source in an
IDE for easing the development.
Testing MaDKit ${madkit.version}
- unzip the MaDKit-${madkit.version}.zip file somewhere in your
file system.
- using java -jar ${madkit.jar.name}
launches the desktop mode of MaDKit which could be used to test the
demos.
The demo directory contains files for different
purposes:
- Using the jar
files
These jar files are runnable: Double click them
(file execution permission is required) or use java -jar
demo-name.jar
They are also used to build the demo menu of the
MaDKit 5 desktop which could be launch by running the kernel jar file.
- Using the jnlp files
These files could be used to launch the last version
of a demo using Java web start.
You can also distribute these files so that one can
see the demos without installing anything
- Source codes
can be tested in Eclipse with Import > Existing
project > Select Archive File > demo-name.-src.zip >
finish
Developing with MaDKit ${madkit.version}
${madkit.jar.name} is a regular
Java library which could be used by simply having it on the classpath:
- unzip the MaDKit-${madkit.version}.zip file somewhere in your
file system.
- In a new Java project, add the ${madkit.jar.name}
to the build path (e.g. in your Eclipse project).
- Now, you can start using the API.
- Optional: You can use the build.xml
file in your project to easily build library and deployment files
(runnable jars, Java Web Start files, etc.)
To launch your MaDKit agents, simply either
(1) use, anywhere, a main method with something like :
public static void main(String[] args) {
new
Madkit("--launchAgents","mypackage.myagentClass;mypackage.myOtherAgentClass");
}
(2) use, in an agent class, a main method with :
public static void main(String[] args) {
executeThisAgent(args) // This will execute one agent of this kind with
a GUI
}
(3) use a command line such as
java -cp pathTo-${madkit.jar.name}:yourClassPath madkit.kernel.Madkit
--launchAgents mypackage.myagentClass;mypackage.myOtherAgentClass
Other command line options are described in the API of the
madkit.kernel.Madkit class
Online help
Release notes
License
- MaDKit ${madkit.version} is 100% pure JDK and free software
licensed under the CeCILL-C license.