Integer Programming And Combinatorial Optimization by William J. Cook