• No results found

Diffuse Reflection Radius in a Simple Polygon

N/A
N/A
Protected

Academic year: 2021

Share "Diffuse Reflection Radius in a Simple Polygon"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

Diffuse Reflection Radius in a Simple Polygon

Eli Fox-Epstein

Csaba D. T´oth

Andrew Winslow

Abstract

It is shown that every simple polygon in general position withnwalls can be illuminated from a single point light sourcesafter at mostb(n2)/4cdiffuse reflections, and this bound is the best possible. A pointswith this property can be computed inO(nlogn)time. It is also shown that the minimum number of diffuse reflections needed to illuminate a given simple polygon from a single point can be approximated up to an additive constant in polynomial time.

1

Introduction

When light diffusely reflects off of a surface, it scatters in all directions. This is in contrast to specular reflection, where the angle of incidence equals the angle of reflection. We are interested in the minimum number of diffuse reflections needed to illuminate all points in the interior of a simple polygon P with n vertices from a single light source s in the interior of P. Adiffuse reflection pathis a polygonal pathγ contained inP such that every interior vertex ofγ lies in the relative interior of some edge ofP, and the relative interior of every edge ofγ lies in the interior ofP (see Fig. 1 for an example). Our main result is the following.

Theorem 1. For every simple polygonP with n 3 vertices in general position (i.e., no three

collinear vertices), there is a point s ∈ int(P) such that for all t ∈ int(P), there is a diffuse reflection path fromstotwith at mostb(n2)/4cinternal vertices. This lower bound is the best possible. A points int(P)with this property can be computed inO(nlogn)time.

This result is, in fact, a tight bound on the worst-case diffuse reflection radius (defined below) for simple polygons. Denote byVk(s) ⊆ P the part of the polygon illuminated by a light source s after at most k diffuse reflections. Formally,Vk(s) is the set of pointst ∈ P such that there is

a diffuse reflection path fromstot with at mostkinterior vertices. Hence, V0(s)is the visibility polygon of point s within the polygon P if s int(P). The diffuse reflection depthof a point

s int(P)is the smallest integer r 0such that int(P) Vr(s). Thediffuse reflection radius R(P)of a simple polygon P is the minimum diffuse reflection depth over all pointss ∈ int(P),

Department of Computer Science, Brown University, Providence, RI.[email protected]

Department of Mathematics, California State University, Northridge, Los Angeles, CA.[email protected]D´epartement d’Informatique, Universit´e Libre de Bruxelles, Brussels, Belgium.[email protected]

(2)

s

s

s

V

0

(s)

V

1

(s)

V

2

(s) =

P

P

s

P

t

(a)

(b)

(c)

(d)

Figure 1: (a) A diffuse reflection path betweenstotin a simple polygonP. (b)–(d) The regions of a polygon illuminated by a light sourcesafter 0, 1, and 2 diffuse reflections. The diffuse reflection radius of a zig-zag polygon withnvertices isb(n−2)/4c.

anddiffuse reflection center ofP is the set of points s int(P)that attain this minimum. With this terminology, Theorem 1 implies thatR(P) ≤ b(n−2)/4cfor every simple polygon P with

n3vertices in general position. A family of zig-zag polygons (e.g. the polygon in Fig. 1) shows that this bound is the best possible for alln 3. We note here that thediffuse reflection diameter

D(P)ofP is themaximumdiffuse reflection depth over alls ∈int(P).

No polynomial-time algorithm is known for computing R(P) for a given polygonP with n

vertices. We show, however, that R(P) can be approximated up to a constant additive error in polynomial time.

Theorem 2. Given a simple polygonP withn vertices in general position, one can compute in

time polynomial inn:

1. an integerk∈N0 such thatk−1≤R(P)≤k+ 1, and

2. a pointsint(P)such thatint(P)Vk+1(s).

Motivation and Related Work. Diffuse reflection paths are special cases of link paths, which

have been studied extensively due to applications in motion planning, robotics, and curve compres-sion [17, 28]. Thelink distancebetween two points,sandt, in a simple polygonP is the minimum number of edges in a polygonal path betweensandtthat lies entirely inP. In a polygonP withn

vertices, the link distance between two points can be computed inO(n)time [32]. Thelink depth

of a pointsis the smallest integerd 0such that all other points inP are within link distanced

ofs. Thelink radiusis the minimum link depth over all points inP, and thelink centeris the set of points with minimum link depth. It is known that the link center is a convex region and can be computed inO(nlogn)time [16]. Thelink diameterofP, the maximum link depth over all points inP, can also be computed inO(nlogn)time [33].

The geodesic center of a simple polygon is a point inside the polygon which minimizes the maximum shortest-path distance (also known as geodesic distance) to any point in the polygon. Asano and Toussaint [5] proved that the geodesic center is unique. Pollack et al. [30] show how to compute the geodesic center of a simple polygon with n vertices inO(nlogn)time; this was recentpy improved to O(n)time by Ahn et al. [2]. Hershberger and Suri [22] give anO(n)time algorithm for computing thegeodesic diameter. Schuirer [31] givesO(n)time algorithms for the

(3)

geodesic center and diameter under theL1 metric in rectilinear polygons. Bae et al. [6] show that theL1-geodesic diameter and center can be computed inO(n)time in every simple polygon with

nvertices.

Diffuse reflection paths have received increasing attention since the mid-1990s when Tokarsky [34] answered a question of Klee [24, 25], proving that a light source may not cover the interior of the simple polygon usingspecularreflection (where the angle of incidence equals the angle of reflec-tion in the reflecreflec-tion path). He constructed a simple polygonP and two pointss, t int(P)such that there is no specular reflection path fromstot. It is not difficult to see that all pointst int(P) can be reached from anys ∈int(P)on a diffuse reflection path. However, the maximum number of reflections, in terms of the number of vertices, have been determined only recently. Barequet et al. [7] proved, confirming a conjecture by Aanjaneya et al. [1], thatD(P) ≤ bn/2c −1for all simple polygons withnvertices, and this bound is the best possible.

The link distance, geodesic distance and theL1-geodesic distance are all metrics; but the mini-mum number of edges on a diffuse reflection path between two points isnota metric. Specifically, the triangle inequality need not hold (note that fora, b, c ∈ int(P), the concatenation of an two diffuse reflection paths,a-to-bandb-to-c, need not be a diffuse reflection path since it may have an interior vertex atb int(P)). This explains, in part, the difficulty of handling diffuse reflections. Brahma et al. [10] constructed examples whereV2(s)(the set of points reachable froms after at most two diffuse reflections) is not simply connected, and whereV3(s)hasΩ(n)holes. In general, the maximum complexity ofVk(s)is known to beΩ(n2)andO(n9)[3]. In contrast to link paths,

the best known algorithm for computing a minimum diffuse reflection path (one with the mini-mum number of reflections) between two points in a simple polygon withn vertices takesO(n9) time [3, 17]. Ghosh et al. [18] give a 3-approximation for this problem that runs in O(n2) time. Bishnu et al. [8] define a constrained version of diffuse reflection paths that can be computed in

O(n3)time.

Khan et al. [23] study two weaker models of diffuse reflections, in which some edges of a diffuse reflection path may overlap with the boundary of the polygonP. They establish upper and lower bounds for the diffuse reflection radius under these weaker models for simple polygons that can be decomposed into convex quadrilaterals. No previous bound has been known for the diffuse reflection radius under the standard model that we use in this paper.

Proof Technique. The regions Vk(s) are notoriously difficult to handle. Instead of Vk(s), we

rely on the simply connected regionsRk(s) ⊆Vk(s)defined by Barequet et al. [7] and show that

int(P) Rb(n−2)/4c(s)for some points ∈ int(P). In Section 2, we establish a simple sufficient

condition (Lemma 1) forint(P) ⊆ Rb(n−2)/4c(s)in terms of the visibility polygonV0(s)that can

be verified inO(n)time. Except for two extremal cases that are resolved directly (Section 2.4), we prove that thereexistsa point satisfying these conditions in Section 3.

The two main geometric tools we use are a generalization of a kernel of a simple polygon (Section 3.1) and the weak visibility polygon for a line segment (Section 3.2). Finally, the exis-tential proof can be turned into an efficient algorithm: the generalized kernel can be computed in

