1 Introduction

The Art Gallery Problem (AGP) is one of the classical problems of geometric optimization: given a polygonal region \(P\) with \(n\) vertices, find as few stationary guards as possible, such that any point of the region is visible by at least one of the guards. As first proven by Chvátal [5] and then shown by Fisk [10] in a beautiful and concise proof (which is highlighted in the shortest chapter in “Proofs from THE BOOK” [1]), \(\left\lfloor \frac{n}{3}\right\rfloor \) guards are sometimes necessary and always sufficient when \(P\) is a simple polygon. Worst-case bounds of this type are summarized under the name “Art-Gallery-type theorems”, and used as a metaphor even for unrelated problems; see O’Rourke [14] for an early overview, and Urrutia [17] for a more recent survey.

Algorithmically, the AGP is closely related to the Set Cover (SC) problem: All points in \(P\) have to be covered by star-shaped subregions of \(P\). The AGP is NP-hard, even for a simply connected polygonal region \(P\) [13]. However, the SC problem has no underlying geometry, and it is well known that geometric variants of problems may be easier to solve or approximate than their discrete, graph-theoretic counterparts, so it is natural to explore ways to exploit the geometric nature of the AGP. But the AGP is far from being easily discretized, as both the set to be covered (all points in \(P\)) as well as the covering family (all star-shaped subregions around some point of \(P\)) usually are uncountably infinite.

It is natural to consider more discrete versions of the AGP. Ghosh [11] showed that restricting possible guard positions to the \(n\) vertices, i. e., the AGP with vertex guards, allows an \(\mathrm{O }(\log n)\)-approximation algorithm of complexity \(\mathrm{O }(n^5)\); conversely, Eidenbenz et al. [9] showed that for a region with holes, finding an optimal set of vertex guards is at least as hard as SC, so there is little hope of achieving a better approximation guarantee than \(\mathrm{\Omega }(\log n)\). While these results provide tight bounds in terms of approximation, they do by no means close the book on the arguably most important aspect of mathematical optimization: combining structural insights with powerful mathematical tools in order to achieve provably optimal solutions for instances of interesting size. Moreover, even a star-shaped polygon may require a large number of vertex guards, so general AGP instances may have significantly better solutions than the considerably simpler discretized version with vertex guards.

1.1 Solving AGP Instances

Computing optimal solutions for general AGP instances is not only relevant from a theoretical point of view, but has also gained in practical importance in the context of modeling, mapping and surveying complex environments, such as in the fields of architecture or robotics and even medicine, which are seeking to exploit the ever-improving capabilities of computer vision and laser scanning. Amit et al. [2] have considered purely combinatorial primal and dual heuristics for general AGP instances. Only very recently have researchers begun to combine methods from integer linear programming with non-discrete geometry in order to obtain optimal solutions. As we have shown in [12], it is possible to combine an iterative primal-dual relaxation approach with structures from computational geometry in order to solve AGP instances with unrestricted guard positions; this approach is based on considering a sequence of primal and dual subproblems, each with a finite number of primal variables (corresponding to guard positions) and a finite number of dual variables (corresponding to “witness” positions).

Couto et al. [68] used a similar approach for the AGP with vertex guards. Tozoni et al. [16] proposed and algorithm computes lower and upper bounds for the AGP, based on computing finite set-cover instances with the help of a state-of-the-art IP solver. To generate a lower bound, a finite set of witness candidates is chosen and a restricted AGP is solved, in which only the witnesses have to be covered. For this, it suffices to extract a finite set of potential guard positions from the visibility arrangement of the witness set in order to ensure optimality. Similarly, finite sets of potential witness positions for a given finite guard set can be extracted from the visibility arrangement of the guards. This allows it to compute upper and lower bounds for the optimal AGP value by solving discrete set cover instances. The algorithm of Tozoni et al. [16] iterates between generating tighter lower and upper bounds by refining the witness and guard candidate sets along the iterations. It stops when lower and upper bounds coincide. Although no theoretical convergence has been established, in tests, the approach is able to yield optimal solutions for a large variety of instance classes, even for polygons with up to a thousand vertices.

An approach presented in [12] considers a similar primal-dual scheme, but focuses on the linear relaxation of the primal guard cover, whose dual is the witness packing problem. This forms the basis of integer solutions and the approach presented in this paper; more details are described in Sect. 3. Furthermore, we have collaborated with the authors of [68, 16] and produced a video [4] that highlights and illustrates the approaches to the AGP, and also demonstrates its relevance for practical applications.

1.2 Set Cover

Also important for the work on the AGP is the discrete and finite problem of covering a given set of objects by an inexpensive collection of subsets. This is known as the Set Cover Problem (SC), which has enjoyed a considerable amount of attention. Highly relevant for the purposes of this paper is the work by Balas and Ng [3] on the discrete SC polytope, which describes all its facets with coefficients in \(\{0, 1, 2\}\).

1.3 Our Results

In this paper, we extend and deepen our recent work [12] on iterative primal-dual relaxations, by proving a number of polyhedral properties of the resulting AGP polytopes and integrating them into modified versions of the algorithm presented in [12]. We provide the first study of the art gallery polytope and give a full characterization of all its facets with coefficients in \(\{0, 1, 2\}\).

Remarkably, we are able to exploit geometry to prove that only a very restricted family of facets of the general SC polytope will typically have to be used as cutting planes for removing fractional variables. Instead, we are able to prove that many fractional solutions only occur in intermittent SC subproblems; thus, they simply vanish when new guards or witnesses are introduced. This saves us the trouble of solving an NP-complete separation problem. Computational results illustrate greatly reduced integrality gaps for a wide variety of benchmark instances, as well as reduced solution times. Details are as follows. Related SC results are described by Balas et al. [3].

  • We provide two variants of our primal-dual framework for solving the AGP. Both aim at producing binary solutions, one integrates an IP in the primal phase and both greatly benefit from our cutting planes. Our algorithms also serve as benchmark for the cutting plane approach in our experiments.

  • We show how to employ cutting planes for an iterative primal-dual framework for solving the AGP. This is interesting in itself, as it provides an approach to tackling optimization problems with infinitely many constraints and variables. The particular challenge is to identify constraints that remain valid for any choice of infinitely many possible primal and dual variables, as we are not solving one particular IP, but an iteratively refined sequence.

  • Based on a geometric study of the involved SC constraints, we characterize all facets of involved AGP polytopes that have coefficients in \(\{0, 1, 2\}\). In the SC setting, these facets are capable of cutting off fractional solutions, but the separation problem is NP-complete. We use geometry to prove that only some of these facets are able to cut off fractional solutions in an AGP setting under reasonable assumptions, allowing us to solve the separation problem in polynomial time.

  • We provide a class of facets based on Edge Cover (EC) constraints.

  • We demonstrate the practical usefulness of our results by showing greatly improved solution speed and quality for a wide array of large benchmarks.

2 Preliminaries

We consider a polygonal region \(P\) with \(n\) vertices that may have holes, i. e., that does not have to be simply connected. For a point \(p\in P\), we denote by \(\mathcal {V}(p)\) the visibility polygon of \(p\) in \(P\), i. e., the set of all \(q\in P\), such that the straight-line connection \(\overline{pq}\) lies completely in \(P\). \(P\) is star-shaped if \(P = \mathcal {V}(p)\) for some \(p \in P\). The set of all such points is the kernel of \(P\), denoted by \( kernel (P)\). For a set \(S\subseteq P, \mathcal {V}(S):=\cup _{p\in S} \mathcal {V}(p)\).

A set \(C\subseteq P\) is a guard cover of \(P\), if \(\mathcal {V}(C)=P\). The AGP asks for a guard cover of minimum cardinality \(c\); this is the same as covering \(P\) by a minimum number of star-shaped sub-regions of \(P\). Note that Chvátal’s Watchman Theorem [5] guarantees \(c \le \left\lfloor \frac{n}{3}\right\rfloor \). For simplicity, we abbreviate \(x(G) := \sum _{g \in G} x_g\), for any vector \(x\).

