Most metaheuristics are search methods and when using them, the evaluation function should be subject to greater demands than a mathematical optimization. Not only does the desired target state have to be formulated, but the evaluation should also reward improvements to a solution on the way to the target in order to support and accelerate the search process. The
fitness functions of evolutionary or memetic algorithms can serve as an example. Metaheuristics are used for all types of optimization problems, ranging from
continuous through mixed integer problems to
combinatorial optimization or combinations thereof. In combinatorial optimization, an optimal solution is sought over a
discrete search-space. An example problem is the
travelling salesman problem where the search-space of candidate solutions grows faster than
exponentially as the size of the problem increases, which makes an
exhaustive search for the optimal solution infeasible. Additionally, multidimensional combinatorial problems, including most design problems in
engineering such as form-finding and behavior-finding, suffer from the
curse of dimensionality, which also makes them infeasible for exhaustive search or
analytical methods. Metaheuristics are also frequently applied to scheduling problems. A typical representative of this combinatorial task class is job shop scheduling, which involves assigning the work steps of jobs to processing stations in such a way that all jobs are completed on time and altogether in the shortest possible time. In practice, restrictions often have to be observed, e.g. by limiting the permissible sequence of work steps of a job through predefined workflows and/or with regard to resource utilisation, e.g. in the form of smoothing the energy demand. Popular metaheuristics for combinatorial problems include
genetic algorithms by Holland et al., or various engineering tasks. An example of the mixture of combinatorial and continuous optimization is the planning of favourable motion paths for industrial robots. == Metaheuristic Optimization Frameworks ==