Combinatorial optimization and artificial neural networks