I normally do machine learning work, and when I'm evaluating an algorithm on a data set, I always use cross-validation to determine how effective the algorithm is.  Is there a similar method for evaluating approximation algorithms on specific instances of NP-hard problems?  If not, how do you determine which algorithm is best for a given problem domain in practice?
Is there an algorithm that's like cross-validation for approximation algorithms of NP-hard problems?
np hardness;approximation algorithms;machine learning