We discuss the problem of solving (approximately) combinatorial optimization problems on a Boltzmann machine. It is shown for a number of combinatorial optimization problems how they can be mapped directly onto a Boltzmann machine by choosing appropriate connection patterns and connection strengths. In this way maximizing the consensus in the Boltzmann machine is equivalent to finding an optimal solution of the corresponding optimization problem. The approach is illustrated by numerical results obtained by applying the model of Boltzmann machines to randomly generated instances of the independent set, the max cut, and the graph coloring problem. For these instances the Boltzmann machine finds near-optimal solutions whose quality is comparable to that obtained with sequential simulated annealing algorithms. The advantage of the Boltzmann machine is the potential for carrying out operations in parallel. For the problems we have been investigating, this results in a considerable speedup over the sequential simulated annealing algorithms.