### EA introduction

parent d4db89a6
 \section{Evolutionary Algorithms} \label{sec: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!