D is the closest answer. It comes to the answer pretty darn quick too.
Here's how it works.
The test problem;
i_Constants a, b, & c.
n = rnd(10000)
a * b + c = n
At first, a,b,c randomly select test values and are scored better the closer the result is to n. These values are locked in and the score is retained for future comparison - typical genetic algorithm.
As the Epochs progress, the probability that any given i_Constant (a,b,or c) will attempt a new test value. So, for example:
Start...
a= test
b= test
c= test
next...
a= test
b= best
c= test
and then soon..
a= best
b= best
c= test
eventually...
a= best
b= best
c= best
and that should be the solution (or as close as the algorithm will come). Of course, the above is an example, the process happens many-many times and which i_Constant is tested is random (individually determined, not based on other selections, only probability).
This is, however, intended to be the background work for C - a multi-layer neural network.
In the case of the path determination, the solution is similar, just longer.
The problem; In 50 moves & 50 turns, navigate the maze without touching the walls and arrive at the top-right corner.
i_Constants(1-50) = Moves
i_Constants(51-100) = Turns
The score is based on how close the AI moves to the destination (cumulative for the entire journey), and points are deducted for every collision.
At first, all 50 moves and turns are randomly selected. As the Epochs progress, fewer moves and turns are altered until a "best" solution is arrived at.
The probability chance that a given i_Constant is ever changed is calculated as If Rnd(Epochs^P)<2 where P is a value 0> and <1.
Open MMORPG: It's your game!