The
three terms – Algorithm, Heuristic and Metaheuristic – are often used in
Engineering fields. Knowing about these terms could be beneficial.
Algorithms
can be considered as any sequence of operations. Computer programs contain
algorithms which have detail instructions so that specific tasks can be
performed by computer.
Flowcharts
and programming languages are most commonly used to express Algorithms.
In optimization
problems, heuristic algorithms can be used to find a solution. These algorithms
work by getting closer and closer to the optimal solution in a relatively short
time as they progress. Tabu search (deterministic algorithm), simulated
annealing algorithms (non-deterministic algorithm), genetic algorithms are some
of them.
Heuristics
can be termed as strategy derived from previous experiences with similar
problems. Many heuristics algorithms are specific and problem dependent.
Metaheuristics
may be used for a variety of problems. Metaheuristics efficiently explore the
search space to find near optimal solution. Metaheuristics are not
problem-specific and algorithms are usually non-deterministic.
To improve
local search heuristic for finding better solutions, many metaheuristic ideas
were proposed; like – simulated annealing, tabu search etc. These can both be
classified as local search based or global search metaheuristics.
Ant
colony optimization, Particle swarm optimization, Genetic algorithms are
usually population based metaheuristics and global search metaheuristics.
Single
solution based metaheuristics include simulated annealing. This approach focuses
on improving a single candidate solution. Population based metaheuristics improve
multiple candidate solutions.
References: