Max-Product Belief Propagation for Linear Programming: Applications to Combinatorial Optimization