HeuristicLab
   HOME

TheInfoList



OR:

HeuristicLab is a software environment for
heuristic A heuristic or heuristic technique (''problem solving'', '' mental shortcut'', ''rule of thumb'') is any approach to problem solving that employs a pragmatic method that is not fully optimized, perfected, or rationalized, but is nevertheless ...
and
evolutionary algorithm Evolutionary algorithms (EA) reproduce essential elements of the biological evolution in a computer algorithm in order to solve "difficult" problems, at least Approximation, approximately, for which no exact or satisfactory solution methods are k ...
s, developed by members of the Heuristic and Evolutionary Algorithm Laboratory (HEAL) at the University of Applied Sciences Upper Austria, in
Hagenberg im Mühlkreis Hagenberg im Mühlkreis is a town in the district of Freistadt in the Austrian state of Upper Austria 20 km from Linz. Hagenberg became known for Softwarepark Hagenberg a major technology park focusing on IT, with research, education and busi ...
. HeuristicLab has a strong focus on providing a graphical user interface so that users are not required to have comprehensive programming skills to adjust and extend the algorithms for a particular problem. In HeuristicLab algorithms are represented as operator graphs and changing or rearranging operators can be done by drag-and-drop without actually writing code. The software thereby tries to shift algorithm development capability from the software engineer to the user and practitioner. Developers can still extend the functionality on code level and can use HeuristicLab's plug-in mechanism that allows them to integrate custom algorithms, solution representations or optimization problems.


History

Development on HeuristicLab was started in 2002 by Stefan Wagner and Michael Affenzeller. 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 The .NET Framework (pronounced as "''dot net''") is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being ...
seemed to fulfill this requirements it was chosen as the development environment and C# as programming language. The first officially available version of HeuristicLab was 1.0 released in 2004 with an improved version 1.1 released in 2005. Development on the next version of HeuristicLab started in the same year. Among many things it was decided that HeuristicLab 2.0 should provide an entirely new user experience and lift the burden of programming off of the user. Therefore, HeuristicLab 2.0 was the first version featuring graphical tools for creating algorithms, however due to the complexity of the user interface HeuristicLab 2.0 was never released to the public. In the summer of 2007 it was decided that a new iteration of HeuristicLab was needed which should combine the usability of version 1.1 with the algorithm modeling concepts of version 2.0. HeuristicLab 3.0 was released internally in the beginning of 2008. In the next 2 years HeuristicLab was gradually improved which led to the release of version 3.3 in summer 2010 as
open source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
.


Features

; ''Algorithm Designer'' : One of the features that distinguishes HeuristicLab from many other metaheuristic software frameworks is the algorithm designer. HeuristicLab allows to model algorithms in a graphical way without having to write any source code. Algorithms in HeuristicLab are a composition of operators which are chained together. This sequence of operators is called the operator graph and can be viewed and edited for any algorithm in HeuristicLab. HeuristicLab also offers a so called Programmable Operator that can include source code which can be written from within HeuristicLab. Seeing how other algorithms work allows to try out new ideas by starting from an existing algorithm and incrementally modifying it. Of course new algorithms can also be created by writing code. ; ''Experiment Designer'' : In HeuristicLab's Experiment Designer different algorithms with different parameter settings and problems can be composed, executed and analyzed. This is very useful for parameter tuning tasks where different parameterizations have to be executed and compared. HeuristicLab offerers a number of tools for graphically analyzing the results. ; ''Plugin Infrastructure'' : Every functionality in HeuristicLab is available as a plugin. Developers can create and reuse plugins to integrate new features and extend the functionality of HeuristicLab. ; ''Some other features'' : * Genetic programming models can be simplified. The genetic programming trees can be exported to MATLAB, LaTeX, Excel or other formats. * Algorithms, problems, experiments, and results can be saved. Algorithms can be executed, pause, saved, restored, and continued. * Algorithms and experiments can be executed in parallel on multi-core and distributed computing systems. * Charts can be customized and exported to various image formats. * Results and other data can be copied to and from Microsoft Excel or other applications. * Write and solve MIP/LP models with integrated Google OR-Tools * HeuristicLab can be coupled with external applications, such as simulation models, to optimize their parameters. * Support for distributed computing (HeuristicLab Hive) based on a master-slave model similar to e.g.
Boinc The Berkeley Open Infrastructure for Network Computing (BOINC, pronounced rhymes with "oink") is an open-source middleware system for volunteer computing (a type of distributed computing). Developed originally to support SETI@home, it became the ...


Supported algorithms

