wiki:UsersFeatures

HeuristicLab Features

This page gives a brief overview of HeuristicLab in general and it's features.

1. General

1.1 Facts

  • development of HeuristicLab started in 2002
  • based on Microsoft .NET and C#
  • used in research, education and industry projects
  • second place at the Microsoft Innovation Award 2009
  • open source (GNU General Public License)
  • version 3.3.0 released on May 18th, 2010 (first version licensed under GNU GPL)
  • periodic releases every 3-6 months

1.2 Goals

  • strong focus on a graphical user interface for interactive development, analysis and application of heuristic optimization methods
  • paradigm independence: numerous optimization algorithms and optimization problems
  • support for extensive experiments and analysis
  • parallel and/or distributed execution of algorithms and experiments on multi-core or cluster systems
  • extensibility, flexibility and reusability (plug-in architecture)
  • visual and interactive algorithm development

2. Problems

The following problems are currently available in HeuristicLab:

3. Algorithms

The following algorithms are currently available in HeuristicLab:

4. Additional Features

  • comfortable and feature rich graphical user interface
  • pause and continue algorithms at any time
  • save and load algorithms and problem to/from disk
  • batch execution of algorithms and experiments
  • experiment designer to create and execute a large number of test runs
  • parallel execution of algorithms and experiments on multi-core systems
  • parallel and distributed execution of experiments with HeuristicLab Hive (see Hive Howtos)
  • graphical and interactive analysis and comparison of parameters and results
  • graphical algorithm designer to create and modify algorithms
  • plug-in based architecture which enables an easy integration of new operators, algorithms and problems
  • generic, flexible and extensible algorithm and data model
  • generic interface to couple HeuristicLab with other applications
  • export charts in various image formats
  • copy & paste result tables to Excel or other applications
  • export GP trees to MATLAB, LaTeX or other formats

And there is a lot more to discover. Have a look at the roadmap to see on what we are currently working on or experiment with builds of yet unreleased features.

5. Graphical Tour

To give you a better feeling for what you can do with HeuristicLab, here are some screenshots which show different features of HeuristicLab in action. (To view a picture in full size click on the image)

The following picture shows a screenshot of the quality chart running a genetic algorithm on the TSPLIB ch130 problem:


The next screenshot shows one of the analyzers in action. For every generation a chart is generated showing the similarity of each solution candidate to each other in the form of a heat map:


The next image is from the same run as the above screenshot showing the current best solution in a graphical representation:


HeuristicLab also offers a graphical representation for the currently best solution for the vehicle routing problem...


... or the artificial ant problem:


The next image shows a Genetic Algorithm optimizing a classification problem with the currently best GP tree as well as the ROC curve:


The next image is from the same run, this time showing our GP simplification feature for simplifying GP trees:


This is again a screenshot from the GP implementation. This time it is a regression problem showing the currently best tree as well as a chart showing the training and test set:


And again an image from the same run, but now optimized and simplified:


This image shows the graphical and textual representation of a GP tree:


The next 2 images show the graphical tools for analyzing algorithm runs. The following image shows a bubble chart for analyzing the impact of different crossover operators on the quality of a GA on a VRP problem:


And another chart showing a box plot diagram for the same configuration (different crossovers on a VRP):


This image shows the debug engine for analyzing a GA. This can be used for finding bugs or analyzing HeuristicLab algorithms. The picture shows the scopes of a GA before crossover:


HeuristicLab allows to design algorithms in a graphical way. The following screenshot shows the graphical representation of a GA. A new programmable operator is added which will be executed after the mutation:


The result of the previously added programmable operator is a Messagebox after each mutation step:


HeuristicLab provides support for distributed computing starting with version 3.3.6. The following shows uploading an experiment to the Hive:


Another sneak preview on a not yet released feature: Meta-Optimization. The following screenshot shows the meta-optimization problem. Different parameters of an Genetic Algorithm are configured for parameter meta-optimization:

Attachments