Batch Testing, Adaptive Algorithms, And Heuristic Applications For Stable Marriage Problems