O(nlogn)time, and the visibility polygon for a point moving along a line segment can be main-tained with a persistent data structure. The combination of these methods helps finding a witness

(4)

points int(P)withint(P)Vb(n−2)/4c(s)inO(nlogn)time.

2

Preliminaries

For a set U ⊂ R2 in the plane, let int(U) denote the interior, ∂U the boundary, and cl(U) the

closure ofU. LetP be a simply connected closed polygonal domain (for short, simple polygon) with n vertices. A chord of P is a closed line segment ab such thata, b ∂P and the relative interior ofabis inint(P).

We assume that the vertices of P are in general position (that is, no three collinear vertices), and we only consider light sourcess int(P)that do not lie on any line spanned by two vertices of P. Recall thatV0(s)is the visibility polygon of the points ∈ int(P) with respect toP. The

pocketsofV0(s)are the connected components ofP \cl(V0(s)). See Fig. 2(a) for examples. The common boundary ofV0(s)and a pocket is a chordabofP (called awindow) such thatais a reflex vertex of P that lies in the relative interior of segment sb. We say that a pocket with a window

abis induced bythe reflex vertex a. Note that every reflex vertex induces at most one pocket of

V0(s). We define thesizeof a pocket as the number of vertices ofP on the boundary of the pocket. Since the pockets ofV0(s)are pairwise disjoint, the sum of the sizes of the pockets is at mostn, the number of vertices ofP.

s

a

1

a

2

b

2

b

1

b

3

a

3

U

1

U

2

U

3

P

V

0

(s) =

R

0

s

a

1

a

2

b

1

a

3

P

R

1

(a)

(b)

b

3

b

2

W

1

W

2

W

3

Figure 2: (a) A polygon P where V0(s) has three pockets U1, U2 and U3, of size 4, 4, and 5, respectively. The left pockets areU1andU2, the only right pocket isU3. PocketU1 is independent of both U2 andU3; but U2 and U3 are dependent. (b) The construction of region R1 from R0 =

V0(s)in [7]. PocketU1 is saturated, and pocketsU2 andU3 are unsaturated.

A pocket is aleft(resp.,right) pocket if it lies on the left (resp., right) side of the directed line

− →

ab. Two pockets ofV0(s)aredependentif some chord ofP crosses the window of both pockets; otherwise they areindependent. One pocket is called independent if it is independent of all other pockets.

(5)

Proposition 1. All left (resp., right) pockets ofV0(s)are pairwise independent.

Proof. Consider two left pockets of V0(s), lying on the left side of the windows −−→a1b1 and −−→a2b2, respectively (see Fig. 2(a)). Suppose, for contradiction, that some chord ` of P intersects both windows. Let `0 ⊂ ` be the segment of ` between a1b1 and a2b2. Segment `0 lies in the right halfplane of both−−→a1b1 and−−→a2b2. The intersection of these two halfplanes is a wedge with the apex ats, and eithera1b1ora2b2is not incident to this wedge. This contradiction implies that no chord

`can cross both windowsa1b1 anda2b2.

The main result of Section 2 is a sufficient condition (Lemma 1) for a points∈int(P)to fully illuminateint(P)withinb(n2)/4cdiffuse reflections. The proof of the lemma is postponed to the end of Section 2. It relies on the techniques developed by Barequet et al. [7] and the bound

D(P)≤ bn/2c −1on the diffuse reflection diameter.

Lemma 1. We have int(P) Vb(n−2)/4c(s)for a point s ∈ int(P)if the pockets of V0(s)satisfy

these conditions:

C1 every pocket has size at mostbn/2c −1; and

C2 the sum of the sizes of any two dependent pockets is at mostbn/2c −1.

2.1

Review of regions

R

k

.

We briefly review the necessary tools developed by Barequet et al. [7]. Lets ∈ int(P)be a point in general position with respect to the vertices ofP. Recall thatVk(s), the set of points reachable

from swith at most k diffuse reflections, is not necessarily simply connected when k ≥ 1 [10]. Instead of tacklingVk(s)directly, Barequet et al. [7] recursively define simply connected regions Rk = Rk(s), where Rk(s) ⊆ Vk(s), for allk ∈ N0. For k = 0, we haveR0 = V0(s). We now review howRk+1is constructed fromRk. Each regionRkis bounded by chords ofP and segments

along the boundary ∂P. The connected components ofP \cl(Rk) are thepockets of Rk. Each

pocketUabofRkis bounded by a chordabsuch thatais a reflex vertex ofP,bis an interior point

of an edge of P, and the two edges ofP incident to a are on the same side of the lineab(these properties are maintained recursively forRk).

A pocketUab ofRkissaturated if every chord ofP that crossesabhas one endpoint inRkand

the other endpoint inUab. Otherwise,Uab isunsaturated. Recall that for a points0 ∈ P, V0(s0)is

the set of points inP visible froms0. We also introduce an analogous notation for a line segment

pqP: letV0(pq)denote the set of points inP visible from any point inpq.

For a given point s int(P), the regionsRk are defined as follows (refer to Fig. 2(b)). Let R0 = V0(s). If int(P) ⊆ Rk, then let Rk+1 = cl(Rk) = P. If int(P) 6⊆ Rk, then Rk has at

least one pocket. For each pocket Uab, we define a set Wab ⊆ Uab: If Uab is saturated, then let Wab = V0(ab)∩Uab. IfUab is unsaturated, then letpab ∈ Rk∩∂P be a point close tobsuch that

no line determined by two vertices ofP separatesbandpab; and then letWab =V0(pab)∩Uab. Let Rk+1 be the union ofcl(Rk)and the setsWab for all pocketsUab ofRk. Barequet et al. [7] prove

(6)

Remark 1. Note that when a pocketUab is unsaturated, thenpab is an interior point of some edge eofP. Since light does not propagate along the edgee, the regionsWab andRk+1 do not contain

e∩Uab. Consequently, there is a fine difference betweenindependentandsaturatedpockets. Every

saturated pocket ofRk is independent from all other pockets (by definition), but an independent

pocket of Rk is not necessarily saturated. In Fig. 3 (a), U1 and U2 are dependent pockets of R0; regionR1covers the interior ofU2, but not its boundary, and it has a pocketU5 ⊂U1. Even though

U5 is independent of all other pockets of R1(s), it is unsaturated: a chord between U5 and the uncovered part ofU2 crossesa5b5. Sincesis in general position, this phenomenon does not occur fork = 0, and every independent pocket ofV0(s)is saturated.

s

a

1

a

2

b

2

b

4

b

3

a

3

U

1

U

2

U

3

P

R

0

(a)

(b)

a

4

U

4

U

4

b

1

a

1

s

U

6

P

R

1

U

7

U

5

a

5

a

5

b

5

Figure 3: (a) A polygonP whereR0 =V0(s)has four unsaturated pockets: U1, . . . , U4. (b) The white lines on the boundary ofR1are not part ofR1. Consequently, pocketU5ofR1is unsaturated, although it is independent of all other pockets. Pockets U6 and U7 of R1 are independent and saturated.

We say that a regionRkweakly coversan edge ofP if the boundary∂Rkintersects the relative

interior of that edge. On the boundary of every pocketUab ofRk, there is an edge of P that Rk

does not weakly cover, namely, the edge ofP incident toa. We call this edge thelead edgeofUab.

The following observation follows from the way the regionsRk are constructed in [7].

Proposition 2([7]). For every pocketUof regionRk,k∈N0, the lead edge ofU is weakly covered

by regionRk+1andis notweakly covered byRk.

Proposition 3. If a pocketUab ofV0(s)has sizem, thenRkweakly covers at leastmin(k+ 1, m)

edges ofP on the boundary ofU.

Proof. For every k N0, let µk denote the number of edges of P on the boundary of Uab that

are weakly covered by Rk. Uab is bounded by a chord and m edges of P. One of these edges

(7)

k N0, µk is monotonically increasing, and every pocket ofRk that intersectsU is contained in Uab. In each pocket ofRk, by Proposition 2, regionRk+1 weakly covers at least one new edge of

