<human>:  Where do NP-hard and NP-complete problems come from?
<bot>: NP-hard and NP-complete problems are a result of the complexity theory. They are a result of the fact that if a problem is NP-hard, then it is NP-complete. The complexity theory is a branch of mathematics that studies the complexity of problems.