1. A computer-implemented neural network system for arranging a plurality of parts among N positions in M-dimensions, including a plurality of neurons, wherein each neuron has M inputs, each input having a synapse, each synapse having a weight, and each neuron having an output indicative of similarity of the inputs to the weights, the parts being combined with one another through a set of connecting wires, the neural network system comprising: means for assigning each of the plurality of neurons to a different part; means for initializing the weight of each synapse of each neuron; and means for executing a learning cycle, comprising: means for inputting a position coordinate to the inputs of the neurons, indicative of one of the N positions at which a part can be placed; means for selecting a fittest neuron, responsive to the outputs of the neurons, wherein the fittest neuron is the neuron whose weights are most similar to the input position coordinate, and for updating the weights of the synapses of the plurality of neurons according to a set of restricting conditions; and means for repetitively operating the means for inputting, means for selecting, and means for assigning, so that a fittest neuron is selected for each of the N positions.