P. Consequently, we haveµk+1 ≥ min(µk+ 1, m)for all k ∈ N0. Induction onk ∈ N0 yields

µk≥min(k+ 1, m).

2.2

Incrementally covering the pockets of

V

0

(

s

)

In this subsection, we present three technical lemmas that yield upper bounds on the minimumk

for whichVk(s)contains the interior of a given pocket ofV0(s). The following lemma is a direct

consequence of Proposition 3. It will be used for unsaturated pockets ofV0(s).

Lemma 2. IfU is a size-mpocket ofV0(s), thenint(U)⊆Rm−1.

Proof. By Proposition 3,Rm−1weakly covers all edges ofP on the boundary ofU. Consequently,

U cannot contain any pocket ofRm−1 (otherwiseU∩Rm would weakly cover at leastm+ 1edges

by Proposition 2). Thusint(U)Rm−1, as claimed.

For saturated pockets, the diameter bound [7] allows a better result.

Lemma 3. IfU is a size-msaturated pocket ofRk, thenint(U)⊆Rk+bm/2c.

Proof. Let ab be the window of U. Since a is a reflex vertex of P, it is a convex vertex of the pocketU. Refer to Fig. 4. SinceUab is saturated, every chord that crosses abis part of a diffuse

reflection path that starts atsand enters the interior ofUab after at mostkreflections.

s

a

b

U

ab

U

2

U

3

P

V

0

(

s

) =

R

0

(a)

(b)

a

U

ab

s

0

P

0

x

y

b

Figure 4: (a) A polygonP from Fig. 2 with saturated pocketUab. (b) PolygonP0 for the pocket U1.

We construct a polygonP0withm+ 2vertices and a points0 int(P0)such thatU is a pocket

(8)

sand enters the interior ofU after one reflection inP0. The polygonP0 is bounded by the common

boundary∂P U and a polygonal path(a, x, y, b), wherexis in a small neighborhood ofasuch that x and U lie on the same side of line ab, and y lies on the edge of P that containsb in the exterior ofU. Places0 int(P0)on the lineabsuch thatais in the relative interior ofs0b.

PolygonP0hasm+2vertices (sinceblies in the interior of an edge ofP). The diffuse reflection

diameter of a polygon withm+ 2vertices isb(m+ 2)/2c −1 =bm/2cfrom [7]. Consequently, every pointt int(U)can be reached froms0after at mostbm/2cdiffuse reflections inP0. Since

a reflection path from s0 to any pointt int(U)in P0 corresponds to ans-to-t reflection path in

the original polygon P with at most k more reflections, everyt ∈ int(U)can be reached froms

after at mostk+bm/2cdiffuse reflections inP.

Lemmas 2 and 3 yield the following for dependent pockets ofV0(s).

Lemma 4. LetU be a pocket ofV0(s)of sizem. If each pocket dependent onU has size at most

m0 < m, thenint(U)R

b(m+m0)/2c.

Proof. For everyk ∈ N0, letµk denote the number of edges ofP on the boundary of U that are

weakly covered byRk. We have µ0 = 1, and ifµk = m, then int(U) ⊆ Rk. By Proposition 3, µm0 ≥m0+ 1(i.e., at mostm−m0−1more edges have to be weakly covered).

By Lemma 2, Rm01 contains the interior of all pockets of V0(s) that depend on U. Con-sequently, if Rm01 has only one pocket inside U, it must be independent (but not necessarily saturated, cf. Remark 1). By definition,cl(Rm01) ⊆ Rm0, and soRm0 also contains the bound-aries of all pockets ofV0(s)that depend onU. Consequently, ifRm0 has exactly one pocket inside

U, it must be saturated.

We distinguish between two possibilities. First assumeµm0+k ≥ min(m0 + 2k+ 1, m)for all

k ≥1(that is, at least two more edges inU get weakly covered until all edges inU are exhausted). Thenint(U)Rm0+d(mm01)/2e=Rb(m+m0)/2c.

Otherwise, let k ≥ 1be the first index such that µm0+k = m0 + 2k < m. Since µm0+k1

m0+2(k−1)+1 =m0+2k−1by assumption andµm0+k ≥µm0+k−1+1by Proposition 2, we have

µm0+km0+k1 + 1. This means thatRm0+k1 has exactly one pocket in U, sayUab ⊂ U, and

Rm0+k+1weakly covers only one new edge ofUab(e.g., pocketU5 ⊂U1in Fig. 3). This is possible only if Uab is unsaturated. Then the region Rm0+k is extended byWab = V0(pab) for a pointpab close tob. SinceWab weakly covers only one new edge, the lead edge ofUab, which incident toa.

Therefore, Wab is a triangle bounded byab, the lead edge ofUab, and the edge the containsb. It

follows thatRm0+k also has exactly one pocket inU, sayUa0b0, where the windowa0b0 is collinear with the edge ofP that containsb. Hence the pocketUa0b0 issaturated: of every chord that crosses

a0b0, one endpoint is either in W

ab ⊂ Rm0+k+1 or in cl(Rm0+k) ⊂ Rm0+k+1. By Lemma 3, the interior of this pocket is contained inRm0+k+d(m−m02k−1)/2e=Rb(m+m0)/2c, as claimed.

2.3

Proof of Lemma 1

We prove a slightly more general statement than Lemma 1.

(9)

1. every pocket has size at most2k+ 1; and

2. the sum of the sizes of any two dependent pockets is at most2k+ 1.

Proof. Consider the pockets of V0(s). By Lemma 2, the interior of every pocket of size at most

k+ 1is contained inRk. It remains to consider the pocketsU of sizemfork+ 2 ≤m ≤2k+ 1.

We distinguish between two cases.

Case 1: a pocketU of sizemis independent of all other pockets ofV0(s). ThenU is saturated

(cf. Remark 1). By Lemma 3, the interior ofU is contained inRbm/2c ⊆Rk ⊆Vk(s).

Case 2: a pocketU of sizemis dependent on some other pockets ofV0(s). Any other pocket

dependent onU has size at mostm0 = 2k+ 1m k1< m by our assumption. Lemma 4

implies that the interior ofU is contained inRb(m+(2k+1−m))/2c =Rk⊆Vk(s).

of Lemma 1. Invoke Lemma 5 withk =b(n2)/4c, and note that2k+ 1 = 2b(n2)/4c+ 1

bn/2c −1.

2.4

Double Violators

Recall that the sum of sizes of the pockets of V0(s) is at most n, the number of vertices of P. It is, therefore, possible that several pockets or dependent pairs of pockets violate conditionsC1 or C2 in Lemma 1. We say that a point s ∈ int(P) is a double violator if V0(s) has either (i) two disjoint pairs of dependent pockets, each pair with total size at least bn/2c, or (ii) a pair of dependent pockets of total size at least bn/2c and an independent pocket of size at least bn/2c. (We do not worry about the possibility of two independent pockets, each of size at leastbn/2c.) In this section, we show that if there is a double violators∈int(P), then there is a points0 ∈int(P) (possiblys0 =s) for whichint(P)V

b(n−2)/4c(s0), and such ans0 can be found inO(n)time.

The key technical tool is the following variant of Lemma 4 for a pair of dependent pockets that are adjacent to a common edge (that is,sharean edge).

Lemma 6. LetUab andUa0b0 be two dependent pockets ofV0(s)such that neither is dependent on

any other pocket, and pointsbandb0 lie in the same edge ofP. Let the size ofU

ab bemandUa0b0

bem0. ThenRb(m+m01)/2ccontains the interior of bothUab andUa0b0.

Proof. For everyk N0, letµk (resp., µ0k) denote the number of edges ofP on the boundary of Uab(resp.,Ua0b0) that are weakly covered byRk. We haveµ0 = 1andµ0

