An optoelectronic CMOS circuit implementing a simulated annealing algorithm