modified: 19. Aug. 2005

HeuristicLab 1.1

The implementation of HeuristicLab 1.1 was started by Dipl.-Ing. Stefan Wagner and Priv.-Doz. Dipl.-Ing. Dr. Michael Affenzeller back in the year 2002. The main motivation for the development of HeuristicLab was to build a paradigm-independent, flexible, extensible, and comfortable environment for heuristic optimization on top of a state-of-the-art programming environment and by using modern programming concepts. As the Microsoft .NET framework seemed to fulfil our requirements we chose it as development environment and used C# as programming language.

The following list highlights the most important aspects influencing the HeuristicLab development process:

  • Paradigm-Independence:
    HeuristicLab is an environment for heuristic optimization in general and is not limited to any specific optimization paradigm (like Genetic Algorithms, Tabu Search, Simulated Annealing, or Local Search) or optimization problem. Due to a very high level of abstraction it is possible to implement very different kinds of optimization algorithms and problems for HeuristicLab. This approach has already proven its worth as lots of different algorithms and problems are already available within the HeuristicLab 1.1 environment.
  • Plug-In Architecture:
    All optimization algorithms and problems are realized as plug-ins within HeuristicLab 1.1 and interact with each other via well-defined and extensible interfaces. Following one of the basic principles of object-oriented programming, namely the reusability of code, the new operator concept of HeuristicLab 1.1 makes it possible to attack all different kinds of optimization problems with one algortihm implementation and vice versa.
  • Usability:
    In spite of the high level of abstraction HeuristicLab 1.1 is not just another optimization library but should be understood as optimization environment. Usability and user-friendliness are very important as HeuristicLab is not only used for rapid algorithm and problem development but also as optimization tool in industrial projects and as supporting tool in university courses. So HeuristicLab also provides a state-of-the-art graphical user interface, a self-explanatory installer, and a comprehensive documentation of its API.
  • State-of-the-art Programming Concepts:
    To fulfill all its requirements in an intuitive and intelligible way HeuristicLab uses modern programming concepts provided by the Microsoft .NET framework like delegates, events, meta-data, XML, etc.

More details about HeuristicLab 1.1 and its underlying architecture can be found in the documentation section.

 

Screenshots

Below several screenshots of HeuristicLab 1.1 can be found. For a larger version please click on the images.

 

Project History

Aug 19th, 2005 Release of HeuristicLab 1.1.0

Changes to version 1.0.0:
  • Soap serialization (XML-based) has been added as default file format to save algorithms or problems. Binary serialization is still available as an alternative.
  • A new overload of Problem.GenerateNewSolution has been added to duplicate solution objects.
  • Solution.Clone() has been added that calls Problem.GenerateNewSolution with this solution as argument.
  • A get-accessor has been added to TSMove.Solution.
Nov 18th, 2004 Release of HeuristicLab 1.0.0