My favorites | Sign in
heo
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Project Information
Members
Featured
Downloads

Project Description

HeO (Heuristic Optimization) is a cross-platform library that provides various parallel metaheuristic algorithms for hard optimization problems. The library is written in C++ using modern programming, metaprogramming and parallel computing techniques. The main goal of the project is to provide the researchers with the state-of-the-art and easy-to-use software tool that can be applied to a wide range of optimization problems.


Key Features

  1. The source code is platform-independent and can be used on Windows and Linux systems without any alterations.
  2. x86 and x64 architectures are supported.
  3. All optimization methods are implemented as algorithmic skeletons (solvers) that can be applied to different optimization problems.
  4. Solvers are hybridization-ready.
  5. Each optimization method is implemented using two parallel programming techniques: OpenMP and MPI.
  6. The MPI versions of the optimization methods use the original MPI wrapper compatible with MPICH and LAM libraries.
  7. Parallelism is fully transparent to the library users.
  8. The original reflection technology allows loading, saving, printing and passing instances in a uniform way.
  9. Wizards ease the process of creating user projects and running them on distibuted and shared memory platforms.


System Requirements

To build and run projects that use the HeO library you need to have installed:

  • MS VC++ (2005 or higher), GCC with OpenMP support (4.1.2 or higher) or Intel C++ Compiler (11.1 or higher) depending on your system.
  • MPI-1 or MPI-2 library (e.g., MPICH or LAM).
  • Platform SDK for Windows.

Current Status

Version 1.1 is available. In this version:

  • Two optimization methods are provided:
    1. GA – Genetic Algorithm.
    2. SA – Simulated Annealing.
  • Two types of hybrids can be constructed from the basic methods:
    1. Weak (by the means of the solution pool).
    2. Strong (using the operators vector).
  • Sample projects for the following optimization problems are implemented:
    1. GENERIC – Dummy problem that helps to understand the concepts of the HeO library.
    2. QAP – Quadratic Assignment Problem.
    3. GRIDMIN – Minimization of the covering grids number in the matrices associated with the nondeterministic finite automata.
    4. MAX-SAT – Maximum satisfiability problem.
    5. ODE1IVP – Numeric solution of initial value problems for odinary differential equations of the first order.
    6. ONE-MAX – Maximization of the number of 1s in a bit string.
    7. RASTRIGIN – Minimization of Rastrigin function.

Powered by Google Project Hosting