3 Mathematical-Programming Formulation and LP-Based Solution Procedure

In order to keep this work self-contained, we briefly recapitulate our previously published [12] LP formulations of the AGP as well as how to use them to obtain fractional optimal Art Gallery solutions. Then we motivate the necessity to integrate cutting planes to cut off those fractional solutions in order to obtain binary ones. Furthermore, we specify requirements for cutting planes, allowing us to seamlessly integrate them in our framework.

Let \(P\) be a polygon and \(G,W \subseteq P\) sets of points for possible guard locations and witnesses, i. e., points to be guarded, respectively. We assume \(W \subseteq \mathcal {V}(G)\), which is easily guaranteed by initially including all vertices of \(P\) in \(G\). The AGP that only requires covering \(W\) exclusively using guards in \(G\) can be formulated as an IP denoted by \( AGP (G,W)\):

$$\begin{aligned}&\hbox {min} \sum _{g\in G} x_g \end{aligned}$$
(1)
$$\begin{aligned}&\hbox {s. t.} \sum _{g\in G\cap \mathcal {V}(w)} x_g \ge 1 \qquad \forall w\in W\end{aligned}$$
(2)
$$\begin{aligned}&\qquad \quad x_g \in \{0,1\} \qquad \qquad \forall g\in G, \end{aligned}$$
(3)

where the original AGP is \( AGP (P,P)\). Chvátal’s Watchman Theorem [5] guarantees that only a finite number of variables in \( AGP (P,P)\) are non-zero, but it still has uncountably many variables and constraints, so it cannot be solved directly. Thus we consider finite \(G,W \subset P\) and iteratively solve \( AGP (G,W)\) while adding points to \(G\) and \(W\). For dual separation and to generate lower bounds, we require the LP relaxation \( AGR (G,W)\) obtained by relaxing the integrality constraint (3) to:

$$\begin{aligned} 0\le x_g\le 1 \quad \forall g\in G. \end{aligned}$$
(4)

The dual of \( AGR (G,W)\) is

$$\begin{aligned}&\hbox {max} \sum _{w \in W} y_w \end{aligned}$$
(5)
$$\begin{aligned}&\hbox {s. t.} \sum _{w \in W \cap \mathcal {V}(g)} y_w \le 1 \qquad \forall g \in G \end{aligned}$$
(6)
$$\begin{aligned}&\qquad \quad 0 \le y_w \le 1\qquad \qquad \forall w \in W. \end{aligned}$$
(7)

The algorithms based on this formulation and the following argumentation are presented in pseudocode in Sect. 4 (Algorithms 1 and 2).

figure a
figure b

The relation between a solution of \( AGR (G,W)\) and \( AGR (P,P)\) is not obvious, see Fig. 2 for the following argumentation. In [12], we show that \( AGR (P,P)\) can be solved optimally for many problem instances by using finite \(G\) and \(W\). The procedure uses primal/dual separation (i. e., cutting planes and column generation) to connect \( AGR (G,W)\) to \( AGR (P,P)\):

For some finite sets \(G\) and \(W\), we solve \( AGR (G,W)\) using the simplex method. This produces an optimal primal solution \(x^*\) and dual solution \(y^*\) with objective value \(z^*\). The primal is a minimum covering of \(W\) by the guards in \(G\), the dual a maximum packing of witnesses in \(W\), such that each guard in \(G\) sees at most one of them. We analyze \(x^*\) and \(y^*\) as follows:

  1. 1.

    If there exists a point \(w\in P\setminus W\) with \(x^*(G \cap \mathcal {V}(w)) < 1\), then \(w\) corresponds to an inequality of \( AGR (P,P)\) that is violated by \(x^*\). The new witness \(w\) is added to \(W\), and the LP is re-solved. If such a point \(w\) cannot be found, \(x^*\) is optimal for \( AGR (G,P)\), and \(z^*\) is an upper bound for \( AGR (P,P)\).

  2. 2.

    If there exists a point \(g\in P\setminus G\) with \(y^*(W \cap \mathcal {V}(g))>1\), then it corresponds to a violated dual inequality of \( AGR (P,P)\). We create the LP column for \(g\) and re-solve the LP. If such a \(g\) does not exist, \(y^*\) is an optimal dual solution for \( AGR (P,W)\) and \(z^*\) is a lower bound for \( AGR (P,P)\).

Both separation problems can be solved efficiently using the overlay of the visibility polygons of all points \(g\in G\) with \(x^*_g>0\) (for the primal case) and all \(w \in W\) with \(y^*_w > 0\) (for the dual case), which decomposes \(P\) into a planar arrangement of bounded complexity.

Should the upper and the lower bound meet, we have an optimal solution of \( AGR (P,P)\), but \( AGR (P,P)\) is the LP relaxation of \( AGP (P,P)\), so its optimal solution may contain fractional guard values [12], compare Fig. 1. At this point, it is possible to solve \( AGP (G,P)\) using primal separation only, which produces binary upper bounds; but they do not necessarily match the lower bounds, which are still obtained using the relaxation. This scenario can prevent our procedure from terminating, even if it found an optimal Art Gallery solution, because it might be unable to prove its optimality. Algorithm 2 in Sect. 4 explores that approach.

Fig. 1
figure 1

An optimal fractional solution of value 5 without (left) and an optimal integer solution of value 6 with cutting planes (right). Circles show guards, fill-in indicates fractional amount. Cutting planes enforce at least two guards in the left and three in the right area, both marked in gray

Fig. 2
figure 2

The AGP and its relaxations for \(G, W \subseteq P\). Dotted arrows represent which conclusions may be drawn from the primal and dual solutions \(x^*\) and \(y^{*}\)

