Why Are Some Problems Difficult to Solve

At the risk of starting with a tautology, real-world problems are difficult to solve, and they are difficult for several reasons: The number of possible solutions in the search space is so large as to forbid an exhaustive search for the best answer. The problem is so complicated that just to facilitate any answer at all, we have to use such simplified models of the problem that any result is essentially useless. The evaluation function that describes the quality of any proposed solution is noisy or varies with time, thereby requiring not just a single solution but an entire series of solutions. The possible solutions are so heavily constrained that constructing even one feasible answer is difficult, let alone searching for an optimum solution. The person solving the problem is inadequately prepared or imagines some psychological barrier that prevents them from discovering a solution.