0 = 1(the edge containing

bandb0 is weakly covered byV0(s)). Proposition 2 guaranteesµ1+µ01 ≥4. Ifµ1+µ01 ≥5, then the proof of Lemma 4 readily implies thatRb(m+m01)/2ccontains the interior of bothUabandUa0b0. Assume now that µ1 +µ01 = 4. This means that R1 weakly covers precisely one new edge from each ofUabandUa0b0. Recall thatUab andUa0b0 are unsaturated, andR1 covers the part ofUab (resp.,Ua0b0) visible from a point nearb(resp.,b0). See Fig. 5(a). It follows thatR1has exactly one pocket in each ofUab andUa0b0, and both pockets are on the same side of the linebb0. Hence these pockets are saturated. They have sizem−1andm0−1, respectively. By Lemma 3, the interiors of bothUabandUa0b0are covered byR1+bmax(m1,m01)/2c =Rb(max(m,m0)+1)/2c⊆Rb(m+m01)/2c.

(10)

s a2 b2 b4 b3 a3 U2 U3 P V0(s) a4 U4 U1 b1 a1 s0 W w (b) s a2 b2 b4 b3 a3 U2 U3 P V0(s) (a) a4 U4 U1 b1 a1

Figure 5: A polygonP withn = 13vertices whereV0(s)has four pockets: two pairs of dependent pockets, the sum of sizes of each pair isbn/2c= 6. (a) One extra vertex lies on∂P between two independent pockets. (b) One extra vertex lies on∂P between two dependent pockets.

Lemma 7. Suppose thatV0(s)has two disjoint pairs of dependent pockets, each pair of total size

at leastbn/2c. Then there is a point s0 int(P)such that int(P) V

b(n−2)/4c(s0), and such a

points0can be computed inO(n)time.

Proof. The sum of the sizes of these four pockets is at least 2bn/2c. If n is even, then the two dependent pairs each have sizen/2, they use allnvertices ofP, and both dependent pairs share an edge. Ifnis odd, then either (i) the two dependent pairs have sizesbn/2canddn/2e, resp., using alln vertices ofP, and both dependent pairs share an edge; or (ii) the two dependent pairs each have sizebn/2c, leaving one extra vertex, which may lie on the boundary between two independent pockets (Fig. 5(a)), or between two dependent pockets (Fig. 5(b)). In all cases, there is at least one dependent pair with joint sizebn/2cthat share an edge.

If the two dependent pairs each have sizebn/2cand each share an edge (Fig. 5(a)), then their interiors are covered byRkfork =b(bn/2c −1)/2c=b(n−2)/4cby Lemma 6. This completely

resolves that case thatnis even.

Assume now that n is odd. Denote the four pockets by U1, . . . , U4, induced by the reflex verticesa1, . . . , a4 in counterclockwise order along∂P, such thatU1 and U2 are dependent with joint size bn/2cand share an edge; and U3 andU4 are dependent but either has joint sizedn/2e or do not share any edge. Refer to Fig. 5(b). Note that a2a3 and a4a1 are edges of P. Let W be the wedge bounded by the rays −→a1s and −→a2s (and disjoint from both a1 and a2). For every points0 int(P)W in this wedge,a

1 anda2 induce pocketsU10 andU20, respectively, such that

U1 ⊆U10 andU2 ⊆U20, and they also share an edge. Compute the intersection of regionint(P)∩W with the two lines containing the lead edges ofU3 andU4. Letwbe a closest point to son these segments, and lets0 int(P)W be a point close tow in general position such that it can see

all of the lead edge forU3 orU4. By construction, vertex a3 ora4 is not incident to any pocket of

V0(s0). Consequently, the total size of all pockets ofV0(s0)inU3 andU4 is at mostbn/2c −1. By Lemmas 1 and 6,Vb(n−2)/4c(s0)contains the interiors of all pockets ofV0(s0), as claimed.

(11)

(a)

s

a

2

b

3

a

3

U

1

U

2

U

3

b

1

a

1

P

V

0

(s)

v

3

(b)

s

a

2

b

2

b

3

a

3

U

1

U

2

U

3

V

0

(s)

b

1

a

1

P

s

0

V

0

(s)

v

3

b

2

s

0

Figure 6: A polygon P with n = 13 vertices where V0(s) has three pockets: two dependent pockets of total size bn/2c = 6 and an independent pocket of size bn/2c = 6. (a) One extra vertex lies on∂P between two independent pockets. (b) One extra vertex lies on∂P between two dependent pockets

Lemma 8. Suppose that V0(s) has a pair of dependent pockets of total size at least bn/2c and

an independent pocket of size at least bn/2c. Then there is a point s0 int(P) with int(P) Vb(n−2)/4c(s0), ands0can be computed inO(n)time.

Proof. The sum of the sizes of these three pockets is at least2bn/2c. This implies thatV0(s)has no other pocket, and so the independent pocket is saturated (cf. Remark 1). Ifn is even, then the two dependent pockets have total sizen/2and share an edge, and the independent pocket has size

n/2. Ifnis odd, then either (i) the three pockets use allnvertices ofP, and the dependent pockets share an edge (Fig. 6(a)); or (ii) the dependent pair and the independent pocket each have size

bn/2c, leaving one extra vertex, which may lie on the boundary between two independent pockets, or between two dependent pockets (Fig. 6(b)). Denote the three pockets byU1,U2, andU3, induced by the reflex verticesa1, a2, anda3 in counterclockwise order along ∂P, such thatU1 andU2 are dependent; andU3 is independent. By Proposition 1, U1 andU2 have opposite orientation, so we may assume without loss of generality thatU2andU3have opposite orientation (say, left and right). First suppose thatU3has sizedn/2e. Refer to Fig. 6(a). ThenU1andU2have joint sizebn/2c and share an edge, and by Lemma 6,Rb(n−2)/4c contains the interior of bothU1 andU2. Since all

n vertices are incident to pockets, a2a3 is an edge of P, anda1b3 is contained in an edge of P, saya1b2 ⊂ a1v3. Sincea3b3 is a window of V0(s), the supporting line ofa2a3 intersects segment

a1b3. Let s0 ∈ int(p)be a point close to the intersection of linea2a3 and segmenta1b3. Then a1 and a2 induce pocketsU10 and U20, respectively, such that U1 ⊆ U10, U2 ⊆ U20, and they share an edge. Both vertexv3 and the lead edge ofU3 are directly visible froms0, they are not part of any pocket ofV0(s0). Consequently, the total size of pockets ofV0(s0)insideU3 is at mostdn/2e −2. By Lemma 1,Vb(n−2)/4c(s0)contains the interiors of all pocket ofV0(s0).

Now suppose that n is odd and U3 has size bn/2c. Refer to Fig. 6(b). Denote the edge of

P that contains b3 by u3v3 such that v3 ∈ ∂U3 (and possibly u3 = a1). Let s0 ∈ int(P) be a point in a small neighborhood of u3. Thens0 directly seesv3, and similarly to the previous case,

(12)

dn/2e= bn/2c+ 1, then they share an edge andu3 =a1. In this cases0 can see the lead edge of

U1, the total size of all pockets ofV0(s0)insideU1 andU2 is at mostbn/2c, and if it equalsbn/2c, then two of those pockets are dependent and share an edge. IfU1 andU2 jointly have sizebn/2c, then P has one “unaffiliated” vertex that does not belong to any pocket of V0(s0) (Fig. 6(b)). If

u3 =a1, then s0 can see the lead edge ofU1, and thus the total size of all pockets ofV0(s0)inside

U1andU2is at mostbn/2c−1. Ifu3 6=a1, then the unaffiliated vertex isu3, henceU1andU2share an edge. Consequently, the total size of all pockets of V0(s0) insideU1 and U2 is at most bn/2c, and if it equalsbn/2c, then two of those pockets are dependent and share an edge. By Lemmas 1 and 6,int(P)⊆Vb(n−2)/4c(s0).

3

Finding a Witness Point

In Section 3.1, we show that in every simple polygon P in general position, there is a point

s ∈ int(P) that satisfies condition C1. In Section 3.2, we pick a point s ∈ int(P) that satis-fies conditionC1, and move it continuously until either (i) it satisfies both conditionsC1 andC2, or (ii) it becomes a double violator. In both cases, we find a witness point for Theorem 1 (by Lemmas 1, 7, and 8).

3.1

Generalized Kernel

Let P be a simple polygon with n vertices. Recall that the set of points from which the entire polygonP is visible is thekernelofP, denoted K(P), which is the intersection of all halfplanes bounded by a supporting line of an edge of P and facing towards the interior of P. Lee and Preparata [26] designed an optimalO(n)time algorithm for computing the kernel of simple poly-gon withnvertices. We now define a generalization of the kernel. For an integerq N0, letKq(P)

