Terrain Guarding is NP-Hard

A set $G$ of points on a terrain, also known as an $x$-monotone polygonal chain, is said to guard the terrain if every point on the terrain is seen by a point in $G$. Two points on the terrain see each other if and only if the line segment between them is never strictly below the terrain. The minimum terrain guarding problem asks for a minimum guarding set for the given input terrain. Using a reduction from PLANAR 3-SAT we prove that the decision version of this problem is NP-hard. This solves a significant open problem and complements recent positive approximability results for the optimization problem.