Combinatorial Optimization with Machine Learning