In the remainder of this paper, we explore the use of cutting planes to cut off large classes of fractional solutions obtained by a procedure like the one described above, increasing lower bounds and enhancing integrality. Let \(\alpha \) be such a cutting plane. Recall that \( AGP (P,P)\) has an infinite number of both variables and constraints. That means that it is not enough for \(\alpha \) to be feasible for \( AGP (G,W)\) for the current iteration’s finite sets \(G\) and \(W\); \(\alpha \) must remain feasible in all future iterations of our algorithm. Formally, feasibility for \( AGP (G,W)\) is insufficient; instead, we require \(\alpha \) not to cut off any \(x \in \{0,1\}^{G'}\) for an arbitrary \(P \supseteq G' \supseteq G\), such that \(x\) is feasible for \( AGP (G',P)\). An LP with a set \(A\) of such additional constraints is denoted by \( AGR (G,W,A)\), its IP counterpart by \( AGP (G,W,A)\). Note that \( AGP (G,P)\) and \( AGP (G,P,A)\) have the same set of feasible solutions. By \( AGP (G,W)\), we sometimes denote the set of its feasible solutions rather than the IP itself, as in \( conv ( AGP (G,W))\). See Sect. 4 for LP- and IP-based algorithms using the framework presented in this section.

4 Algorithms

The algorithm of Kröller et al. [12] produces fractional solutions of the AGP. We present two modifications, Algorithms 1 and 2, focused on obtaining binary solutions.

Our first modification, used in both algorithms, is that we do not run primal and dual separation, compare Sect. 3, in every iteration. Instead, we repeatedly run primal (dual) separation until a primally (dually) feasible solution has been obtained and then switch to running dual (primal) separation until a feasible dual (primal) solution has been found, and so on. We call these phases primal (dual) phases and repeat an alternating sequence of them, until primally and dually feasible solutions with matching bounds have been found.

4.1 LP Mode

Algorithm 1 relies on cutting planes to cut off fractional solutions that are feasible for \( AGR (G,P)\), but not \( AGP (G,P)\). Those cutting planes are constraints in the primal LP, and variables in the dual. This means that they have two effects: They enhance the integrality of acquired solutions and they increase the lower bound.

The issue with this approach is that we are not guaranteed to find a binary solution, because we might not have a cutting plane available which is able to cut off the current primal solution.

4.2 IP Mode

The typical approach of eliminating fractional solutions in linear optimization is to employ an integer program (IP). In Algorithm 2, we solve \( AGP (G,W,A)\) for finite \(G, W \subset P\) and iteratively apply primal separation to the result, which produces feasible binary solutions.

Unfortunately, this procedure does not necessarily find optimal solutions of \( AGP (P,P)\), because it does not generate new guard positions: For generating guards we need a dual solution, which an IP cannot provide. To counter that, we use the dual phase of Algorithm 1 where we solve the LP \( AGR (G,W,A)\). This step is supported by cutting planes, which help increase the lower bound and thus reducing the integrality gap.

Note that Algorithm 2 is not guaranteed to terminate, because an optimal fractional and an optimal binary solution may require different guard locations [12]. This effect is weakened, but not completely suppressed by the use of cutting planes. The impact is that there is an integrality gap between the upper and the lower bounds, which can be large.

5 Set Cover Facets

For finite sets of guards and witnesses \(G, W \subset P, AGP (G,W)\) is an SC polytope. This motivates the investigation of SC-based facets. In this section, we discuss a family of facets inspired by Balas et al. [3] and show that their separation, while NP-complete in the SC setting, can, under reasonable assumptions, be solved in polynomial time when exploiting the underlying geometry of the AGP. Additionally, we present a complete list of all AGP facets only using coefficients in \(\{0,1,2\}\).

5.1 A Family of Facets

Let \(P\) be a polygon and \(G,W \subset P\) finite sets of guard and witness positions. Consider a finite non-empty subset \(\emptyset \subset S \subseteq W\) of witness positions; the overlay of visibility regions of \(S\) is called \(\alpha _S\). It implies the partition \(P = J_0 \mathbin {\dot{\cup }}J_1 \mathbin {\dot{\cup }}J_2\), see Fig. 3. This is the geometry that is analogous to what Balas and Ng [3] did for the SC polytope.

Fig. 3
figure 3

Polygon and witness selection \(S = \{w_1, w_2, w_3, w_4\}\). Guards located in \(J_2\) can cover all of \(S\), and those in \(J_1\) some part of it, while those in \(J_0\) cover none of \(S\)

  1. 1.

    \(J_2:= \{g \in P\mid S \subseteq \mathcal {V}(g)\}\), the set of points in \(P\) covering all of \(S\).

  2. 2.

    \(J_0:= \{g \in P\mid \mathcal {V}(g) \cap S = \emptyset \}\), the set of positions in \(P\) that see none of \(S\).

  3. 3.

    \(J_1:= P \setminus (J_2 \cup J_0)\) the set of positions in \(P\) that cover a non-trivial subset of \(S\).

Every feasible solution of the AGP has to cover \(S\). Thus, it takes one guard in \(J_2\), or at least two guards in \(J_1\) to cover \(S\). For any \(G\), this induces the following constraint (8); for the sake of simplicity, we will also refer to this by \(\alpha _S\).

$$\begin{aligned} \sum _{g \in J_2 \cap G} 2 x_g + \sum _{g \in J_1 \cap G} x_g \ge 2 \end{aligned}$$
(8)

In the context of our iterative algorithm, it is important to represent \(\alpha _S\) independently from \(G\). This is achieved by storing the visibility overlay of the witnesses in \(S\), which implicitly makes the regions \(J_0, J_1\) and \(J_2\) available. Any guard \(g\in J_i\) in current or future iterations simply gets the coefficient \(i\).

Sufficient coverage of \(S\) is necessary for sufficient coverage of \(P\), so (8) is valid for any \(x\in \{0,1\}^G\) that is feasible for \( AGP (G,P)\), thus fulfilling our requirement of remaining feasible in future iterations. However, covering \(S\) may require more than two guards in \(J_1\), so (8) does not always provide a supporting hyperplane of \( conv ( AGP (G,W))\).

When choosing a single witness \(S = \{w\}\), we obtain \(J_2 = \mathcal {V}(w), J_1 = \emptyset \) and \(J_0 = P \setminus \mathcal {V}(w)\). The resulting constraint is Inequality (2), the witness-induced constraint of \(w\), multiplied by two. For a choice of \(S\) with two witnesses, \(S = \{w_1, w_2\}\), constraint (8) yields the sum of the witness-induced constraints of \(w_1\) and \(w_2\). Thus, we consider \(|S| \ge 3\) in the remainder of this section.

In order to show when (8) defines a facet of \( conv ( AGP (G,W))\), we first need to apply a result of [3] to the AGP setting.

Lemma 1

Let \(P\) be a polygon and \(G,W \subset P\) finite sets of guard and witness positions. Then \( conv ( AGP (G,W))\) is full-dimensional, if and only if

$$\begin{aligned} \forall w \in W: \quad \left| \mathcal {V}(w) \cap G \right| \ge 2 \end{aligned}$$
(9)

Proof

We start by proving necessity. If every witness is seen by at least two guards, the \(|G|\) vectors \(x^i = 1\!\!1 - {e_i}\) are linearly independent and feasible solutions of \( AGP (G,W)\), so \( conv ( AGP (G,W))\) is full-dimensional.

Now we consider sufficiency. If \(\mathcal {V}(w) \cap G = \emptyset \) for some \(w \in W\), there is no feasible solution at all; if \(\mathcal {V}(w) \cap G = \{g\}\), there is none with \(x_g = 0\), so there cannot be more than \(|G| - 1\) linearly independent solutions, and \( conv ( AGP (G,W))\) is not full-dimensional.\(\square \)

We require some terminology adapted from [3]. Two guards \(g_1,g_2 \in J_1\) are a 2-cover of \(\alpha _S\), if \(S \subseteq \mathcal {V}(g_1) \cup \mathcal {V}(g_2)\). The 2-cover graph of \(G\) and \(\alpha _S\) is the graph with nodes in \(J_1 \cap G\) and an edge between \(g_1\) and \(g_2\) if and only if \(g_1,g_2\) are a 2-cover of \(\alpha _S\). In addition, we have \(T(g)=\{w \in \mathcal {V}(g) \cap W \mid \mathcal {V}(w) \cap G \cap (J_0 \setminus \{g\}) = \emptyset \}\).

Theorem 1

Given a polygon \(P\) and finite \(G,W \subset P\), let \( conv ( AGP (G,W))\) be full-dimensional and let \(\alpha _S\) be as defined in (8), such that \(S\) is maximal, i. e., there is no \(w \in W \setminus S\) with \(\mathcal {V}(w) \subseteq \mathcal {V}(S)\). Then the constraint induced by \(\alpha _S\) defines a facet of \( conv ( AGP (G,W))\), if and only if:

  1. 1.

    Every component of the 2-cover graph of \(\alpha _S\) and \(G\) has an odd cycle.

  2. 2.

    For every \(g \in J_0 \cap G\) such that \(T(g) \ne \emptyset \) there exists either

    1. (a)

      some \(g' \in J_2 \cap G\) such that \(T(g) \subseteq \mathcal {V}(g')\);

    2. (b)

      some pair \(g', g'' \in J_1 \cap G\) such that \(T(g) \cup S \subseteq \mathcal {V}(g') \cup \mathcal {V}(g'')\).

Proof

\(G\) and \(W\) are finite, so \( AGP (G,W)\) is an instance of SC with universe \(W\) and subsets \(G\), while \( conv ( AGP (G,W))\) describes a full-dimensional SC polytope.

Our claim follows from Theorem 2.6 of Balas et al. [3], because the conditions as well as the notion of 2-cover graphs and \(T\) are equivalent. The only difference is that we need to intersect \(J_i\) with \(G\) in order to obtain finite sets, as our \(J_i\) is a region in \(P\), while that of Balas et al. naturally is a finite set of variables.\(\square \)

5.2 Geometric Properties of \(\alpha _S\)

It is easy to construct SC instances for any choice of \(|S|\ge 3\), such that the SC version of \(\alpha _S\) cuts off a fractional solution [3]. Finding \(\alpha _S\) in the SC setting is NP-complete, see below. But in the following, we show that in an AGP setting, only \(\alpha _S\) with \(|S| = 3\) actually plays a role in cutting off fractional solutions under reasonable assumptions, allowing us to separate it in polynomial time.

Lemma 2

Let \(P\) be a polygon, \(G, W \subset P\) finite sets of guard and witness positions and \(\emptyset \subset S \subseteq W\). If every guard in \(J_1 \cap G\) belongs to some 2-cover of \(\alpha _S\) and \(S\) is minimal for \(G\), i. e., there is no proper subset \(T \subset S\) such that \(\alpha _T\) and \(\alpha _S\) induce the same constraint for \(G\), the matrix of \( AGP (G,S)\) contains a permutation of the full circulant of order \(k = |S|\), which is

$$\begin{aligned} C_k^{k-1} = \left( \begin{matrix} 0 &{}\quad 1 &{}\quad \cdots &{}\quad 1 \\ 1 &{}\quad 0 &{}\quad \ddots &{}\quad \vdots \\ \vdots &{}\quad \ddots &{}\quad \ddots &{}\quad 1 \\ 1 &{}\quad \cdots &{}\quad 1 &{}\quad 0 \end{matrix}\right) \in \{0,1\}^{k \times k}. \end{aligned}$$
(10)

Proof

As \(G\) and \(W\) are finite, \( conv ( AGP (G,W))\) is an SC polytope with universe \(W\) and subsets \(G\). Then, as above, the claim follows from Balas et al. or, or more accurately, from Theorem 3.1 of [3]: Our definition of \(S\) being minimal for \(G\) complies with the definition of a minimal \(C\)-equivalent subset in [3]; the notion of matrix \(A_S^{J_1}\) corresponds to our \( AGP (J_1 \cap G,S)\), i. e., a submatrix of \( AGP (G,S)\).\(\square \)

Lemma 2 holds, because the 2-cover property holds if and only if no guard’s coefficient in \(\alpha _S\) can be reduced without turning Inequality (8) invalid [3]. As \(S\) is minimal, removing \(w\) from \(S\) must increase coefficients, i. e., reclassify a guard \(g \in J_1 \cap G\) to \(J_2\). So \(\mathcal {V}(g) \cap S = S \setminus \{w\}\). Such a guard exists for every \(w \in S\).

Lemma 2 also states that separating \(\alpha _S\) is equivalent to finding permutations of \(C_k^{k-1}\) in the LP matrix of \( AGR (G,W)\). It is possible to reduce a simple graph’s adjacency matrix to a polygon with guards \(G\) and witnesses \(W\), such that \( AGR (G,W)\) contains a permutation of \(C_k^{k-1}\) if and only if the graph contains a clique of size \(k\) or higher: Introduce a guard and a witness for each of the graph’s vertices, place all of them into a convex polygon, and add a hole between a guard and a witness if they represent the same vertex or if the two vertices are not connected. Hence, the separation problem is NP-complete.

In the following, we examine when the separation of \(\alpha _S\) is useful for our iterative algorithm. As \(\alpha _S\) is represented by one or several permutations of \(C_k^{k-1}\), we need to introduce the notion of a polygon corresponding to \(C_k^{k-1}\). This allows us to examine the underlying geometry of \(\alpha _S\) in the AGP.

Definition 1

(Full Circulant Polygon) A polygon \(P\) along with \(G(P) = \{g_1, \dots , g_k\} \subset P\) and \(W(P) = \{w_1, \dots , w_k\} \subset P\) for \(3 \le k \in \mathbb {N}\) is called Full Circulant Polygon, or \(P_k^{k-1}\), if

$$\begin{aligned}&\forall \ 1 \le i \le k: \quad \mathcal {V}(g_i) \cap W(P) = W(P) \setminus \{w_i\} \end{aligned}$$
(11)
$$\begin{aligned}&\qquad \forall w \in P: \quad \left| \mathcal {V}(w) \cap G(P) \right| \ge k - 1 \end{aligned}$$
(12)

We may refer to \(G(P)\) and \(W(P)\) by just \(G\) and \(W\), respectively.

Note that in \(P_k^{k-1}\) the full circulant \(C_k^{k-1}\) completely describes the visibility relations between \(G\) and \(W\). This implies that the optimal solution of \( AGR (G,W)\) is \(\frac{1}{k-1} \cdot 1\!\!1\), with cost \(\frac{k}{k-1}\). It is feasible for \( AGR (G,P_k^{k-1})\) by Property (12), as any point \(w \in P_k^{k-1}\) is covered by at least \((k-1) \cdot \frac{1}{k-1} = 1\).

Figure 4 captures construction attempts for models of \(C_k^{k-1}\). \(P_3^2\) exists; however, as we prove in Theorem 2, the polygons for \(k \ge 4\) are either star-shaped or not full circulant. If they are star-shaped, the optimal solution is to place one guard within the kernel. If they are not full circulant polygons, the optimal solution of \( AGR (G,W)\) is infeasible for \( AGR (G,P)\) and the current fractional solution is intermittent, i. e., cut off in the next iteration. Both cases eliminate the need for a cutting plane, and we may avoid the NP-complete separation problem by restricting separation to \(k=3\).

Fig. 4
figure 4

\(P_3^2\) (left) and two attempts for \(P_4^3\) (middle and right). In the left case, Inequality (8) enforces using two guards instead of three \(\frac{1}{2}\)-guards. The first attempt for \(P_4^3\) (middle) is star-shaped; here a cutting plane would cut off the intermediate fractional solution of four \(\frac{1}{3}\)-guards, but as soon as \(g^*\) is found, the fractional solution is replaced by a binary one with just one guard, with or without cutting plane. Finally, the second attempt for \(P_4^3\) (right) is not star-shaped, but again, there is no need for a cutting plane to cut off the fractional solution of four \(\frac{1}{3}\)-guards: \(w^*\) is only covered by \(\frac{2}{3}\), so \(w^*\) is separated by our algorithm and then enforces the use of at least two guards in the next iteration; again, with or without cutting plane

In the following we prove that \(P_k^{k-1}\) is star-shaped for \(k \ge 4\). We start with Lemma 3, which shows that any pair of guards in \(G\) is sufficient to cover \(P_k^{k-1}\).

Lemma 3

Let \(P_k^{k-1}\) be a full circulant polygon. Then \(P_k^{k-1}\) is the union of the visibility polygons of any pair of guards in \(G\left( P_k^{k-1} \right) = \{g_1,\dots ,g_k\}\):

$$\begin{aligned} \forall 1 \le i < j \le k: \quad P_k^{k-1} = \mathcal {V}(g_i) \cup \mathcal {V}(g_j) \end{aligned}$$
(13)

Proof

Suppose \(P_k^{k-1}\) is a full circulant polygon, but \(P_k^{k-1} \ne \mathcal {V}(g_i) \cup \mathcal {V}(g_j)\) for \(1 \le i < j \le k\). Then there exists some \(w \in P_k^{k-1}\) with \(g_i \notin \mathcal {V}(w)\), as well as \(g_j \notin \mathcal {V}(w)\), implying that \(\left| \mathcal {V}(w) \cap G \right| \le k-2\), a contradiction to Property (12) of Definition 1.\(\square \)

The next step is Lemma 4, which drastically restricts the possible structure of \(P_k^{k-1}\).

Lemma 4

Let \(P_k^{k-1}\) be a full circulant polygon with \(G\left( P_k^{k-1} \right) = \{g_1,\dots ,g_k\}\). Suppose \(k \ge 4\). Then \(P_k^{k-1}\) has no holes.

Proof

Refer to Fig. 5. Suppose \(P_k^{k-1}\) has a hole \(H\). Each edge \(l_i\) of \(H\) induces a half-space \(\mathcal {H}_i\). There are three such edges \(l_1,l_2,l_3\), such that \(\mathcal {H}_1 \cap \mathcal {H}_2 \cap \mathcal {H}_3 = \emptyset \), for otherwise the outside of \(H\) would be convex by Helly’s Theorem. Let \(w_i\) denote a point in the interior of \(l_i\).

In order for \(w_1\) to fulfill (12), at least \(k-1\) of the guards in \(G\) must be located in \(\mathcal {V}(w_1) \subseteq \mathcal {H}_1\). Analogously, there must be \(k-1\) guards in \(\mathcal {H}_2\). Covering \(w_1\) and \(w_2\) with a total of \(k\) guards is only possible if at least \(k-2\) guards of \(G\) are located in the intersection of the two half-spaces: \(\left| \mathcal {H}_1 \cap \mathcal {H}_2 \cap G \right| \ge k-2\). If there are only \(k' < k-2\) guards in \(\mathcal {H}_1 \cap \mathcal {H}_2\), it takes \((k-1) - k'\) additional guards in \(\mathcal {H}_1 \setminus \mathcal {H}_2\) to cover \(w_1\) and in \(\mathcal {H}_2 \setminus \mathcal {H}_1\) to cover \(w_2\), resulting in a total of \(k' + 2(k-1-k') = 2k - (k'+2) > k\) guards, a contradiction.

As \(\mathcal {H}_1 \cap \mathcal {H}_2 \cap \mathcal {H}_3 = \emptyset \), there can be at most \(2\) guards in \(\mathcal {V}(w_3) \subseteq \mathcal {H}_3\), which violates Property (12) for \(k \ge 4\), a contradiction.\(\square \)

Fig. 5
figure 5

A hole \(H\) in \(P_k^{k-1}\) with \(\mathcal {H}_1 \cap \mathcal {H}_2 \cap \mathcal {H}_3 = \emptyset \). There are \(k-1\) guards in \(\mathcal {H}_1\) and in \(\mathcal {H}_2\), so there must be \(k-2\) in their intersection. This only leaves \(2\) guards for \(\mathcal {H}_3\)

As shown in Fig. 6, \(k \ge 4\) is tight: a triangle with a concentric triangular hole is an example of \(P_3^2\), with guards in the outside corners and witnesses on the inside edges.

Fig. 6
figure 6

\(P_3^2\), a possible AG interpretation of \(C_3^2\) with a hole. It proves that the bound of \(k \ge 4\) in Lemma 4 is tight

We require one final technical lemma before proceeding to the main theorem, Theorem 2.

Lemma 5

Consider two disjoint non-empty convex polygons, described as the intersection of half-spaces: \(P_1 = \bigcap _{i=1,\dots ,n} \mathcal {H}_i\) and \(P_2 = \bigcap _{i=n+1,\dots ,n+m} \mathcal {H}_i\). Then some \(\mathcal {H}_i, 1 \le i \le n+m\) separates \(P_1\) and \(P_2\).

Proof

\(n+m \le 2\) is trivial, so consider \(n+m \ge 3\). Because of \(P_1 \cap P_2 = \bigcap _{i=1,\dots ,n+m} \mathcal {H}_i = \emptyset \), Helly’s Theorem applied to the two-dimensional convex half-spaces \(\mathcal {H}_i\) implies the existence of three half-spaces \(\mathcal {H}_i, \mathcal {H}_j\), and \(\mathcal {H}_k, i < j < k\), with \(\mathcal {H}_i \cap \mathcal {H}_j \cap \mathcal {H}_k = \emptyset \). Without loss of generality, we assume \(i=1, j=2\) and \(k=n+1\), which provides

$$\begin{aligned} \underbrace{\mathcal {H}_1 \cap \mathcal {H}_2}_{\supseteq P_1} \cap \underbrace{\mathcal {H}_{n+1}}_{\supseteq P_2} = \emptyset , \end{aligned}$$
(14)

so it follows that \(P_1 \cap \mathcal {H}_{n+1} = \emptyset \) with \(P_2 \subseteq \mathcal {H}_{n+1}\) by construction, and \(\mathcal {H}_{n+1}\) is the half-space whose existence is the claim.\(\square \)

Now all preliminaries for the main theorem of the section are met and we can proceed to show Theorem 2, which claims that full circulant polygons are star-shaped for \(k \ge 4\).

Theorem 2

A full circulant polygon \(P_k^{k-1}\) with \(k \ge 4\) is star-shaped.

Proof

Refer to Fig. 7. Let \(P_k^{k-1}\) with \(k \ge 4\) be a full circulant polygon. The guards in \(G = G\left( P_k^{k-1} \right) \) must be covered by a total of \(k-1\) guards, i. e., they must also fulfill (12), so each guard can see at least \(k-2\) others. Without loss of generality, let \(g_1\) and \(g_2\) denote two guards in each other’s field of view.

Now consider \(P_{12} = \mathcal {V}(g_1) \cap \mathcal {V}(g_2) \subseteq P_k^{k-1}\), the subset of \(P_k^{k-1}\) seen by both \(g_1\) and \(g_2\). It is star-shaped, because \(g_1\) and \(g_2\) are in its kernel, which we denote by \(K\). The rest of \(P_k^{k-1}\), i. e., \(P_k^{k-1} \setminus P_{12}\), consists of two types of areas:

  1. 1.

    \(P_1 = P_k^{k-1} \setminus \left( P_{12} \cup \mathcal {V}(g_2) \right) \), points visible from \(g_1\), but not from \(g_2\).

  2. 2.

    \(P_2 = P_k^{k-1} \setminus \left( P_{12} \cup \mathcal {V}(g_1) \right) \), points visible from \(g_2\), but not from \(g_1\).

Together, \(g_1\) and \(g_2\) cover every \(w \in P_k^{k-1}\), because \(P_k^{k-1} = \mathcal {V}(g_1) \cup \mathcal {V}(g_2)\) due to Lemma 3. Thus, \(P_k^{k-1} = P_{12} \mathbin {\dot{\cup }}P_1 \mathbin {\dot{\cup }}P_2\).

We now examine which guards can see what part of \(P_{12}, P_1\) and \(P_2\). For that, we classify three types of edges. Gray edges are those edges of \(P_k^{k-1}\) that coincide with \(P_1\) or \(P_2\), white edges denote the other edges of \(P_k^{k-1}\). Finally, edges of \(P_{12}\) not part of \(P_k^{k-1}\) that separate \(P_1 \cup P_2\) from \(P_{12}\) are referred to as white-gray edges. Note that white-gray edges do not block the view of any guard in \(P_k^{k-1}\), because they are merely edges of the auxiliary polygon \(P_{12}\). \(K\) is the intersection of all half-spaces induced by white or white-gray edges, because a star’s kernel is the intersection of all half-spaces induced by its edges.

All points able to cover all of \(P_1 \cup P_2\) must be contained in

$$\begin{aligned} L&= \left\{ g \in \mathbb {R}^2 \mid \hbox { no gray edge blocks } g'\hbox {s} \hbox { view into } P_1 or P_2 \right\} \nonumber \\&= \bigcap _{e\, \mathrm{is\, gray\, edge}} \hbox {Half-space induced by}\ e. \end{aligned}$$
(15)

Some points in \(L\) may be located outside of \(P_k^{k-1}\), and even those points of \(L\) inside of \(P_k^{k-1}\) may not be able to see all of \(P_1 \cup P_2\), due to white edges blocking their view. \(\bar{g}\) in Fig. 7 is an example for this case: it cannot see the rightmost part of \(P_2\). However, \(L \ne \emptyset \), because \(g_3,\dots ,g_k \in L \cap P_k^{k-1}\). Every \(g_i \in G\) with \(3 \le i \le k\) is able to see all of \(P_1 \cup P_2\): \(g_i\) can see all of \(P_1\), because \(g_2, g_i\) are a 2-cover of \(P_k^{k-1}\); \(g_i\) can entirely see \(P_2\), because \(g_1, g_i\) are also a 2-cover by Lemma 3.

The remaining part of the proof involves two steps. First, we argue that any point in \(K \cap L\) can see all of \(P_k^{k-1}\); then we show that \(K \cap L \ne \emptyset \), i. e., that \(P_k^{k-1}\) is star-shaped. For the first step, assume there exists some \(g \in K \cap L\). Now \(g\) has the following properties:

  1. 1.

    \(g \in P_k^{k-1}\), because \(K \subseteq P_k^{k-1}\).

  2. 2.

    \(g\) can see all of \(P_{12}\) by definition of \(K\), which includes the interior of \(P_{12}\), all white and all white-gray edges.

  3. 3.

    Because \(P_k^{k-1}\) has no holes by Lemma 4, \(g\)’s view on the white-gray edges is not blocked; and due to \(g \in L\), there is nothing left that can block \(g\)’s view into \(P_1 \cup P_2\).

So \(g \in kernel \left( P_k^{k-1}\right) \), provided that \(K \cap L \ne \emptyset \); we show the latter as follows.

\(K\) and \(L\) are two-dimensional polyhedra, each of their edges is a facet. Suppose their intersection is empty; then by Lemma 5, there must be a facet of one of them that separates them from each other. We consider three cases, because \(K\) has two types of edges and \(L\) has one:

  1. 1.

    The facet is a facet of \(K\), induced by a white edge \(e\). Now consider a point \(w\) in the interior of \(e\). \(w\) is seen by \(g_1\) and \(g_2\), but not by any of the points \(g_3,\dots ,g_k\), because \(g_3,\dots ,g_k \in L\), and \(e\) induces a facet separating \(K\) from \(L\). Due to \(k \ge 4\), this makes \(\left| \mathcal {V}(w) \cap G \right| \ge k-1\), i. e., (12), impossible and thus contradicts the requirement of \(P_k^{k-1}\) being a full circulant polygon. This would be the case in Fig. 7, if \(P_k^{k-1}\) had the extension \(P'\), which would cut off the lower part of \(K\) and thus separate \(K\) from \(L\). However, then only \(g_1\) and \(g_2\) but none of \(g_3,\dots ,g_k\) could see \(w'\), which violates (12).

  2. 2.

    The facet is a facet of \(K\), induced by a white-gray edge \(e\). As \(e\) is a white-gray edge, there is a part of \(P_1\) or \(P_2\) adjacent to \(e\). This part cannot be seen from any point in \(L\), because the facet induced by \(e\) is a facet of \(K\) and separates \(K\) from \(L\) by assumption, and because \(P_k^{k-1}\) has no holes by Lemma 4. However, \(g_3,\dots ,g_k \in L\) not being able to see \(P_1\) or \(P_2\) contradicts (12).

  3. 3.

    The facet is a facet of \(L\). This means that there is some gray edge \(e\) corresponding to that facet. A point \(w\) in \(e\)’s interior is not seen by \(g_1\) or \(g_2\), because the facet separates \(K\) from \(L\). So \(s\) is not seen by more than \(k-2\) guards, and thus violates (12).

All cases lead to contradiction, and thus \(K \cap L \ne \emptyset \). Therefore, \(P_k^{k-1}\) has a non-empty kernel, and is star-shaped for \(k \ge 4\), as claimed.\(\square \)

Fig. 7
figure 7

\(P_k^{k-1}\) with guards \(g_1\) and \(g_2\). \(P_1\) and \(P_2\) are the gray areas at the top. \(P_1\) is seen by \(g_1\) but not by \(g_{2}\); an analogous property holds for \(P_2\). The rest of \(P_k^{k-1}\) is \(P_{12}\), a star-shaped polygon entirely seen by both \(g_1\) and \(g_2, K\) is its kernel. \(L\) is the area whose view into \(P_1 \cup P_2\) is not blocked by any edge of \(P_k^{k-1}\) that coincides with \(P_1 \cup P_2\). It contains all of \(g_3,\dots ,g_k\). If \(P'\) would be added to \(P_k^{k-1}, K\) would be cut off below the dashed line containing \(w'\) and \(K \cap L = \emptyset \). But then no point in \(L\), including \(g_3,\dots ,g_k\), could see \(w'\), a contradiction to the property of \(P_k^{k-1}\) requiring \(k-1\) guards to see any of its points

Theorem 2 does not rule out situations in which \(P_k^{k-1}\), for \(k \ge 4\) is part of a larger polygon, as shown in Fig. 8. This example has no integrality gap; placing at least five copies of \(P_4^3\) around an appropriate central subpolygon with a hole can actually create one. However, such cases are much harder to come by, making the \(k \ge 4\) facets a lot less useful for cutting off fractional solutions.

Fig. 8
figure 8

Three instances of \(P_4^3\) embedded into a larger polygon. Setting all guards to \(\frac{1}{3}\) is feasible and optimal, even though no guard is placed in any of the \(P_4^3\) kernels

Theorem 2 does, however, provide a very useful separation heuristic. As the separation problem is NP-complete for unlimited \(k\), but solvable in polynomial time for a fixed \(k\), it is clear that \(k\) must be limited in a practical algorithm. Theorem 2 justifies choosing \(k=3\) from a theoretical point of view, by stating that the underlying geometry for \(k>3\) is star-shaped, i. e., allows placing one non-fractional guard in its kernel, see Figure 4. As we show in Sect. 7, this can also be validated in an experimental setting.

5.3 All Art Gallery Facets with Coefficients {0, 1, 2}

For finite \(G,W\subset P, AGP (G,W)\) is also an SC instance. Balas and Ng identified all SC facets with coefficients in \(\{0,1,2\}\) [3]; so we present all AGP facets with coefficients \(\{0,1,2\}\). This includes three trivial facet classes, (16)–(18), which are unable to cut off fractional solutions of \( AGR (G,W)\). The only non-trivial facet in this inventory is the one of type \(\alpha _S\) described above.

$$\begin{aligned} x_g \ge 0 \end{aligned}$$
(16)

is a facet of a full-dimensional \( conv ( AGP (G,W))\), and only if \(\left| \mathcal {V}(w) \cap G \setminus \{g\} \right| \ge 2\) for all \(w \in W\), i. e., if every witness sees at least two guards other than \(g\).

A second type of AGP facet is the upper bound of one for every guard value. It is a facet of every full-dimensional \( conv ( AGP (G,W))\) [3]:

$$\begin{aligned} x_g \le 1 \end{aligned}$$
(17)

The third and last trivial AGP facet with coefficients in \(\{0,1,2\}\) is

$$\begin{aligned} \sum _{g \in \mathcal {V}(w) \cap G} x_g \ge 1 \end{aligned}$$
(18)

This simply is the constraint induced by the witness \(w \in W\), which enforces sufficient coverage of \(w\). It is facet defining and only if two conditions hold: First, there must not be any witness \(w' \in W\) with \(\mathcal {V}(w') \cap G \subset \mathcal {V}(w) \cap G\). Otherwise, the coverage of \(w\) would be implied by that of \(w'\). Second, for any guard \(g \in G \setminus \mathcal {V}(w)\), there exists some other guard \(g' \in \mathcal {V}(w) \cap G\) that can see all of \(\left\{ w' \in \mathcal {V}(g) \cap W \mid \bar{g} \notin \mathcal {V}(w'), \forall \bar{g} \in G \setminus (\mathcal {V}(w) \cup \{g\}) \right\} \), compare [3].

The fourth, and the only non-trivial, AGP facet with coefficients in \(\{0,1,2\}\) is the facet of type \(\alpha _S\) presented in Inequality (8) and Theorem 1, which is thoroughly analyzed above.

6 Edge Cover Facets

Solving \( AGR (G,W)\) for finite \(G,W \subset P\), such that no guard can see more than two witnesses is equivalent to solving fractional edge cover (EC) on the graph with nodes \(W\), an edge between \(v \ne w \in W\) for each \(g \in G\) with \(\mathcal {V}(g) \cap W = \{v,w\}\), and a loop for each \(g \in G\) with \(\mathcal {V}(g) \cap W = \{w\}\). The fractional EC polytope is known to be half-integral [15], which can be exploited to show that fractional solutions always form odd-length cycles of \(\frac{1}{2}\)-guards.

In the conclusions of [12], we proposed a class of valid inequalities motivated by this. The idea is to identify \(k\) witnesses \(\overline{W} = \{ w_1, \dots , w_k \}\), such that no point exists that can see more than two of them. Then at least \(\left\lceil \frac{k}{2} \right\rceil \) binary guards are needed for covering \(\overline{W}\). Two examples are shown in Fig. 9.

$$\begin{aligned} \sum _{g \in \mathcal {V}(\overline{W})\cap G} x_g \ge \left\lceil \frac{k}{2} \right\rceil \end{aligned}$$
(19)

Obviously, for any choice of \(P \supseteq G' \supseteq G\), (19) does not cut off any feasible solution \(x \in \{0,1\}^{G'}\) of \( AGP (G',P)\), as long as no point in \(P\) exists that sees more than two of these witnesses. Hence, analogously to the SC cuts, a cut can be represented as visibility overlay \(\alpha _{\overline{W}}\) and kept in future iterations once it has been identified.

Fig. 9
figure 9

Two situations, in which no guard exists that can see more than two witnesses. On the left, assigning \(g_1=\dots =g_5=\frac{1}{2}\) results in an optimal fractional solution of \(\frac{5}{2}\), compare [12]. Applying (19) yields \(g_1+\dots +g_5 \ge \frac{5+1}{2} = 3\) and cuts off this fractional solution. On the right, the optimal fractional solution is \(g_1=g_2=g_3=\frac{1}{2}\). (19) provides the constraint \(g_1+g_2+g_3 \ge \frac{3+1}{2} = 2\), which cuts off that fractional solution as well

It is not hard to show that these are facet defining under relatively mild conditions.

Theorem 3

Let \(P\) be a polygon with finite sets of guard and witness positions \(G,W \subset P\), such that \( conv ( AGP (G,W))\) is full-dimensional. Let \(\overline{W} = \left\{ w_1, \dots , w_k \right\} \subseteq W\) be an odd subset of \(k \ge 3\) witnesses, such that

  1. 1.

    No guard sees more than two witnesses in \(\overline{W}\).

  2. 2.

    If a guard sees two witnesses \(w_i \ne w_j \in \overline{W}\), they are a successive pair, i. e., \(i+1=j\) or \(i=1\) and \(j=k\).

  3. 3.

    Each of the \(k\) successive pairs is seen by some \(g \in G\).

  4. 4.

    No guard inside of \(\mathcal {V}\left( \overline{W} \right) \) sees a witness outside of \(\overline{W}\).

Then the constraint

$$\begin{aligned} \sum _{g \in \mathcal {V}\left( \overline{W}\right) \cap G} x_g \ge \left\lceil \frac{\left| \overline{W}\right| }{2} \right\rceil \end{aligned}$$
(20)

is a facet of \( conv ( AGP (G,W))\).

Proof

As no guard sees more than two witnesses of \(\overline{W}\), it is clear that it takes at least \(\left\lceil \frac{k}{2} \right\rceil \) guards to cover \(\overline{W}\).

It remains to be shown how to construct \(n = |G|\) affinely independent solutions of \( AGP (G,W)\). In order to do that, we separate the guards into three groups \(G_1 \mathbin {\dot{\cup }}G_2 \mathbin {\dot{\cup }}G_3 = G\) with \(|G_i| = n_i\):

  1. 1.

    \(G_1\) is a set of one guard for each successive pair as in Condition 3.

  2. 2.

    \(G_2\) contains all guards in \(\mathcal {V}\left( \overline{W} \right) \) that are not already part of \(G_1\):

    $$\begin{aligned} G_2 = \left( \mathcal {V}\left( \overline{W} \right) \cap G \right) \setminus G_1 \end{aligned}$$
    (21)
  3. 3.

    \(G_3\) holds the rest of the guards, which are outside of \(\mathcal {V}(\overline{W})\):

    $$\begin{aligned} G_3 = G \setminus \mathcal {V}\left( \overline{W} \right) \end{aligned}$$
    (22)

In the following, we describe a solution \(x \in \{0,1\}^G\) by \(x = \left( x_{G_1}, x_{G_2}, x_{G_3}\right) \), where \(x_{G_i} \in \{0,1\}^{G_i}\) denotes the vector \((x_{g_1},\dots ,x_{g_{n_i}})\) with \(G_i = \{g_1,\dots ,g_{n_i}\}\). The first set of \(n_1\) solutions is

$$\begin{aligned} x^1&= \left( (1,0,1,0,\dots ,1,0,1), \quad \mathbf{0}, \quad 1\!\!1 \right) \nonumber \\ x^2&= \left( (1,1,0,1,\dots ,0,1,0), \quad \mathbf{0}, \quad 1\!\!1 \right) \nonumber \\ x^3&= \left( (0,1,1,0,\dots ,1,0,1), \quad \mathbf{0}, \quad 1\!\!1 \right) \nonumber \\&\vdots \nonumber \\ x^{n_1}&= \left( (0,1,0,1,\dots ,0,1,1), \quad \mathbf{0}, \quad 1\!\!1 \right) , \end{aligned}$$
(23)

which exists because of Condition 3 and the choice of \(G_1\). It fulfills (20) with equality because it uses \(\left\lceil \frac{k}{2}\right\rceil \) guards, and it is feasible, because \(\overline{W}\) and \(W \setminus \overline{W}\) are covered by construction and guards not in \(G_3\) do not interfere with the coverage of witnesses in \(W \setminus \overline{W}\).

The second set provides \(n_2\) solutions by using the \(i\)-th unit vector as \(x_{G_2}\).

$$\begin{aligned} x^i = \left( x', \quad e_i, \quad 1\!\!1 \right) \end{aligned}$$
(24)

As every successive pair of witnesses is covered by some guard in \(G_1\), a choice of \(x'\) such that \(x^i\) fulfills (20) with equality is always possible.

The third and last set of \(n_3\) solutions is constructed by subtracting \(e_i\) from \(1\!\!1\) in the vector \(x_{G_3}\):

$$\begin{aligned} x^i = \left( (1,0,1,0,\dots ,1,0,1), \quad \mathbf{0}, \quad 1\!\!1 - e_i \right) . \end{aligned}$$
(25)

It fulfills (20) with equality. Setting one guard value to zero in \(G_3\) is feasible because in a full-dimensional \( conv ( AGP (G,W))\), every witness is seen by at least two guards, compare Lemma 1.

All in all, we have \(n_1 + n_2 + n_3 = n\) feasible, affinely independent solutions of \( AGP (G,W)\) fulfilling (20) with equality, so (20) has dimension \(n-1\) and is a facet, as claimed.\(\square \)

7 Computational Experience

A variety of experiments on benchmark polygons demonstrates the usefulness of our cutting planes, as well as the appropriateness of our separation heuristic of using only \(k=3\) for the SC related facets from Sect. 5.

We test our cutting planes in two variations of our algorithm, IP and LP mode, i. e., Algorithms 2 and 1 from Sect. 4. An in-depth presentation of the results is conducted in Sects. 7.1 and 7.2.

Just as in [12], we employed four different classes of benchmark polygons.

  1. 1.

    Random von Koch polygons are inspired by fractal Koch curves, see Fig. 10, left.

  2. 2.

    Random floorplan-like Orthogonal polygons as in Fig. 10, second polygon.

  3. 3.

    Random non-orthogonal Simple polygons as in Fig. 10, third polygon.

  4. 4.

    Random Spike polygons (mostly with holes) as in Fig. 10, fourth polygon.

Each polygon class was evaluated for different sizes \(n \in \{ 60, 200, 500, 1000 \}\), where \(n\) is the approximate number of vertices in a polygon.

Fig. 10
figure 10

Small von Koch, Orthogonal, Simple and Spike test polygons

Different combinations of cut separators were also employed. The EC-related cuts from Sect. 6 are referred to as EC cuts, while the SC-related cuts of Sect. 5 that rely on separating a maximum of \(3 \le k\) witnesses are denoted by SC \(k\) cuts. Note that for \(3 \le m \le k\), SC\(k\) cuts also include all SC\(m\) cuts.

Whenever our algorithm separates cuts, it applies all configured cut separators and we test the following combinations: no cut separation at all, SC3 cuts only, SC4 cuts only, EC cuts only, and SC3 and EC cuts at the same time.

In total, we have two modes, five combinations of separators, four classes of polygons, and four polygon sizes; for each combination, we tested 10 different polygons. The experiments were run on 3.0 GHz Intel dual core PCs with 2 GB of memory, running 32 bit Debian 6.0.5 with Linux 2.6.32-686. Our algorithms were not parallelized, used version 4.0 of the “Computational Geometry Algorithms Library” (CGAL) and CPLEX 12.1. Each test run had a time limit of 600 s.

In the remaining part of this section, we refer to quartiles by \(\hbox {Q}_0, \hbox {Q}_1, \hbox {Q}_2, \hbox {Q}_3\) and \(\hbox {Q}_4\). \(\hbox {Q}_1\) is the first quartile, which is between the lowest 25 % and the rest of the values. \(\hbox {Q}_2\) is the second quartile or the median value and \(\hbox {Q}_3\), the third quartile, splits the upper 25 % from the lower 75 %. For the sake of simplicity, the minimum and the maximum are denoted by \(\hbox {Q}_0\) and \(\hbox {Q}_4\), respectively.

7.1 IP Mode

The IP mode, Algorithm 2, is a variation of the one introduced in [12], which always determines binary solutions at the expense of not necessarily terminating due to the integrality gap. Our experiments confirm that the integrality gap is drastically reduced by our cutting planes.

In Fig. 11 we present the relative gap over time for the five tested cut separator selections for the von Koch-type polygons with 1000 vertices. Figure 11a shows the relative gap over time without cut separation. After about 400 s, gaps are fixed between 0 and 6 %, the median gap being 2 %. When applying the EC separator (Fig. 11b), 75 % of the gaps drop to zero and the largest gap is 2 %. Using the SC3 separator (Fig. 11c) yields an even better result in terms of both speed and relative gap. All gaps are closed, many of them earlier than with the EC separator. Combining both, see Fig. 11d, yields a result comparable to using only SC3. Moving to the SC4 separator (Fig. 11e) yields a weaker performance: computation times go up, and not all gaps reach 0 % within the allotted time, because separation takes longer without improving the gap. This illustrates the practical consequences of Theorem 2.

Fig. 11
figure 11

Relative gap over time in IP-mode for 1000-vertex von Koch-type polygons. a No cuts. b EC. c SC3. d SC3 and EC. e SC4

The remaining test cases, i. e., the remaining polygon classes, confirm our interpretation. We briefly summarize only the deviating observations.

For the Orthogonal-type polygons with 1000 vertices in Fig. 12, EC and SC3 separation yield an improvement over using no separation: The maximum relative gap drops and some gaps reach their 600 s levels earlier. Joint application of SC3 and EC provides the best results. SC4 and SC3 separation only differ in the extreme cases of the minimum and the maximum relative gap.

Fig. 12
figure 12

Relative gap over time in IP-mode for the 1000-vertex Orthogonal-type polygons. a No cuts, b EC, c SC3, d SC3 and EC, e SC4

The 1000-vertex Simple polygons, see Fig. 13, allow a slight improvement of the relative gap with EC as well as SC3 separation; joint application yields the best results. A difference to the other experiments is that the SC4 separator performs slightly better than the SC3 separator—an isolated observation.

Fig. 13
figure 13

Relative gap over time in IP-mode for the 1000-vertex Simple-type polygons. a No cuts, b EC, c SC3, d SC3 and EC, e SC4

Our separators have no measurable impact on the Spike-type polygons, see Fig. 14. Larger instances of this type of polygon take much time when solving the first couple of IP, which means our separators are triggered late in the 600 s time limit—or not at all.

Fig. 14
figure 14

Relative gap over time in IP-mode for the 200-vertex Spike-type polygons. a No cuts, b EC, c SC3, d SC3 and EC, e SC4

7.2 LP Mode

Analogously to the IP mode, we test the separators in LP mode, i. e., Algorithm 1. The difference to Algorithm 2 is that in the primal phase, it solves the LP \( AGR (G,W,A)\) instead of the IP. If a solution of \( AGR (G,W,A)\) is feasible for \( AGR (G,P,A)\) and if it happens to be binary, it is an upper bound, otherwise it is discarded and the primal phase is continued.

The challenge of the LP mode is to find a binary solution at all, because the algorithm might stick to fractional optimal solutions that are not handled by any cut separator. Instances unsolved because of this are considered to have an infinite gap; they result in diagrams in which only the lower quartiles are visible.

Figures 151617 and 18 show the relative gap over time diagrams for the 500-vertex von Koch, Orthogonal and Simple, as well as the 200-vertex Spike polygons.

Fig. 15
figure 15

Relative gap over time in LP-mode for the 500-vertex von Koch-type polygons. a No cuts, b EC, c SC3, d SC3 and EC, e SC4

Fig. 16
figure 16

Relative gap over time in LP-mode for the 500-vertex Orthogonal-type polygons. a No cuts, b EC, c SC3, d SC3 and EC, e SC4

Fig. 17
figure 17

Relative gap over time in LP-mode for the 500-vertex Simple-type polygons. a No cuts. b EC, c SC3, d SC3 and EC, e SC4

Fig. 18
figure 18

Relative gap over time in LP-mode for the 200-vertex Spike-type polygons. a No cuts, b EC, c SC3, d SC3 and EC, e SC4

For the von Koch polygons in Fig. 15, the EC separator provides a slight improvement, the SC3 separator a stronger improvement; the best result is obtained when using both of them. SC4 separation is weaker than SC3 separation.

The EC separator does not improve the situation for the Orthogonal polygons, Fig. 16, but the SC3 separator boosts solution percentage beyond 75 %. Joint application of both separators results in even smaller gaps. SC4 cut separation yields mixed results: The median relative gap is larger, while the \(\hbox {Q}_3\) gap is smaller but takes approximately 350 s longer to reach its value. In addition, the \(\hbox {Q}_1\) curve takes much longer to drop to zero as well.

The situation for the Simple polygons in Fig. 17 is as follows. EC separation has no impact on the results, when applied alone as well as when used jointly. As above, SC3 separation is better than SC4 separation, it solves more instances.

EC cuts have no impact on the Spike polygons, Fig. 18, but SC3 helps solving all of them instead of less than 25 %. In this case, the SC4 separator is approximately 10 s faster in the \(\hbox {Q}_1, \hbox {Q}_2\) and \(\hbox {Q}_3\) quartiles and 30 s for the maximum.

We present Table 1 that summarizes the solution percentage after 600 s in LP mode as well as the median relative gap.

Table 1 After 600 s, for each polygon/size combination and for every tested cut separator combination, this table shows for how many percent of the polygons a binary solution was found as well as their median relative gap

8 Conclusion

In this paper, we have shown how we can exploit both geometric properties and polyhedral methods of mathematical programming to solve a classical and natural, but highly challenging problem from computational geometry.

We have shown how to integrate cutting planes into linear programming formulations of the Art Gallery Problem (AGP), a linear program with a potentially infinite number of both variables and constraints. Additionally, we provided three trivial and two non-trivial facets of the AGP polytope based on Set Cover and Edge Cover, including a complete list of all AGP facets with coefficients in \(\{0,1,2\}\).

Furthermore, we have exploited the underlying geometric properties of the AGP to identify a subset of one of our facet classes, that

  1. 1.

    can be separated in polynomial time, although the general separation problem is NP-complete.

  2. 2.

    is theoretically justified by showing that geometry behind the cutting planes is star-shaped for the cases excluded in separation.

  3. 3.

    is justified by experimental data.

This promises to pave the way for a range of practical AGP applications that have to deal with additional real-life aspects. We are optimistic that our basic approach can also be used for other geometric optimization problems.