Main Page

From Open Metaheuristics

Open Metaheuristic (oMetah) is a library aimed at the conception of metaheuristics (i.e. genetic/evolutionnary algorithms, tabu search, simulated annealing, ant colony algorithms, etc.). It follows the "adaptive learning search" approach in the design of metaheuristics (an approach inspired from the "adaptive memory programming").

One of the main goal of oMetah is to permit rigourous empirical tests of metaheuristics, through a statistical approach.

oMetah is released under the LGPL license.

Image:Ometahlab show 0.2.2.png

Contents

Features

Optimize a problem

oMetah is implementing metaheuristics designed for hard optimization. If your problem has the following characteristics, then you will find oMetah usefull :

  • NP-Hard;
  • continuous (with real parameters values);
  • showing many local optima;
  • approximated optimum needed;
  • other (optionnal) characterstics, like non-derivability or discontinuities.

If your problem does not fit these requirements, you are probably searching for other optimization tools, metaheuristics should not be the best choice.

In the other case, oMetah will help you to solve your hard optimization problem, with a great felxibility and strictness. Additionnaly, you will find usefull to have a set of tools to study the behaviour of the metaheuristics, and find the best one for your problem.


Test a metaheuristic

oMetah is a high level framework, that does not postulate that you build a particular metaheuristic. Instead of restrain your implementation choice, it is designed to embbed your algorithm.

Thus, you can use a specialized framework to implement your metaheuristic, and simply build an interface for oMetah. Thus you can take advantage of the two worlds : use the best suited framework for implementing your metaheuristic and use the power of oMetah to test and use it.

Of course, if you do not use a particular framework, oMetah comes with a set of tools that help implementing your metaheuristic. The framework is focused on simplicity : it is easy to understand its design, it is easy to implement what you need in your own way (no complicated patterns or arcanes C++ hacks).

Once your algorithm implemented in oMetah, it automatically output an XML result file, that describes the whole optimization process. oMetahLab is independent from the framework, as it only use XML outputs to process the data. If you use a similar output from within your own software, you should be able to use it.

With oMetahLab, you can launch a complete test of your metaheuristic :

  • running a metaheuristic on a given problem several times, and put the results in a archive;
  • produce graphics and reports synthesising your results.
  • compare several metaheuristics on the same problem, or several problems optimized by one metaheuristic.


List of main features

Framework :

  • support for mono-objective continuous problems,
  • several metaheuristics already implemented (ant colony, estimation of distribution, genetic algorithm, simulated annealing, etc.),
  • several problems already implemented (classical test functions, CEC 2005 SSRPO benchmark, etc.),
  • you can use an extern python script to implement a problem,
  • you can connect optimization algorithms to a problem through network,
  • available for Linux and Windows operating systems (pure ANSI C++).

Lab :

  • use the graphical user interface to prepare your tests,
  • launch several times a metaheuristic on a problem,
  • save results in an XML archive,
  • choose the graphics synthetizing your data (PNG or PostScript, with R),
  • generate HTML or LaTeX reports.


Get informations

Get news about the project :


More informations :


Technical informations

Framework

oMetah is written in C++, using the Standard Template Library.

The oMetah core code design is separated in three components : algorithms, problem and communication. You have the choice of the way the algorithm and the problem are linked (static link, network, extern module, etc.).

Optional components are using Unix Sockets and the Python C API. SCons is used as a compilation manager.


Lab

oMetahLab is written in Python, and heavily use the RPy module to connect with the R project for statistical computing.

The Cheetah template system is needed to produce HTML or LaTeX reports.

Some additionnal R packages are necessary to generate specialized graphics.


Download

  • You can get one of the releases on the download page.
  • Or you can choose to download the latest sources via cvs:
Login anonymously:
cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/ometah login
Check out the sources:
cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/ometah co MODULE
(replace MODULE by ometah or ometahlab)
  • Alternatively, you can browse the CVS tree online.


Licence & Authors

Open Metaheuristic is a free software, licensed under the GNU Lesser General Public License (LGPL). Please, notes that this permit use and distribution of the code under certains conditions, read carefully the license.

Some optional code is under the General Public License (GPL). For the moment, only the parts concerning the image registration problem and interface, as they are linked to the (amazing) C++ Template Image Processing Library.

Here is the list of authors :

  • Johann "nojhan" DrĂ©o : main author, maintener (PhD in metaheuristics, WE);
  • Jean-Philippe Aumasson : original author of ometahlab (Master in computer science, W);
  • Walid Tfaili : classes design idea, some code (PhD Student in metaheuristics, W).