Boltzmann machine learning algorithm