Commit f5fd4e20 authored by Markus Klinik's avatar Markus Klinik
Browse files

EA introduction

parent d4db89a6
\section{Evolutionary Algorithms}
Why are off-the-shelf schedulers not applicable? \citet{Deb2011}
We chose to use an evolutionary algorithm to calculate schedules.
This section describes what evolutionary algorithms are and why they are suited for our problem.
Evolutionary algorithms are a class of probabilistic population-based meta-heuristics for solving optimization problems.
\emph{Probabilistic} means that pseudo-random number generation is used to guide the algorithm.
There is no guarantee that the algorithm will always find the best solution.
\emph{Population-based} means that the algorithm has a set of candidate solutions which it tries to improve step by step.
The result is a set of solutions.
A \emph{meta-heuristic} is an algorithm that performs optimization without knowing about the underlying problem.
This is in contrast to normal heuristics, which use knowledge about the problem being solved.
A heuristic always guides a search algorithm through a search space towards an optimal solution.
For example, when searching for the shortest path on a map, the $A^*$ search algorithm can use as heuristic the straight-line distance to the goal to determine which path to extend next.
The straight-line distance is a problem-specific heuristic that can only be used in Euclidean spaces, but it works well for that purpose.
This is what is meant by a heuristic using knowledge about the problem.
Evolutionary algorithms fit our problem well, for two reasons.
First we are interested in alternative solutions, not just one solution.
Our algorithm calculates a final population, which is the set of the best solutions it has discovered, ranked by the capability function.
Second, user-defined capability functions make the search space unpredictable and non-continuous.
Because capability functions are Turing-complete calculations, it is impossible to estimate what kind of changes to a candidate will make it better or worse.
Meta-heuristics do not need knowledge about the function they are trying to optimize, which makes them a good fit for user-defined capability functions.
\citet{Deb2011} has conducted a lot of research about using evolutionary algorithms for multi-objective optimization and decision making.
His work has been a big inspiration for this article.
\subsection{Ingredients for Evolutionary Algorithms}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment