For NP completeness proofs/reductions, I need to establish that the problem is a "search problem"...
However, the definitions seem to be somewhat vague. If the definition of the search problem is:
Search problem is a problem which has the following input/output form: Given instance I (graph G), we are asked to find a solution if one exists and if no solution exists we output No.
Aditionally, solution must be verifiable in polynomial time.
The part bracketed between the H-lines is where I am confused. Is this definition for a requirement for a non-deterministic polynomial time algorithm stating that the algorithm actually knows when the search has been completed?
In other words, what guarantee is there that the solution exists at all, and that the solution has been found?
Take for example an infinite search space. No matter how many random guesses I make, there is still a chance that I never discover the solution, never know that the search space has been comprehensively searched, and never return "NO."
So: two questions: how does one include the word exist in the definition--this seems like something that cannot be proven...
And: How does the non-deterministic search problem search the infinite (unbounded) search space? Why do I not also have to establish that the space is also finite? (incidentally, all the search spaces I have encountered in Dasgupta's book are, in fact, finite: TSP, Knapsack, Clique, etc.
So I'm really confused by the use of these words, and the lack of assumptions surrounding this definition. How does it actually work?