The backpropagation algorithm, discussed in Chapter 5, is one of the primary methods used to train multi-layer neural networks given a training set and a set of desired outputs. Backpropagation propagates errors back through the nodes of a network, altering the weights of the connections based upon the error of the actual and desired outputs. The interesting problem of training game neurocontrollers (game AI) is used to demonstrate backpropagation. Given a simple neural network, a set of environmental inputs and a set of allowable actions ( otherwise known as the training set), the algorithm trains the network to perform the desired action for the current environment. It is then demonstrated that the neurocontroller is able to generalize and perform useful behaviors for unforeseen environments. The backpropagation algorithm and neurocontroller application can be found on the CD-ROM at ./software/ch5 .