0
  1. In computation theory, when talking about the computability and complexity of a problem, what is the definition of a problem?

    How specific should a problem be? For example, can the followings all be function evaluation problems?

    • evaluate $f$, where $f(x)=x^2, x \in \mathbb R$
    • evaluate any function in $\mathbb R^{\mathbb R}$.
    • evaluate any function in $Y^X$, where $X$ and $Y$ are any two sets.
  2. Without restriction to the computability and complexity of a problem (or even without restriction to computation theory), how is a problem defined?

    Can the above examples in 1 all be function evaluation problems?

Thanks.

Raphael
  • 73,212
  • 30
  • 182
  • 400
Tim
  • 5,035
  • 5
  • 37
  • 71

2 Answers2

3

A problem is anything you're trying to solve computationally. Problems typically specify an input and a desired output which, for most models of computation, will both be finite. Any statement of the form, "Given $X$, compute/evaluate/find/determine/decide whether/..." is a problem.

So, yes, all the things you describe in the question are problems. (Though, in the case where the input is the uncountable set $\mathbb{R}$, you need to be careful about how you specify what the input is.)

David Richerby
  • 82,470
  • 26
  • 145
  • 239
2

A computational problem can be viewed as an infinite collection of instances together with a solution for every instance.

For example, consider the problem of finding $f(x)=x^2$. Then $x$ is the input; $<5>$ is an input instance and $25$ is the solution to that. Therefore, This problem is defined by the pairs of input and answer, i.e. $f=\{(1,1), (2,4), (3,9),...\}$.

Note that you should not confuse the problem instance with problem. A problem instance is a given input of a problem; Therefore, a problem is a set of instances and their solutions.

More formally, we encode each possible pair $(instance, solution)$ using an alphabet (usually $\{0,1\}$). The set of such strings is called the language of that problem. Therefore, the problem becomes the membership of a string in that language.

orezvani
  • 1,944
  • 15
  • 20