An approach for designing an optimum Neural Network both in training strategy and architecture