Department of Computer ScienceUniversity of Texas at Dallas

Haim Kaplan

School of Computer ScienceTel Aviv University

Simeon Ntafos

Department of Computer ScienceUniversity of Texas at Dallas

Micha Sharir

School of Computer ScienceTel Aviv University

Courant Institute of Mathematical SciencesNew York University

Binhai Zhu

Department of Computer ScienceMontana State University

Article

First Online:

Received:

Accepted:

DOI:
10.1007/s00453-008-9270-3

Cite this article as:

Agarwal, P.K., Bereg, S., Daescu, O. et al. Algorithmica (2010) 58: 352. doi:10.1007/s00453-008-9270-3

Abstract

Given a polyhedral terrain T with n vertices, the two-watchtower problem for T asks to find two vertical segments, called watchtowers, of smallest common height, whose bottom endpoints (bases) lie on T, and whose top endpoints guardT, in the sense that each point on T is visible from at least one of them. There are three versions of the problem, discrete, semi-continuous, and continuous, depending on whether two, one, or none of the two bases are restricted to be among the vertices of T, respectively.

In this paper we present the following results for the two-watchtower problem in ℝ^{2} and ℝ^{3}: (1) We show that the discrete two-watchtowers problem in ℝ^{2} can be solved in O(n^{2}log ^{4}n) time, significantly improving previous solutions. The algorithm works, without increasing its asymptotic running time, for the semi-continuous version, where one of the towers is allowed to be placed anywhere on T. (2) We show that the continuous two-watchtower problem in ℝ^{2} can be solved in O(n^{3}α(n)log ^{3}n) time, again significantly improving previous results. (3) Still in ℝ^{2}, we show that the continuous version of the problem of guarding a finite set P⊂T of m points by two watchtowers of smallest common height can be solved in O(mnlog ^{4}n) time. (4) We show that the discrete version of the two-watchtower problem in ℝ^{3} can be solved in O(n^{11/3}polylog(n)) time; this is the first nontrivial result for this problem in ℝ^{3}.