Efficient methods for Discrete Optimal Transport