Combinatorial optimization and neural networks