##
Problem Description

The task of the truck-backer-upper problem can be outlined as follows:
A truck is positioned at an arbitrary position (

*x,y*) on a yard with
an arbitrary angle of the truck cabin

*cabt* and an arbitrary heading
of trailer

*trailert* (see figure below). The truck moves at constant
speed backwards. The goal is to determine a controller that computes the
steering angle

*u* in dependence of the actual position, such that
the truck is driven into the loading dock at position (0,0). Hence, a functional
dependency

*u=g(x,y,cabt,trailert)* is searched.

The functions that can be used to compose the steering controller are:

PLUS(a,b) |
returns a+b |

MINUS(a,b) |
returns a-b |

MUL(a,b) |
returns a*b |

DIV(a,b) |
return a/b, if b <> 0, else 1 |

ATG(a,b) |
returns atan2(a,b), if a<> 0, else 0 |

IFLTZ(a,b,c) |
returns b, if a<0, else returns c |

Several approaches to solve this problem exist. The first solution was
presented in [2] using neural networks. Koza described the first experiments
with Genetic Programming to solve this task [1].

##
An Interactive Truck Applet

A simple demonstration of a the truck-backer-upper problem with a
control function that has automatically been derived by the Genetic Programming
optimization method can be tested on the left-hand side.

The control panel allows you to vary step size and speed of the simulation.
It also displays the function that is steering the truck. Currently this
formula can not be edited, so you can not enter a function on your own
(maybe this feature will be implemented in the future). You can click anywhere
in the area an the truck will start docking from his position. Keep the
mouse button pressed and and adjust the desired starting angle.

Note that this is just one solution to the problem, tested only for
a small number of positions on the grid. It is the first solution that
my GP system found.

Enjoy!

##
References

[1] John Koza. Genetic Programming. MIT-Press 1992.

[2] Derrick Nguyen and Bernard Widrow. The Truck Backer-Upper: An Example
of Self-Learning in Neural Networks.

*Neural Networks for Control*.
W.T. Miller III, R.S. Sutton, P.J. Werbos (Eds), The MIT Press 1990.