denote the set of points s int(P) such that every pocket of V0(s)has size at most q. Clearly,

K(P) = K0(P) = K1(P), andKq(P) ⊆ Kq+1(P)for allq ∈ N0. The set of points that satisfy conditionC1isKbn/2c−1(P). P vi vi−4 L4(vi) P K4(P) vi M4(vi) (a) (b) (c) vi+4 ai `i bi ri ri vi−1 vi1 vi+1 vi+1

Figure 7: (a) PolygonL4(vi). (b) PolygonM4(vi). (c) PolygonK4(P).

For every reflex vertexv, we define two polygonsLq(v)⊂P andMq(v)⊂P: letLq(v)(resp. Mq(v)) be the set of pointss ∈ P such that v does not induce a left (resp., right) pocket of size

(13)

more thanqinV0(s). We have

Kq(P) = \ vreflex

(Lq(v)∩Mq(v)).

We show how to compute the polygonsLq(v)andMq(v). Refer to Fig. 7. Denote the vertices

ofP by(v0, v1, . . . , vn−1), and use arithmetic modulo non the indices. For a reflex vertexvi, let viai be the first edge of the shortest (geodesic) path from vi to vi−q in P. If the chord viai and vivi+1 meet at a reflex angle, thenviai is on the boundary of thesmallestleft pocket of size at least q induced by vi (for any source s ∈ P). In this case, the ray −→aivi enters the interior ofP, and

we denote by`i the first point hit on∂P. The polygonLq(vi)is the part ofP lying on the left of

the chord−→vi`i. However, if the chordviai andvivi+1 meet at convex angle, then every left pocket induced byvi has size less thanq, and we haveLq(vi) =P. Similarly, letvibi be the first edge of

the shortest path fromvitovi+q. Vertexvican induce a right pocket of size more thanqonly ifbivi

andvivi−1make a reflex angle. In this case,vibi is the boundary of thelargestright pocket of size

at mostqinduced byvi, the ray−→bivienters the interior ofP, and hits∂P at a pointmi, andMq(vi)

is the part ofP lying on the right of the chord−−→vimi. ifbiviandvivi−1meet at a convex angle, then

Mq(vi) = P.

Note that every setLq(vi)(resp.,Mq(vi)) isP-convex(a.k.a. geodesic convex), that is,Li(vi)

contains the shortest path between any two points inLq(vi) with respect toP [6, 15, 35]. Since

the intersection of P-convex polygons is P-convex, Kq(P) is alsoP-convex for every q ∈ N0. There exists a point s int(P)satisfying condition C1 if and only ifKbn/2c−1(P) is nonempty. We proveKbn/2c−1(P)6=∅using a Helly-type result by Breen [11] (cf. [12, 29]).

Theorem 3([11]). LetP be a family of simple polygons in the plane. If every three (not

neces-sarily distinct) members ofP have a simply connected union and every two members ofP have a nonempty intersection, thenT

P∈PP 6=∅.

K

6

(P

)

(a)

(b)

b

n 2

c

b

n 2

c

b

n 2

c

P

hole

v

i

v

j

v

k

b

n 2

c

v

i−q

v

j+q

v

k−q

L

q

(v

i

)

L

q

(v

k

)

M

q

(v

j

)

Figure 8: (a) A simple polygonP withn = 14vertices, and the generalized kernelKbn/2c−1(P) = K6(P). (b) A schematic picture of a triangular hole in the union of three polygons inP.

(14)

Lemma 9. For every simple polygonP withn3vertices,Kbn/2c−1(P)has nonempty interior.

Proof. Whenn = 3, we haveKbn/2c−1(P) = K0(P) =P. Now assumen >3.

We apply Theorem 3 for the polygonsLbn/2c−1(vi) andMbn/2c−1(vi)for all reflex verticesvi

ofP. By definition,Lbn/2c−1(vi) is incident tovi−bn/2c+1, . . . , vi on or left of −→viai, and similarly Mbn/2c−1(vi)) is incident to vi, . . . , vi+bn/2c−1 or or right or −→vibi. Furthermore, Lbn/2c−1 (resp.,

Mbn/2c−1) is incident to at least one additional vertex right of−→viai (resp., left of−→vibi). Thus, each

of these sets is incident to at leastbn/2c+ 1vertices ofP. Since2(bn/2c+ 1) > n, any two of these sets are incident to a common vertex ofP by the pigeonhole principle.

Recall that Li and Mi are each bounded by part of the boundary of P and possibly a chord

incident tovi. Consequently, if two of these sets are incident to two or more common vertices of P then their interiors intersect. If they are incident to precisely one common vertex ofP, then the common vertex, sayvi, is incident to both boundary chords, hence the two sets areLi andMi. In

this case, however,viis a reflex vertex of bothLiandMi, and so their interiors intersect.

It remains to show that the union of any three of them is simply connected. Suppose, to the con-trary, that there are three sets whose union has a hole. Since each set is bounded by a chord ofP, the hole must be a triangle bounded by the three chords on the boundary of the three polygons. Re-fer to Fig. 8(b). Each of these chords is incident to a reflex vertex ofP and is collinear withanother

chord ofP that weakly separates the vertices{vi, vi+1, . . . , vi+bn/2c−1}or{vi, vi−1, . . . , vi−bn/2c+1} from the hole. Figure 8(b) shows a schematic image. The latter three chords together weakly sep-arate disjoint sets of vertices of total size at least3bn/2c> nfrom the hole, contradicting the fact thatP hasnvertices altogether.

By Lemma 9,Kbn/2c−1(P)has nonempty interior, so there is a light sources∈int(Kbn/2c−1(P)) that satisfies conditionC1.

Lemma 10. For everyqN0,Kq(P)can be computed inO(nlogn)time.

Proof. With a shortest path data structure [20] in a simple polygonP, the first edge of the shortest path between any two query points can be computed in O(logn) time after O(n)preprocessing time. A ray shooting data structure [21] can answer ray shooting queries in O(logn)time after

O(n)preprocessing time. Therefore, any chord−→vi`ior−−→vimi can be computed inO(logn)time.

The generalized kernel Kq(P) = T(Lq(vi)∩Mq(vi)), can be constructed by incrementally

maintaining the intersectionK of some sets from{Lq(vi), Mq(vi) : viis reflex}. In each step, we

compute the intersection ofK withLq(vi)orMq(vi). Recall that all these sets areP-convex (the

intersection ofP-convex sets isP-convex). A chord ofP intersects the boundary of a P-convex polygon K in at most two points, and the intersection points can be computed in O(logn)time using a ray-shooting query inP (shoot a ray along the chord, and find the intersection points with binary search along the boundary ofK). ThusK can be updated inO(logn)time. Altogether, we can computeKq(P)inO(nlogn)time.

3.2

Finding a Witness

In this section, we present an algorithm that, given a simple polygonP withnvertices in general position, finds a witnesss∈int(P)such thatint(P)⊆Vb(n−2)/4c(s).

(15)

Lets0 be an arbitrary point inint(Kbn/2c−1(P)). Such a point exists by Lemma 9, and can be computed inO(nlogn)time by Lemma 10. We can compute the visibility polygonV0(s0)and its pockets inO(n)time [19]. The definition ofKbn/2c−1(P)ensures thats0satisfies conditionC1 of Lemma 1. If it also satisfiesC2, thens=s0 is a desired witness.

Assume that s0 does not satisfy C2, that is, V0(s0)has two dependent pockets of total size at leastbn/2c, say a left pocketUab and (by Proposition 1) a right pocketUa0b0. We may assume that

Uab is at least as large asUa0b0, by applying a reflection if necessary, and so the size of Uab is at leastbn/4c. Refer to Fig. 9(a). Letc ∂P be a point sufficiently close tobsuch that segmentbc

is disjoint from all lines spanned by the vertices ofP, segments0cis disjoint from the intersection of any two lines spanned by the vertices of P, and s0c ⊂ P. In Lemma 11 (below), we find a point on segments0cthat is a witness, or double violator, or improves a parameter (spread) that we introduce now.

