This program learns to approximate a function from training data in a neural network. The learning step is done with artificial evolution. A neural network, consisting of two inputs and one output calculate result = input1 * weight1 + input2 * weight2 The weights are random initially and are changed randomly. If the result gets closer to the wanted result, the weights are further used. The graph shows the error over time. The red spikes show trials, where the weights of the neural network were changed in a bad direction and were reseted. The training data represents the sum of the two inputs. The program can learn any other linear combination of the two inputs. This is not the final version, as it is not 100% understandable.