It is an unsupervised recurrent neural network that learns a probabilistic model of the data, and is used to optimize the solution of a problem by optimizing the weights and the quantity for the given problem.

In the Boltzmann machine, each node represents a binary value and is connected to all other nodes (like a Hopfield net). Hidden units learn some representation for the input space.