For a pair of dependent pockets, a left pocketUaband (by Proposition 1) a right pocketUa0b0, let spread(a, a0)be the part of∂P clockwise fromatoa0 (inclusive), and let thesizeofspread(a, a0)

be the number of vertices ofP alongspread(a, a0). Note that|spread(a, a0)|is at least the sum of the sizes of the two dependent pockets, as all vertices incident to the two pockets are counted. For a pair of pockets of total size at leastbn/2c, we havebn/2c ≤ |spread(a, a0)| ≤n.

We introduce some terminology to trace effects of moving a pointscontinuously in the interior ofP. The visibility polygons of two points arecombinatorially equivalent if there is a bijection between their pockets such that corresponding pockets are incident to the same sets of vertices of

P. The combinatorial changes incurred by a moving points have been thoroughly analysed in [4, 9, 14]. The set of points s ∈ P that induces combinatorially equivalent visibility polygons

V0(s)forms acellin thevisibility decompositionV D(P)of polygonP. It is known that each cell is convex and there are O(n3) cells, but a line segment in P intersects only O(n) cells [9, 13]. A combinatorial change inV0(s)occurs ifscrosses a critical linespanned by two vertices ofP, and the circular order of the rays from s to the two vertices is reversed. The possible changes are: (1) a pocket of size 2 appears or disappears; (2) the size of a pocket increases or decreases by one; (3) two pockets merge into one pocket or a pocket splits into two pockets. Importantly, the combinatorics of V0(s) does not contain enough information to decide whether two pockets are dependent or independent. Proposition 4 (below) will be crucial for checking whether two dependent pockets become independent when a pointsmoves along a straight-line trajectory from

s=s1 tos=s2.

Proposition 4. Lets1s2be a line segment inint(P). Then

(i) Every left (resp., right) pocket of V0(s2) induced by a vertex on the left (right) of −−→s1s2 is

contained in a left (right) pocket ofV0(s1).

(ii) LetUleft andUright be independent pockets ofV0(s1). Then every two pockets ofV0(s2)

con-tained inUleft andUright, respectively, are also independent.

Proof. (i) LetUabbe a left pocket ofV0(s2)induced by vertexaon the left of−−→s1s2. Ifais directly visible froms(i.e.,s1a⊂P), thenUabis clearly contained in the left pocket ofV0(s1)induced bya.

(16)

s

0

b

a

0

U

ab

(a)

(b)

a

(c)

(d)

U

a0b0

s

1

s

2

b

0

c

U

right

U

left

s

0

b

a

0

U

ab

a

U

a0b0

s

1

s

2

b

0

c

b

a

0

a

s

1

s

2

b

0

c

s

0

a

0

b

a

0

a

s

1

s

2

b

0

c

a

0

U

right

U

left

s

0

U

left0

P

P

P

P

Figure 9: (a) A polygon withn = 21vertices wheres0 violatesC2 a pair of dependent pockets

Uab and Ua0b0. (b) Point s2 ∈ s0csatisfies both C1 andC2. (c) A polygon with n = 21vertices wheres0violatesC2with a pair of pocketsUabandUa0b0 of|spread(a, a0)|= 19. (d) Points2also violatesC2with a pair of pockets of|spread(a00, a0)|= 13.

(17)

and so it contained in the triangle∆(s1, s2, a). The first internal vertex of this geodesic induces a left pocket ofV0(s1)that containsUab.

(ii) SinceUleft andUright are independent, no chord ofP crosses the window of both pockets. Therefore no chord ofP can cross the windows of two pockets lying inUleftandUright, respectively.

Lemma 11. Lets0 be an arbitrary point inint(Kbn/2c−1(P))andc∈∂P as defined above. Then

there is a pointss0csuch that one of the following statements holds:

• ssatisfies bothC1andC2;

• sis a double violator;

• ssatisfiesC1but violatesC2due to two pockets of whose spread is contained inspread(a, a0)

and has size at most|spread(a, a0)| − bn/4c.

Proof. We move a points ∈ s0cfroms0 tocand trace the combinatorial changes of the pockets ofV0(s), and their dependencies. Initially, whens = s0, all pockets have size at mostbn/2c −1; and there are two dependent pockets, a left pocketUab on the left of −→s0cand, by Proposition 1, a right pocketUa0b0 on the right of−→s0c, of total size at leastbn/2c. Whens =c, every left pocket of

V0(s)on the left of−→s0cis independent of any right pocket on the right of−→s0c.

Consequently, whensmoves froms0toc, there is a critical change froms=s1 tos=s2such thatV0(s1)still has two dependent pockets of size at leastbn/2cwhere the left (resp., right) pocket is on the left (right) of−→s0c; butV0(s2)has no two such pockets. (See Fig. 9 for examples.) LetUleft and Uright denote the two violator pockets of V0(s1). The critical point is either a combinatorial change (i.e., the size of one of these pockets drops), or the two pockets become independent. By Proposition 4, we have Uleft ⊆ Uab and Uright ⊂ P \Uab, and the spread of Uleft and Uright is contained inspread(a, a0). We show that one of the statements in Lemma 11 holds fors

1 ors2. Ifs2 satisfies bothC1 andC2, then our proof is complete (Fig. 9(a-b)). Ifs2 violatesC1, i.e.,

V0(s2) has a pocket of size ≥ bn/2c, then V0(s1) also has a combinatorially equivalent pocket (which is independent of Uleft and Uright), and so s1 is a double violator. Finally, if s2 violates C2, i.e., V0(s2)has two dependent pockets of total size bn/2c, then the left pocket of this pair is not contained inUab by the choice of pointc∈ ∂P. We have two subcases to consider: (i) If the

right pocket of this new pair is contained inUright (or it isUright), then we know that their spread is contained inspread(b, a)which has size at most|spread(a, a0)| − bn/4c(Fig. 9(c-d)). (ii) If the right pocket of the new pair is disjoint fromUright, thenV0(s1)also has a combinatorially equivalent pair of pockets, which is different fromUleftandUright, and sos1 is a double violator.

Lemma 12. A points∈s0cdescribed in Lemma 11 can be found inO(nlogn)time.

Proof. It is enough to show that the critical positions, s1 and s2, in the proof of Lemma 11 can be computed in O(nlogn) time. We use the persistent data structure developed by Chen and Daescu [13] for maintaining the combinatorial structure ofV0(s)assmoves along the line segment

s0c. The pockets (and pocket sizes) change only atO(n)points alongs0c, and each update can be computed inO(logn)time.

(18)

However, the data structure in [13] does not track whether two pockets on opposite sides ofs0c are dependent or not. The main technical difficulty is that Ω(n2)dependent pairs might become independent assmoves along s0s (even if we consider only pairs of total size at leastbn/2c), in contrast to onlyO(n)combinatorial changes. We reduce the number of relevant events by focusing on only the “large” pockets (pockets of size at leastbn/4c), and maintaining at most one pair that violatesC2 for each large pocket. (In a dependent pair of size≥ bn/2c, one of the pockets has size≥ bn/4c.)

We augment the persistent data structure in [13] as follows. We maintain the list of all left (resp., right) pockets of V0(s) lying on the left (right) of −→s0c, sorted in counterclockwise order along ∂P. We also maintain the set oflarge pockets of size at leastbn/4c from these two lists. There are at most 4 large pockets for anys s0c. For a large pocketUαβ ofs∈ s0c, we maintain one possible other pocket Uα0β0 of V0(s)such that they together violate C2. If there are several such pockets Uα0β0, we maintain only the one where α0 (the reflex vertex that induces Uα0β0) is farthest fromcalong∂P. Thus, we maintain a setU(s)of at most 4 pairs(Uαβ, Uα0β0). Finally, for each of pair(Uαβ, Uα0β0)∈ U, we maintain the positionss0 =sc∩αα0 where the pair(Uαβ, Uα0β0) becomes independent assuming that neither Uαβ nor Uα0β0 goes through combinatorial changes beforesreachess0. We use [13] together with these supplemental structures, to find critical points s1, s2 ∈s0csuch thatU(s1)6=∅butU(s2) =∅.

