Maximising a function
e.g. Each value of parameter x constructs a solution with fitness f(x).
Find the x value that gives maximum fitness f(x).
Strategy:
-
If we have an equation for the function and it is differentiable:
-
Differentiate. Search for slope = 0.
This will give local max and min points if they exist
(if not infinite).
-
Interesting case is where no equation known / not differentiable
(but can still judge fitness of any given x).
-
Example of an Unknown or postulated function:
Input x = All the parameters that control a mobile robot.
Fitness f(x) = How well the robot played soccer.
Find x that maximises f(x).
General approach:
- Learn from exemplars (many samples of x and f(x)).
Build up a map of the function, ever increasing in accuracy and detail.
- If only interested in max fitness,
the map will end up in more detail in uplands (keep exploring)
than in lowlands (which we abandon).
The idea of Maximising a function
from exemplars
is that "nearby" Input should generate
"nearby" Output.
But some functions defeat this simple idea:
Non-chaotic functions
We do not expect in general
to be able to maximise a chaotic (or discontinuous) function from exemplars.
The global maximum must be surrounded by some continuous zone of uplands,
otherwise how can we find it.
It cannot be a single, isolated point
or else the odds of finding that precise x go to zero.