New Algorithms for the Simple Temporal Problem