We still need to show thatU(s)can be maintained inO(nlogn)time assmoves froms0toc. A pair(Uαβ, Uα0β0)has to be updated ifUαβ orUα0β0 undergoes a combinatorial change, or if they become independent (i.e.,s∈ αα0). Each large pocket undergoesO(n)combinatorial changes by Proposition 4. Note also that there areO(n)reflex vertices along the boundary∂P betweenaand

a0 (these vertices are candidates to becomeα0). No update is necessary whenβ orβ0 changes but Uαβ remains large and the total size of the pair is at least bn/2c. If the size ofUαβ drops below bn/4c, we can permanently eliminate the pair fromU. In all other cases, we search for a new vertex

α0, by testing the reflex vertices that induce pockets from the current α0 towards calong∂P until

we either find a new pocketUα0β0 or determine thatUαβ is not dependent of any other pocket with joint size ≥ bn/2c. We can test dependence betweenUαβ and a candidate for Uα0β0 inO(logn) time (testαα0 P by a ray shooting query). Each update of(U

αβ, Uα0β0)decreases the size of the large pocketUαβor moves the vertexα0closer toc. Therefore, we need to test dependence between

onlyO(n)candidate pairs of pockets. Overall, the updates toU(s)takeO(nlogn)time. We are now ready to prove Theorem 1.

of Theorem 1. Let P be a simple polygon withn ≥ 3vertices. Compute the generalized kernel

Kbn/2c−1(P), and pick an arbitrary points0 ∈int(Kbn/2c−1(P)), which satisfiesC1. Ifs0satisfies C2, too, thenint(P)⊆Vb(n−2)/4c(s0)by Lemma 1. Otherwise, there is a pair of dependent pockets, UabandUa0b0, of total size at leastbn/2candbn/2c ≤spread(a, a0)≤n. Invoke Lemma 11 up to three times to find a pointsint(P)that either satisfies bothC1andC2, or is a double violator. If

ssatisfiesC1 andC2 then Lemma 1 completes the proof. Ifsis a double violator, apply Lemma 7 or Lemma 8 as appropriate to complete the proof. The overall running time of the algorithm is

O(nlogn)from the combination of Lemmas 7, 8, 10, and 12.

(19)

n = 4k+ 2vertices isk =b(n2)/4c. By introducing up to 3 dummy vertices on the boundary of a zig-zag polygon, we obtainn-vertex polygonsPnwithR(Pn) = b(n−2)/4cfor all n ≥ 6.

Finally, every simple polygon withn = 3, 4, or 5 vertices is star-shaped, and so its diffuse reflection radius is0 =b(n2)/4c.

4

Approximate Diffuse Reflection Radius

In this section, we prove Theorem 2 and show how to approximate the diffuse reflection radius

R(P) of a given polygon P up to an additive error of at most 1 in polynomial time (a similar strategy works for approximating the diffuse reflection diameterD(P), as well).

of Theorem 2. Let P be a simple polygon with vertex setV in general position, where |V| = n. We wish to compute an integerk ∈ Nsuch thatk−1≤ R(P) ≤ k+ 1, and a points ∈ int(P)

such that int(P) Vk+1(s)in polynomial time. We prove the claim by analyzing the following algorithm:

ApproxDiffuseRadius(P)

1. For each vertexv ofP, find two pointsv−andv+in the relative interior of the two edges of

P incident tovsuch that no line through a pair of vertices inV \ {v}separates them fromv. LetQ={v−, v+:v V}.

2. Find the minimum integerk0such thatCk =Tq∈QVk(q)∩int(P)is nonempty by binary

search overk ∈ {0, . . . ,b(n2)/4c}. 3. Returnkand an arbitrary points∈Ck.

We first show thatApproxDiffuseRadius(P)runs in polynomial time inn. We can find a suitable setQ={v−, v+ :v V}inO(n3)time by computing, for eachv V, the intersection points between the O(n2) lines through a pair of vertices in V \ {v} and the two edges of P

incident tov. Then,v− andv+ can be picked as points on the relative interiors of the two edges incident tovbetweenvand the closest intersection point. The combinatorial complexity of a region

Vk(q)is at mostO(n9), but the set of the boundary pointsVk(q)∩∂P consists of onlyO(n4)line

segments [3]. GivenVk−1(q)∩∂P, we can computeVk(q)∩∂P by taking the union of the visibility

regions forO(n4)line segments inO(n5)time [9, 14]. Instead of computing the regionsV

k(q), we

iteratively maintainVk(q)∩∂P for allk = 0, . . . ,b(n−2)/4candq ∈Q, inO(n2·n5) =O(n7)

time.

For each k, we find Ck = Tq∈QVk(q)∩int(P)as follows. First compute the intersection of

the boundary segmentsBk−1 =Tq∈Q(Vk−1(q)∩∂P), which consists of O(n5)line segments, in

O(n5)time. Then computeC

kas the set of points in P visible from any point inBk−1 inO(n11) time [3]. The binary search triesO(logn)values ofk, and so the total running time isO(n11lgn). Next we show that the minimum integer k for which Ck 6= ∅ approximatesR(P). First, we

prove that there is no t int(P) for which int(P) Vk−2(t). By the choice of k, there is no t int(P) for which Q Vk−1(t) or ∂P ⊆ Vk−1(t) (since Q ⊂ ∂P). Then by [7] and

(20)

Letsbe an arbitrary point inCk. By the choice ofk, we haveQ ⊆ Vk(s). We now show that

int(P) Vk+1(s). Lett ∈ int(P)be an arbitrary point in the interior of P. In any triangulation

of P, point t lies in some triangle ∆(v1v2v3), and sot is directly visible from vj− or vj+ for j ∈ {1,2,3}. SinceQVk(s), there is a diffuse reflection path fromsto these boundary points with at

mostkinterior vertices. By appending one new segment to this path, we obtain a diffuse reflection path fromstotwith at mostk+ 1interior vertices.

5

Conclusions

Theorem 1 establishes the upper bound of b(n2)/4c for the diffuse refection radius R(P) of a simple polygon P with n vertices. This bound is the best possible. For a given instance P, we can approximate R(P) up to an additive error of 2 (Theorem 2). However, no polynomial-time algorithm is known for computingR(P)for a given polygonP, or for computing the diffuse reflection center of P. Similarly, we know that the diffuse reflection diameterD(P)of a simple polygon with n vertices is at most b(n− 2)/2c, and this bound is the best possible [7], but no polynomial-time algorithm is known for computingD(P)or a diametric pair of points for a given polygonP.

We believe the general position assumptions aboutP and choice of light sources can be avoided at the cost of more complicated analysis taking caution to properly handle collinear chords.

In the remainder of this section, we show that the diffuse reflection center of a polygon P

may not be connected orP-convex, and that in general there is no containment relation between the geodesic center and the diffuse reflection center. These constructions explain, in part, why it remains elusive to efficiently compute the diffuse reflection center and radius.

(a) (b)

Figure 10: (a) A polygon whose diffuse reflection center is disconnected. (b) A polygon whose diffuse reflection center is not geodesic convex.

Shape of the diffuse reflection center. While the link center is geodesic convex and connected [27],

(21)

polygons with disconnected diffuse reflection centers (Fig. 10(a)), and there are polygons whose diffuse reflection centers are connected but not geodesic convex (Fig. 10(b)).

(a) (b)

(c) (d)

Figure 11: Examples of four inclusion relationships between the diffuse reflection and link cen-ters. The diffuse center, link centers, and their intersection are colored yellow, blue, and green, respectively. The diffuse and link radii for the polygons in clockwise order from the upper left are 2, 2, 4, 4 and 2, 1, 3, 3, respectively.

Furthermore, there is no clear relationship between the two centers; Fig. 11 illustrates that there exists simple polygons with each of the following properties:

(a) the diffuse reflection center is strictly contained in the link center; (b) the diffuse reflection center strictly includes the link center; (c) neither center contains the other but they are not disjoint;

(22)

(d) the diffuse reflection center and the link center are disjoint.

References

[1] Aanjaneya, M., Bishnu, A., Pal, P.S.: Directly visible pairs and illumination by reflections in orthogonal polygons. In: 24th European Workshop on Computational Geometry, pp. 241– 244 (2008)

