A learning and pruning algorithm for genetic Boolean neural networks