A network consisting of three classes of nodes that might be termed input, computational, and output. The aim of the network is to assign (i.e. connect) the input nodes to the output nodes in an optimal fashion. Typically this involves a computer-intensive process involving an accumulating series of input-to-output paths. The aim is usually to assign the various items of input data to an appropriate class (i.e. to the correct output node).