[2] Ahn, H.K., Barba, L., Bose, P., de Carufel, J.L., Korman, M., Oh, E.: A linear-time algorithm for the geodesic center of a simple polygon (2015). ArXiv:1501.0056

[3] Aronov, B., Davis, A.R., Iacono, J., Yu, A.S.C.: The complexity of diffuse reflections in a simple polygon. In: LATIN 2006: Theoretical Informatics, pp. 93–104. Springer (2006) [4] Aronov, B., Guibas, L.J., Teichmann, M., Zhang, L.: Visibility queries and maintenance in

simple polygons. Discrete & Computational Geometry27(4), 461–483 (2002)

[5] Asano, T., Toussaint, G.T.: Computing the geodesic center of a simple polygon. Technical Report SOCS-85.32, McGill University (1985)

[6] Bae, S.W., Korman, M., Okamoto, Y., Wang, H.: Computing the L1 geodesic diameter and center of a simple polygon in linear time. In: LATIN 2014: Theoretical Informatics, pp. 120–131. Springer (2014)

[7] Barequet, G., Cannon, S.M., Fox-Epstein, E., Hescott, B., Souvaine, D.L., T´oth, C.D., Winslow, A.: Diffuse reflections in simple polygons. Electronic Notes in Discrete Mathe-matics44, 345–350 (2013)

[8] Bishnu, A., Ghosh, S.K., Goswami, P.P., Pal, S.P., Sarvattomananda, S.: An algorithm for computing constrained reflection paths in simple polygon. arXiv preprint arXiv:1304.4320 (2013)

[9] Bose, P., Lubiw, A., Munro, J.I.: Efficient visibility queries in simple polygons. Computa-tional Geometry23(3), 313–335 (2002)

[10] Brahma, S., Pal, S.P., Sarkar, D.: A linear worst-case lower bound on the number of holes inside regions visible due to multiple diffuse reflections. Journal of Geometry81(1-2), 5–14 (2004)

[11] Breen, M.: A Helly-type theorem for simple polygons. Geometriae Dedicata60(3), 283–288 (1996)

[12] Breen, M.: A Helly-type theorem for intersections of compact connected sets in the plane. Geometriae Dedicata71(2), 111–117 (1998)

(23)

[13] Chen, D.Z., Daescu, O.: Maintaining visibility of a polygon with a moving point of view. Information Processing Letters65(5), 269–275 (1998)

[14] Chen, D.Z., Wang, H.: Weak visibility queries of line segments in simple polygons. In: Algorithms and Computation, pp. 609–618. Springer (2012)

[15] Demaine, E.D., Erickson, J., Hurtado, F., Iacono, J., Langerman, S., Meijer, H., Overmars, M., Whitesides, S.: Separating point sets in polygonal environments. International Journal of Computational Geometry & Applications15(04), 403–419 (2005)

[16] Djidjev, H.N., Lingas, A., Sack, J.: AnO(nlogn)algorithm for computing the link center of a simple polygon. Discrete & Computational Geometry8(1), 131–152 (1992)

[17] Ghosh, S.K.: Visibility algorithms in the plane. Cambridge University Press (2007)

[18] Ghosh, S.K., Goswami, P.P., Maheshwari, A., Nandy, S.C., Pal, S.P., Sarvattomananda, S.: Algorithms for computing diffuse reflection paths in polygons. The Visual Computer28(12), 1229–1237 (2012)

[19] Guibas, L., Hershberger, J., Leven, D., Sharir, M., Tarjan, R.E.: Linear-time algorithms for visibility and shortest path problems inside triangulated simple polygons. Algorithmica2 (1-4), 209–233 (1987)

[20] Guibas, L.J., Hershberger, J.: Optimal shortest path queries in a simple polygon. In: Proceed-ings of the third annual symposium on Computational geometry, pp. 50–63. ACM (1987) [21] Hershberger, J., Suri, S.: A pedestrian approach to ray shooting: Shoot a ray, take a walk.

Journal of Algorithms18(3), 403–431 (1995)

[22] Hershberger, J., Suri, S.: Matrix searching with the shortest-path metric. SIAM Journal on Computing26(6), 1612–1634 (1997)

[23] Khan, A., Pal, S.P., Aanjaneya, M., Bishnu, A., Nandy, S.C.: Diffuse reflection diameter and radius for convex-quadrilateralizable polygons. Discrete Applied Mathematics161(10), 1496–1505 (2013)

[24] Klee, V.: Is every polygonal region illuminable from some point? American Mathematical Monthly pp. 180–180 (1969)

[25] Klee, V.: Some unsolved problems in plane geometry. Mathematics Magazine pp. 131–145 (1979)

[26] Lee, D., Preparata, F.P.: An optimal algorithm for finding the kernel of a polygon. Journal of the ACM (JACM)26(3), 415–421 (1979)

[27] Lenhart, W., Pollack, R., Sack, J., Seidel, R., Sharir, M., Suri, S., Toussaint, G., Whitesides, S., Yap, C.: Computing the link center of a simple polygon. Discrete & Computational Geometry3(1), 281–293 (1988)

(24)

[28] Maheshwari, A., Sack, J., Djidjev, H.N.: Link distance problems. In: J. Sack, J. Urrutia (eds.) Handbook of computational geometry, chap. 12. Elsevier (1999)

[29] Moln´ar, J.: ¨Uber den zweidimensionalen topologischen Satz von Helly. Mat. Lapok8, 108– 114 (1957)

[30] Pollack, R., Sharir, M., Rote, G.: Computing the geodesic center of a simple polygon. Dis-crete & Computational Geometry4(1), 611–626 (1989)

[31] Schuierer, S.: Computing the l1-diameter and center of a simple rectilinear polygon. In: Proceedings of the International Conference on Computing and Information (ICCI), pp. 214– 229 (1994)

[32] Suri, S.: A linear time algorithm for minimum link paths inside a simple polygon. Computer Vision, Graphics, and Image Processing35(1), 99–110 (1986)

[33] Suri, S.: On some link distance problems in a simple polygon. IEEE Transactions on Robotics and Automation6(1), 108–113 (1990)

[34] Tokarsky, G.W.: Polygonal rooms not illuminable from every point. American Mathematical Monthly pp. 867–879 (1995)

[35] Toussaint, G.T.: An optimal algorithm for computing the relative convex hull of a set of points in a polygon. Signal Processing III: Theories and Applications (EURASIP-86) pp. 853–856 (1986)

Figure

Figure 2: (a) A polygon P where V 0 (s) has three pockets U 1 , U 2 and U 3 , of size 4, 4, and 5, respectively
Figure 3: (a) A polygon P where R 0 = V 0 (s) has four unsaturated pockets: U 1 , . .
Figure 4: (a) A polygon P from Fig. 2 with saturated pocket U ab . (b) Polygon P 0 for the pocket U 1 .
Figure 5: A polygon P with n = 13 vertices where V 0 (s) has four pockets: two pairs of dependent pockets, the sum of sizes of each pair is bn/2c = 6
+5

References

Related documents

Adoption of E-Commerce and Electronic Supply Chain Management (E-SCM) by small and medium enterprises (SMEs) has developed a tremendous performance in business process.. SMEs in

The proposed system utilizes the NFC cards as an identification card for voters. Each voter ID card contains a unique ID number and information on whether they have already cast

* have emulsions of water and oil * Lotion has more water than oil * Cream has more oil than water * contains emulsifying agents * Vome cream have additional ingredient like !!...

Inference Engine Agenda Knowledge Base (rules) Explanation Facility User Interface Knowledge Acquisition Facility Working Memory (facts) XPS Structure XPS Structure 21..

transforms the real \ axis into the boundary of a closed polygon in the Z plane in such a way that the vertices of the polygon correspond to the points a, and the interior angles

(2004) suggest that removal of crop residues from the field must balance against impacting the environment (soil erosion), maintaining soil matter levels and preserving or

C2 shows two adjacent vertices, P and Q, of a regular polygon inscribed in a circle with unit radius and centre O.. M is the midpoint

A NAT box that sits between Scott’s graduate students and the internet assigns each user an internal IP address (there are special IP address blocks designated for