NP-hard Problems