JMH (Java MetaHeuristics)

JMH is the acronym of Java MetaHeuristics. JMH is a framework to create metaheuristic algorithms and compare them among each other. It is specifically designed to do research in the metaheuristics field.

JMH is evolving very fast. Nowadays, it offers the following funcionality:

  • A framework for defining algorithms: constructive methods, improvement methods, solution combinators; and mixing all these methods into different metaheuristics (Scatter Search, GRASP, Genetic Algorithms, and so on)
  • A framework to compare different algorithms through experimentation
  • Classes to perform different types of analysis over the data generated by the experiments ran
  • Utility classes that are used across the framework, but that can be also used by developers when defining their own algorithms: a random number generator manager, implementation of RCLs, methods for efficiently ordering arrays and collections, among others

JMH provides several metaheuristics that can be used out-of-the-box. They can be configured by different ways. For instance, there is a GRASP class, and users of this class can configure an object of this class with the constructive and improment methods they want to use, and it is ready to be used within an experiment.

However, when there is a heavy need for efficiency, users may prefer to develop their own metaheuristics, even if there is a ready-to-use implementation in the framework. In this case, the framework provides several utility classes that it is worth to consider using them. Have a look at the es.gavab.jmh.util project.

Download

JMH can be downloaded from the SourceForge page (SVN repository: https://jmh.svn.sourceforge.net/svnroot/jmh)

Documentation

Given the dynamic nature of the project (with frequent changes in the code made by the developers in an "as-needed" basis) we have no time to prepare a complete documentation of the different features of the framework. We are doing an effort towards documenting the code to make understandable by anybody who reads it (supposing he has some idea of what metaheuristics are). However, packages and class names are self-explanatory. 

Development

The development page contains information about future development of the project. You need to be a project developer in order to access this page.

Get Java Metaheuristics (JMH) at SourceForge.net. Fast, secure and Free Open Source software downloads

last modified by Francisco Gortázar on 2010/01/14 16:41

Creator: Francisco Gortázar on 2009/08/27 18:15
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 1.9.3.22597 - Documentation