In this paper we present the first polynomial-time algorithm for finding the shortest polygonal chain in a simple polygon such that each point of the polygon is visible from some point on the chain. This chain is called the shortest watchman path, or equivalently, the shortest weakly visible curve of the polygon. In proving this result we also give polynomial time algorithms for finding the shortest aquarium-keeper's path that visits all edges of the polygon, and for finding the shortest postman path that visits all vertices of a polygon.