The fitness function is generally one of the least discussed parts of metaheuristics. However, it is one of the most important parts, if not directly the most. A wrong heuristic can give you a bad Estimate. But a lousy fitness function can give you an entirely correct solution for a problem that is not the one you want to solve.
It is important to note that do not solve the problem you want, but the fitness function describes. It sounds obvious, but it causes more headaches than it seems. There are times when it is not easy to assess the solutions.
For example, with combinatorics problems, especially if there are restrictions between the elements. It can be challenging to say if a partial solution is better than another and even more challenging to estimate how much better.
Incorrectly valuing these solutions can cause the algorithm to “go off track” or even have incorrect answers with better values than the correct ones.
Another problem arises when evaluating solutions that are not valid, for example, solutions that make sense mathematically but are unfeasible in practice.
In principle, the logical thing may seem to consider them invalid and not continue down that path; however, it may be necessary to explore another area where they are valid.
It also influences the algorithm’s performance since the fitness calculation is usually the most expensive part of each iteration. Any optimization of it has a beneficial effect on the time it takes to perform each iteration.
In high problem with a global and a local search phase, it can also be interesting to use less precise functions in the worldwide search to save time.
Precisely for this reason, it is worth considering starting with a simplified version without the most expensive restrictions or less resolution.
As the algorithm progresses, move on to a more precise and complete one. As always, these optimizations should not affect the “relief” of the search space.
Minimize, Maximize, Optimize
Some algorithms work by looking for the maximum, others the minimum. The result of the fitness inference essential is different from this. Suppose we have a fitness function designed for one type, and we want to transform it into the other.
In that case, the simplest way is to calculate the maximum value that the fitness function can take in the search space (if it is not possible to know it exactly,
we will have to estimate it) and subtract the value of the fitness function at that point. That is, from a fitness function, the new will be:
In short, the result of the fitness function provides the information for the metaheuristic to work. If the fitness function does not “draw a map” suitable for the search, it will not work correctly no matter what metaheuristic is cast-off.
Genetic Programming and Algorithms
It is create by applying the fitness function to the test or simulation results obtain from that solution. After each round of testing or imitation, the idea is to eliminate the n worst design solutions and generate n new ones from the best design solutions.
In particular, in genetic programming and genetic algorithms, each design solution is commonly represent as a string of numbers (referred to as a chromosome ).
Therefore, each project result would be a valuable character to show how close it came to meeting the overall specification.
Genetic algorithms cannot be unhurried lazy to do design work because of the effort involved in designing a functional fitness function.
Although it is no longer the human designer but the computer that presents the final design, it is still the human designer to design the fitness function.
If it is poorly measure, the algorithm will either converge on an inappropriate solution or have difficulty connecting.
The fitness function must not only correlate closely with the designer’s goal, but it must also be computationally efficient. Execution speed is critical since a typical genetic algorithm must remain repeated many times to produce a usable result for a non-trivial problem.
The Fitness Approach may be Appropriate, Especially in the Following Cases
- Single solution fitness computation time is extremely high
- Lack of a precise model for the calculation of fitness
- The fitness function is uncertain or noisy.
There are two main classes of fitness functions: one in which the fitness function does not change, as in the optimization of a fixed position or testing with a fixed set of test cases; and one where the is variable, as in niche difference or co-evolution of the group of test cases.
There are two main classes of fitness functions: one in which the fitness function does not change, the optimize of a fixed location or testing with a limited set of test cases, and
one where the fitness function is variable, as in niche difference or co-evolution of the group of test cases.