SUPERVISED LEARNING ALGORITHM