What are the differences between search problems, optimization problems, and decision problems?
A decision problem has this form:


Input: $x$
Output: "Yes" if $\phi(x)$ holds, "No" otherwise


A search problem has this form:


Input $x$
Output: $y$ such that $\psi(x,y)$ holds, if such a $y$ exists. "No" otherwise.


Finally, an optimization problem has this form:


Input $x$
Output: $y$ such that $f(x,y)$ is the minimum possible, i.e. $f(x,y) = \min_{y'} f(x,y')$


Here $\phi$ and $\psi$ are some boolean properties, and $f$ is some natural number function of $x$ and $y$.