The following list gives an overview of the algorithms supported by HeuristicLab: *Genetic algorithm-related **
Genetic Algorithm In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to g ...
** Age-layered Population Structure (ALPS) **
Genetic Programming Genetic programming (GP) is an evolutionary algorithm, an artificial intelligence technique mimicking natural evolution, which operates on a population of programs. It applies the genetic operators selection (evolutionary algorithm), selection a ...
**
Evolution strategy Evolution strategy (ES) from computer science is a subclass of evolutionary algorithms, which serves as an optimization (mathematics), optimization technique. It uses the major genetic operators mutation (evolutionary algorithm), mutation, recomb ...
**
CMA-ES Covariance matrix adaptation evolution strategy (CMA-ES) is a particular kind of strategy for numerical optimization. evolution strategy, Evolution strategies (ES) are stochastic, Derivative-free optimization, derivative-free methods for numerical ...
** Island Genetic Algorithm ** Island Offspring Selection Genetic Algorithm ** RAPGA ** SASEGASA ** Offspring Selection Evolution Strategy (OSES) ** Offspring Selection Genetic Algorithm ** Non-dominated Sorting Genetic Algorithm II * Ensemble Modeling * Gaussian Process Regression and Classification * Gradient Boosted Trees * Gradient Boosted Regression * Local Search *
Particle Swarm Optimization In computational science, particle swarm optimization (PSO) is a computational method that Mathematical optimization, optimizes a problem by iterative method, iteratively trying to improve a candidate solution with regard to a given measure of qu ...
* Parameter-less population pyramid (P3) * Robust Taboo Search * Scatter Search *
Simulated Annealing Simulated annealing (SA) is a probabilistic technique for approximating the global optimum of a given function. Specifically, it is a metaheuristic to approximate global optimization in a large search space for an optimization problem. ...
*
Tabu Search Tabu search (TS) is a metaheuristic search method employing local search methods used for mathematical optimization. It was created by Fred W. Glover in 1986 and formalized in 1989. Local (neighborhood) searches take a potential solution to a ...
* Variable Neighborhood Search * Performance Benchmarks * Cross Validation *
k-Means ''k''-means clustering is a method of vector quantization, originally from signal processing, that aims to partition of a set, partition ''n'' observations into ''k'' clusters in which each observation belongs to the cluster (statistics), cluste ...
*
Linear Discriminant Analysis Linear discriminant analysis (LDA), normal discriminant analysis (NDA), canonical variates analysis (CVA), or discriminant function analysis is a generalization of Fisher's linear discriminant, a method used in statistics and other fields, to fi ...
*
Linear Regression In statistics, linear regression is a statistical model, model that estimates the relationship between a Scalar (mathematics), scalar response (dependent variable) and one or more explanatory variables (regressor or independent variable). A mode ...
*
Nonlinear Regression In statistics, nonlinear regression is a form of regression analysis in which observational data are modeled by a function which is a nonlinear combination of the model parameters and depends on one or more independent variables. The data are fi ...
* Multinomial Logit Classification *
Nearest Neighbor Regression NEAR or Near may refer to: People * Thomas J. Near, US evolutionary ichthyologist * Near, a developer who created the higan emulator Science, mathematics, technology, biology, and medicine * National Emergency Alarm Repeater (NEAR), a former ...
and Classification * Neighborhood Components Analysis * Neural Network Regression and Classification *
Random Forest Random forests or random decision forests is an ensemble learning method for statistical classification, classification, regression analysis, regression and other tasks that works by creating a multitude of decision tree learning, decision trees ...
Regression and Classification * Support Vector Regression and Classification * Elastic-Net * Kernel Ridge Regression * Decision Tree Regression * Barnes-Hut t-SNE * User-Defined Algorithm: Allows to model algorithms within HeuristicLab's graphical modeling tools.


Supported problems

The following list gives an overview of the problems supported by HeuristicLab: * Artificial Ant * Classification * Clusterin * Deceptive trap (step) * Even Parity * HIFF *
Knapsack A backpack, also called knapsack, schoolbag, rucksack, pack, booksack, bookbag, haversack, packsack, or backsack, is in its simplest frameless form, a fabric sack carried on one's back and secured with two straps that go over the shoulders; b ...
*
Bin Packing The bin packing problem is an optimization problem, in which items of different sizes must be packed into a finite number of bins or containers, each of a fixed given capacity, in a way that minimizes the number of bins used. The problem has m ...
*
Graph Coloring In graph theory, graph coloring is a methodic assignment of labels traditionally called "colors" to elements of a Graph (discrete mathematics), graph. The assignment is subject to certain constraints, such as that no two adjacent elements have th ...
* Koza-style Symbolic Regression * Lawn Mower * Multiplexer * NK ,QLandscapes * OneMax * Quadratic Assignment *
Job Shop Scheduling Job-shop scheduling, the job-shop problem (JSP) or job-shop scheduling problem (JSSP) is an optimization problem in computer science and operations research. It is a variant of optimal job scheduling. In a general job scheduling problem, we are gi ...
* Orienteering * Regression * Robocode * Single-Objective Test Functions * Multi-Objective Test Functions * Symbolic Classification * Symbolic Regression * Time Series Prognosis * Trading *
Grammatical Evolution Grammatical evolution (GE) is a genetic programming (GP) technique (or approach) from evolutionary computation pioneered by Conor Ryan, JJ Collins and Michael O'Neill in 1998 at thBDS Groupin the University of Limerick. As in any other GP approach ...
* Traveling Salesman * Probabilistic Traveling Salesman *
Vehicle Routing The vehicle routing problem (VRP) is a combinatorial optimization and integer programming problem which asks "What is the optimal set of routes for a fleet of vehicles to traverse in order to deliver to a given set of customers?" It generalises ...
* User-defined Problem: A problem which can be defined with HeuristicLab's graphical modelling tools. * External Evaluation Problem (single- and multi-objective): Allows to use external programs for evaluating solution candidates. This is useful for e.g. simulation-based optimization. Natively supported applications include e.g.
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
and
Scilab Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simul ...
.


See also

*
Metaheuristic In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, tune, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an op ...
s *
Genetic Algorithm In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to g ...
s *
Genetic Programming Genetic programming (GP) is an evolutionary algorithm, an artificial intelligence technique mimicking natural evolution, which operates on a population of programs. It applies the genetic operators selection (evolutionary algorithm), selection a ...
*
ECJ The European Court of Justice (ECJ), officially the Court of Justice (), is the supreme court of the European Union in matters of European Union law. As a part of the Court of Justice of the European Union, it is tasked with interpreting EU ...
, A toolkit to implement Evolutionary Algorithms *
ParadisEO ParadisEO is an object-oriented framework dedicated to the flexible design of metaheuristics. It uses EO, a template-based, ANSI-C++ compliant computation library. ParadisEO is portable across both Windows system and sequential platforms (Un ...
, A metaheuristics framework


References

{{Reflist


External links


HeuristicLab Homepage

HEAL Homepage
Heuristic algorithms