1: \documentclass[11pt]{article}
2:
3: \usepackage{epsfig}
4:
5: \usepackage{latexsym}
6: \usepackage{amsfonts}
7: \usepackage{amsthm}
8: \usepackage{amsmath}
9: \usepackage{fullpage}
10:
11: \newcommand{\vecc}[1]{{\overrightarrow{#1}}}
12: \newcommand{\reals}{\mathbb{R}}
13: \let\bd\partial
14: \def\A{\mathcal{A}}
15: \def\T{\mathcal{T}}
16: \def\L{\mathcal{L}}
17: \def\EE{\mathbf{E}}
18: \let\eps\varepsilon
19: \def\B{{\cal B}}
20: \def\C{{\cal C}}
21: \def\D{{\cal D}}
22: \def\R{{\cal R}}
23:
24:
25: \newcommand{\old}[1]{{}}
26: \newcommand{\floor}[1]{{\lfloor #1\rfloor}}
27: \newcommand{\ceil}[1]{{\lceil #1\rceil}}
28:
29: \newcommand{\estie}[1]{\textbf{Estie:} #1}
30: \newcommand{\sandor}[1]{\textbf{Sandor:} #1}
31: \newcommand{\ferran}[1]{\textbf{Ferran:} #1}
32: \newcommand{\marc}[1]{\textbf{Marc:} #1}
33: \newcommand{\joe}[1]{\textbf{Joe:} #1}
34: \newcommand{\saurabh}[1]{\textbf{Saurabh:} #1}
35: \newcommand{\vera}[1]{\textbf{Vera:} #1}
36:
37: \newtheorem{theorem}{Theorem}[section]
38: \newtheorem{lemma}[theorem]{Lemma}
39: \newtheorem{conjecture}[theorem]{Conjecture}
40: \newtheorem{corollary}[theorem]{Corollary}
41: \newtheorem{claim}[theorem]{Claim}
42: \newtheorem{observation}[theorem]{Observation}
43: \newtheorem{proposition}[theorem]{Proposition}
44: \newtheorem{fact}[theorem]{Fact}
45: \newtheorem*{claima}{Claim A}
46: \newtheorem*{claimb}{Claim B}
47: \newtheorem*{claimc}{Claim C}
48: \newtheorem*{propA}{Property A}
49: \newtheorem*{propB}{Property B}
50:
51: \theoremstyle{definition}
52: \newtheorem{definition}[theorem]{Definition}
53: \newtheorem{remark}[theorem]{Remark}
54:
55: \begin{document}
56:
57: \title{On the Reflexivity of Point Sets}
58: \author{
59: Esther M. Arkin%
60: \thanks{Department of Applied Mathematics and Statistics,
61: Stony Brook University, Stony Brook, NY 11794-3600,
62: email: \{\texttt{estie}, \texttt{jsbm}\}\texttt{@ams.sunysb.edu}.}
63: \and
64: S\'andor P. Fekete%
65: \thanks{
66: Department of Mathematical Optimization,
67: TU Braunschweig, Pockelsstr.~14,
68: D-38106 Braunschweig, Germany; \texttt{sandor.fekete@tu-bs.de}.}
69: \and
70: Ferran Hurtado
71: \thanks{Departament de Matem\`atica Aplicada II,
72: Universitat Polit\`ecnica de Catalunya,
73: Pau Gargallo, 5, E-08028, Barcelona, Spain,
74: email: \{\texttt{hurtado}, \texttt{noy}, \texttt{vera}\}\texttt{@ma2.upc.es}.}
75: \and
76: Joseph S. B. Mitchell\footnotemark[1]
77: \and
78: Marc Noy\footnotemark[3]
79: \and
80: Vera Sacrist\'an\footnotemark[3]
81: \and
82: Saurabh Sethia
83: \thanks{
84: Department of Computer Science,
85: Oregon State University, Corvallis, OR 97331, USA. \texttt{saurabh@cs.orst.edu}.
86: This work was conducted while S.~Sethia was at the Dept. of Computer Science,
87: Stony Brook University.}
88: }
89:
90: \date{}
91:
92: \maketitle
93:
94: \begin{abstract}
95: We introduce a new measure for planar point sets $S$ that captures a
96: combinatorial distance that $S$ is from being a convex set: The {\em
97: reflexivity} $\rho(S)$ of $S$ is given by the smallest number of
98: reflex vertices in a simple polygonalization of $S$. We prove
99: various combinatorial bounds and provide efficient algorithms to
100: compute reflexivity, both exactly (in special cases) and
101: approximately (in general). Our study considers also some closely
102: related quantities, such as the {\em convex cover} number
103: $\kappa_c(S)$ of a planar point set, which is the smallest number of
104: convex chains that cover $S$, and the {\em convex partition} number
105: $\kappa_p(S)$, which is given by the smallest number of convex
106: chains with pairwise-disjoint convex hulls that cover $S$. We have
107: proved that it is NP-complete to determine the convex cover or the
108: convex partition number and have given logarithmic-approximation
109: algorithms for determining each.
110: \end{abstract}
111:
112:
113: \section{Introduction}
114:
115: In this paper, we study a fundamental combinatorial property of a
116: discrete set, $S$, of points in the plane: What is the minimum number,
117: $\rho(S)$, of {\em reflex vertices} among all of the {\em simple
118: polygonalizations} of $S$? A {\em polygonalization} of $S$ is a
119: closed tour on $S$ whose straight-line embedding in the plane defines
120: a connected cycle without crossings, i.e., a simple polygon. A vertex
121: of a simple polygon is {\em reflex} if it has interior angle greater
122: than $\pi$. We refer to $\rho(S)$ as the {\em reflexivity} of $S$.
123: We let $\rho(n)$ denote the maximum possible value of $\rho(S)$
124: for a set $S$ of $n$ points.
125:
126: In general, there are many different polygonalizations of a point set
127: $S$. There is always at least one: simply connect the points in
128: angular order about some point interior to the convex hull of $S$
129: (e.g., the center of mass suffices). A set $S$ has precisely one
130: polygonalization if and only if it is in convex position; in general,
131: though, a point set has numerous polygonalizations. Studying the set
132: of polygonalizations (e.g., counting them, enumerating them, or
133: generating a random element) is a challenging and active area of
134: investigation in computational geometry~\cite{aak-eotsp-01,ak-psotd-01,ah-hgrp-96,e-webpage,gnt-lbncf-95,zssm-grpgv-96}.
135:
136:
137: The reflexivity $\rho(S)$ quantifies, in a combinatorial sense, the
138: degree to which the set of points $S$ is in convex position. See
139: Figure~\ref{fig:example} for an example. We remark that there are
140: other notions of combinatorial ``distance'' from
141: convexity of a point set $S$, e.g., the minimum number of points to
142: delete from $S$ in order that the remaining point set is in convex
143: position, the number of convex layers, or the minimum number of
144: changes in the orientation of triples of points of $S$ in order to
145: transform $S$ into convex position.
146:
147: \begin{figure}
148: \centerline{\psfig{file=example.eps,height=2.0in}}
149: \caption{Two polygonalizations of a point set, one (left) using 7 reflex vertices and one (right) using only 3 reflex vertices.}
150: \label{fig:example}
151: \end{figure}
152:
153: We have conducted a formal study of reflexivity, both in terms of its
154: combinatorial properties and in terms of an algorithmic analysis of
155: the complexity of computing it, exactly or approximately. Some of our
156: attention is focussed on the closely related {\em convex cover number}
157: of $S$, which gives the minimum number of convex chains (subsets of
158: $S$ in convex position) that are required to cover all points of~$S$.
159: For this question, we distinguish between two cases: The {\em convex cover
160: number}, $\kappa_c(S)$, is the smallest number of convex chains required
161: to cover $S$; the {\em convex partition number},
162: $\kappa_p(S)$, is the smallest number of convex chains
163: with pairwise-disjoint convex hulls required to cover $S$.
164: Note that nested chains are feasible for a convex cover
165: but not for a convex partition.
166:
167: \paragraph{Motivation.}
168: In addition to the fundamental nature of the questions and problems we
169: address, we are also motivated to study reflexivity for several
170: other reasons:
171:
172: (1) An application motivating our original investigation is that of
173: meshes of low stabbing number and their use in performing ray shooting
174: efficiently. If a point set $S$ has low reflexivity or a low convex
175: partition number, then it has a triangulation of low stabbing number,
176: which may be much lower than the general $O(\sqrt{n})$ upper bound
177: guaranteed to exist (\cite{a-rsoas-92,hs-parss-95,w-ggssn-93}).
178: For example, if the reflexivity is $O(1)$, then $S$ has a triangulation
179: with stabbing number $O(\log n)$.
180:
181: (2) Classifying point sets by their reflexivity may give us some
182: structure for dealing with the famously difficult question of counting and
183: exploring the set of all polygonalizations of $S$. See
184: \cite{gnt-lbncf-95,zssm-grpgv-96} for some references to this problem.
185:
186: (3) There are several applications in computational geometry in which
187: the number of reflex vertices of a polygon can play an important role
188: in the complexity of algorithms.
189: If one or more polygons are {\em given} to us, there are many problems
190: for which more efficient algorithms can be written with complexity in
191: terms of ``$r$'' (the number of reflex vertices), instead of ``$n$''
192: (the total number of vertices), taking advantage of the possibility
193: that we may have $r\ll n$ for some practical instances
194: (see, e.g., \cite{hm-ftprs-85,hn-tvgrv-96}).
195: The number of reflex vertices also plays an important role in convex
196: decomposition problems for polygons; see Keil~\cite{k-pd-00} for a recent
197: survey, and see Agarwal, Flato, and Halperin~\cite{afg-pdecm-02} for
198: applications of convex decompositions to computing Minkowski sums of
199: polygons.
200:
201: (4) Reflexivity is intimately related to the issue
202: of convex cover numbers, which
203: has roots in the classical work of Erd\H{o}s and
204: Szekeres~\cite{es-cpg-35,es-sepeg-60}, and has been studied
205: more recently by Urabe~et~al.~\cite{HRU,hu-ndcqp-01,u-opcp-96,u-ppscp-97}.
206:
207: (5) Our problems are related to some problems in curve (surface)
208: reconstruction, where the goal is to obtain a ``good''
209: polygonalization of a set of sample points
210: (see, e.g.,~\cite{abe-cbscc-98,dk-spacr-99,dmr-crcdgr-99}).
211:
212: \paragraph{Related Work.}
213: The study of convex chains in finite planar point sets is the topic of
214: classical papers by Erd\H{o}s and
215: Szekeres~\cite{es-cpg-35,es-sepeg-60}, who showed that any point set
216: of size $n$ has a convex subset of size $t=\Omega(\log n)$. This is
217: closely related to the convex cover number $\kappa_c$, since it
218: implies an asymptotically tight bound on $\kappa_c(n)$, the worst-case
219: value for sets of size $n$. There are still a number of open problems
220: related to the exact relationship between $t$ and $n$; see, for
221: example, \cite{dcg19} for recent developments.
222:
223: Other issues have been considered, such as the existence and
224: computation (\cite{deo-secp-90}) of large ``empty'' convex subsets
225: (i.e., with no points of $S$ interior to their hull); this is related
226: to the convex partition number, $\kappa_p(S)$. It was shown by
227: Horton~\cite{h-snec7g-83} that there are sets with no empty convex
228: chain larger than 6; this implies that $\kappa_p(n)\geq n/6$.
229:
230: Tighter worst-case bounds on $\kappa_p(n)$ were given by
231: Urabe~\cite{u-opcp-96,u-ppscp-97}, who shows that $\lceil (n-1)/4
232: \rceil \leq \kappa_p(n) \leq \lceil 2n/7\rceil$ and that
233: $\kappa_c(n)=\Theta(n/\log n)$ (with the upper and lower bounds having
234: a gap of roughly a factor of 2). (Urabe~\cite{u-ppsdc-99} also studies the
235: convex partitioning problem in $\Re^3$, where, in particular, the
236: upper bound on $\kappa_p(n)$ is shown to be $\lceil 2n/9\rceil$.)
237: Most recently, Hosono and Urabe~\cite{hu-ndcqp-01} have obtained
238: improved bounds on the size of a partition of a set of points into
239: disjoint convex quadrilaterals, which has the consequence of improving
240: the upper bound on $\kappa_p(n)$: $\kappa_p(n)\leq \lceil 5n/18\rceil$
241: and $\kappa_p(n)\leq (3n+1)/11$ for $n=11\cdot 2^{k-1}-4$ ($k\geq 1$).
242: The remaining gaps in the constants between upper and lower bounds for
243: $\kappa_c(n)$ and $\kappa_p(n)$ (as well as the gap that our bounds
244: exhibit for reflexivity in terms of $n$) all point to the apparently
245: common difficulty of these combinatorial problems on convexity.
246:
247: For a given set of points, we are interested in polygonalizations of the
248: points that are ``as convex as possible''. This has been studied
249: in the context of TSP (traveling salesperson problem) tours of a
250: point set $S$, where convexity of $S$ implies (trivially) the
251: optimality of a convex tour. Convexity of a tour can be characterized
252: by two conditions. If we drop the global condition (i.e., no crossing
253: edges), but keep the local condition (i.e., no reflex vertices), we
254: get ``pseudo-convex'' tours. In \cite{fw-artp-97} it was shown that
255: any set with $|S|\geq 5$ has such a pseudo-convex tour. It is natural
256: to require the global condition of simplicity instead, and minimize
257: the number of local violations -- i.e., the number of reflex vertices.
258: This kind of problem is similar to that of minimizing the total amount
259: of turning in a tour, as studied by
260: Aggarwal~et~al.~\cite{ackms-amtsp-97}.
261:
262: The number of polygonalizations on $n$ points is, in general,
263: exponential in~$n$; Garc{\'\i}a et al.~\cite{gnt-lbncf-95} prove a
264: lower bound of $\Omega(4.64^n)$.
265:
266: Another related problem is studied by Hosono~et~al.~\cite{HRU}:
267: Compute a polygonalization $P$ of a point set $S$ such that the
268: interior of $P$ can be decomposed into a minimum number ($f(S)$) of
269: empty convex polygons. They prove that $\lfloor (n-1)/4\rfloor \leq
270: f(n) \leq \lfloor (3n-2)/5\rfloor,$ where $f(n)$ is the maximum
271: possible value of $f(S)$ for sets $S$ of $n$ points. The authors
272: conjecture that $f(n)$ grows like $n/2$. For reflexivity $\rho(n)$,
273: we show that $\floor{n/4}\leq \rho(n)\leq \ceil{n/2}$ and conjecture
274: that $\rho(n)$ grows like $n/4$, which, if true, would imply that
275: $f(n)$ grows like $n/2$.
276:
277: We mention one final related problem. A {\em convex decomposition} of
278: a point set $S$ is a convex planar polygonal subdivision of the convex
279: hull of $S$ whose vertices are $S$. Let $g(S)$ denote the minimum
280: number of faces in a convex decomposition of $S$, and let $g(n)$
281: denote the maximum value of $g(S)$ over all $n$-point sets $S$. It has
282: been conjectured (\cite{RU}) that $g(n)=n+c$ for some constant $c$,
283: and it is known that $g(n)\le 3n/2$ (\cite{RU}) and that $n+2\le
284: g(n)$~(\cite{AK}).
285:
286: \paragraph{Summary of Main Results.}
287: We have both combinatorial and algorithmic results on
288: reflexivity. Our combinatorial results include
289: %
290: \begin{itemize}
291: \item Tight bounds on the worst-case value of $\rho(S)$ in terms of
292: $n_I$, the number of points of $S$ interior to the convex hull of
293: $S$; in particular, we show that $\rho(S)\leq \ceil{n_I/2}$ and that
294: this upper bound can be achieved by a class of examples.
295: \item Upper and lower bounds on $\rho(S)$ in terms of $n=|S|$; in
296: particular, we show that $\floor{n/4}\leq\rho(n)\leq \ceil{n/2}$.
297: In the case in which $S$ has two layers, we show that $\rho(S)\leq
298: \ceil{n/4}$, and this bound is tight.
299: \item Upper and lower bounds on ``Steiner reflexivity'', which is
300: defined with respect to the class of polygonalizations that allow
301: Steiner vertices (not from the input set $S$).
302:
303: \end{itemize}
304: %
305: Our algorithmic results include
306: %
307: \begin{itemize}
308: \item We prove that it is NP-complete to compute the convex cover
309: number ($\kappa_c(S)$) or the convex partition number
310: ($\kappa_p(S)$), for a given point set~$S$.
311: \item
312: We give polynomial-time approximation algorithms,
313: having approximation factor $O(\log n)$, for the problems
314: of computing convex cover number, convex partition number, or
315: Steiner reflexivity of $S$.
316: \item
317: We give efficient exact algorithms to test if $\rho(S)=1$ or $\rho(S)=2$.
318: \end{itemize}
319: %
320:
321: In Section~\ref{sec:inflection} we study a closely related problem --
322: that of determining the ``inflectionality'' of $S$, defined to be the
323: minimum number of inflection edges (joining a convex to a reflex
324: vertex) in any polygonalization of $S$. We give an $O(n\log n)$ time
325: algorithm to determine an inflectionality-minimizing polygonalization,
326: which we show will never need more than 2 inflection edges.
327:
328:
329: \section{Preliminaries}
330:
331: Throughout this paper, $S$ will be a set of $n$ points in the
332: plane $\Re^2$. A polygonalization, $P$, of $S$ is a simple polygon
333: whose vertex set is $S$.
334: Let ${\cal P}$ be the set of all polygonalizations of $S$.
335: Note that ${\cal P}$ is not empty, since any point set $S$ having
336: $n\geq 3$ points has at least one polygonalization (e.g., the
337: star-shaped polygonalization obtained by sorting points of $S$
338: angularly about a point interior to the convex hull of~$S$).
339:
340: Each vertex of a simple polygon $P$ is either {\em reflex} or {\em
341: convex}, according to whether the interior angle at the vertex is
342: greater than $\pi$ or less than or equal to $\pi$, respectively. We
343: let $r(P)$ (resp., $c(P)$) denote the number of reflex (resp., convex)
344: vertices of $P$. We define the {\em reflexivity} of a planar point
345: set $S$ to be $\rho (S) = \min_{P \in {\cal P}} r(P)$. Similarly, the
346: {\em convexivity} of a planar point set $S$ is defined to be
347: $\chi(S)=\max_{P\in{\cal P}} c(P)$. Note that $\chi(S)=n-\rho(S)$.
348: We let $\rho(n)=\max_{|S|=n} \rho(S)$.
349:
350: We let $\textrm{CH}(S)$ denote the {\em convex hull} of $S$. The point set $S$
351: is partitioned into (convex) {\em layers}, $S_1,S_2,\ldots$, where the first
352: layer is given by the set $S_1$ of points of $S$ on the boundary of
353: $\textrm{CH}(S)$, and the $i$th layer, $S_i$ ($i\geq 2$) is given by the set of
354: points of $S$ on the boundary of $\textrm{CH}(S\setminus (S_1\cup\cdots\cup
355: S_{i-1}))$. We say that $S$ has {\em $k$ layers} or {\em onion depth
356: $k$} if $S_k\neq\emptyset$, while $S_{k+1}=\emptyset$. We say that
357: $S$ is in {\em convex position} (or forms a {\em convex chain}) if it
358: has one layer (i.e., $S=S_1$).
359:
360: A {\em Steiner point} is a point not in the set $S$ that may be added
361: to $S$ in order to improve some structure of $S$. We define the {\em
362: Steiner reflexivity} $\rho'(S)$ to be the minimum number of reflex
363: vertices of any simple polygon with vertex set $V\supset S$.
364: We let
365: $\rho'(n)=\max_{|S|=n} \rho'(S)$.
366: %
367: The {\em
368: Steiner convexivity}, $\chi'(S)$, is defined similarly.
369: %
370: A {\em convex cover} of $S$ is a set of subsets of $S$ whose union
371: covers $S$, such that each subset is a convex chain (a set in convex
372: position). A {\em convex partition} of $S$ is a partition of $S$ into
373: subsets each of which is in convex position, such that the convex
374: hulls of the subsets are pairwise disjoint. We define the {\em convex
375: cover number}, $\kappa_c(S)$,
376: to be the minimum number of subsets in a convex cover of $S$.
377: We similarly define the
378: {\em convex partition number}, $\kappa_p(S)$.
379: We denote by $\kappa_c(n)$ and $\kappa_p(n)$ the
380: worst-case values for sets of size~$n$.
381:
382: Finally, we state a basic property of polygonalizations of point sets.
383:
384: \begin{lemma} \label{lem:CH-order}
385: In any polygonalization of $S$,
386: the points of $S$ that are vertices of the convex hull of $S$
387: are convex vertices of the polygonalization,
388: and they occur in the polygonalization in the same order
389: in which they occur along the convex hull.
390: \end{lemma}
391:
392: \begin{proof}
393: Any polygonalization $P$ of $S$ must lie within
394: the convex hull of $S$, since edges of the polygonalization are
395: convex combinations of points of $S$. Thus, if $p\in S$ is a vertex
396: of $\textrm{CH}(S)$, then the local neighborhood of $P$ at $p$ lies within a
397: convex cone, so $p$ must be a convex vertex of~$P$.
398:
399: Consider a clockwise traversal of $P$ and let $p$ and $q$ be
400: two vertices of $\textrm{CH}(S)$ occurring consecutively along $P$. Then
401: $p$ and $q$ must also appear consecutively along a clockwise traversal of
402: the boundary of $\textrm{CH}(S)$, since the subchain of $P$ linking $p$ to $q$
403: partitions $\textrm{CH}(S)$ into a region to its left (which is outside the
404: polygon $P$) and a region to its right (which must contain all points of
405: $S$ not in the subchain).
406: \end{proof}
407:
408: \section{Combinatorial Bounds}
409:
410: In this section we establish several combinatorial results on
411: reflexivity and convex cover numbers.
412:
413: \subsection{Reflexivity}
414:
415: One of our main combinatorial results establishes an upper bound on
416: the reflexivity of $S$ that is worst-case tight in terms of the number
417: $n_I$ of points {\em interior} to the convex hull, $\textrm{CH}(S)$,
418: of $S$. Since, by Lemma~\ref{lem:CH-order}, the points of $S$ that
419: are vertices of $\textrm{CH}(S)$ are required to be convex vertices in
420: any (non-Steiner) polygonalization of $S$, the bound in terms of $n_I$
421: seems to be quite natural.
422:
423: \begin{theorem}
424: \label{thm:reflex-upper-bnd}
425: Let $S$ be a set of $n$ points in the plane, $n_I$ of which are
426: interior to the convex hull $\textrm{CH}(S)$. Then $\rho(S)\leq \ceil{n_I/2}$.
427: % and this bound is tight. (next thm)
428: \end{theorem}
429:
430: \begin{figure}
431: \centerline{\psfig{file=reflex-upper-bnd-new.eps,height=1.5in}}
432: \caption{Computing a polygonalization with at most $\ceil{n_I/2}$ reflex vertices.}
433: \label{fig:reflex-upper-bnd}
434: \end{figure}
435:
436: \begin{proof} We describe a polygonalization in which at most half of
437: the interior points are reflex. We begin with the polygonalization
438: of the convex hull vertices that is given by the convex polygon
439: bounding the hull. We then iteratively incorporate interior
440: points of $S$ into the polygonalization. Fix a point $p_0$ that
441: lies on the convex hull of $S$. At a generic step of the algorithm,
442: the following invariants hold: (1) our polygonalization consists of
443: a simple polygon, $P$, whose vertices form a subset of $S$; and (2)
444: all points $S'\subset S$ that are not vertices of $P$ lie
445: interior to $P$; in fact, the points $S'$ all lie within the
446: subpolygon, $Q$, to the left of the diagonal $p_0p_i$, where $p_i$
447: is a vertex of $P$ such that the subchain of $\partial P$ from $p_i$
448: to $p_0$ (counter-clockwise) together with the diagonal $p_0p_i$
449: forms a convex polygon ($Q$). If $S'$ is empty, then $P$ is a
450: polygonalization of $S$ and we are done; thus, assume that $S'\neq
451: \emptyset$. Define $p_{i+1}$ to be the first point of $S'$ that is
452: encountered when sweeping the ray $\vecc{p_0p_i}$ counter-clockwise
453: about its endpoint $p_0$. Then we sweep the subray with endpoint
454: $p_{i+1}$ further counter-clockwise, about $p_{i+1}$, until we
455: encounter another point, $q$, of $S'$. (If $|S'|=1$, we can readily
456: incorporate $p_{i+1}$ into the polygonalization, increasing the
457: number of reflex vertices by one.) Now the ray $\vecc{p_{i+1}q}$
458: intersects the boundary of $P$ at some point $c\in ab$ on the
459: boundary of~$Q$.
460:
461: As a next step, we modify $P$ to include interior points $p_{i+1}$ and $q$ (and
462: possibly others as well) by replacing the edge $ab$ with the chain
463: $(a,p_{i+1}$, $q$, $q_1,\ldots$, $q_k,b)$, where the points $q_i$ are interior
464: points that occur along the chain we obtain by ``pulling taut'' the
465: chain $(q,c,b)$. In this ``gift wrapping''
466: fashion, we continue to rotate rays counter-clockwise about each interior point
467: $q_i$ that is hit until we encounter $b$. This results in
468: incorporating at least two new interior points (of $S'$) into the
469: polygonalization $P$, while creating only one new reflex vertex
470: (at~$p_{i+1}$). It is easy to check that the invariants (1) and (2)
471: hold after this step.
472: \end{proof}
473:
474: In fact, the upper bound of Theorem~\ref{thm:reflex-upper-bnd},
475: $\rho(S)\leq \ceil{n_I/2}$, is {\em tight} in the worst case, as we
476: now argue based on the special configuration of points, $S=S_0(n)$, in
477: Figure~\ref{fig:lower-bnd}. The set $S_0(n)$ is defined for any
478: integer $n\geq 6$, as follows: $\ceil{n/2}$ points are placed in
479: convex position (e.g., forming a regular $\ceil{n/2}$-gon), forming
480: the convex hull $\textrm{CH}(S)$, and the remaining $n_I=\floor{n/2}$
481: interior points are also placed in convex position, each one placed
482: ``just inside'' $\textrm{CH}(S)$, near the midpoint of an edge of
483: $\textrm{CH}(S)$. The resulting configuration $S_0(n)$ has two layers
484: in its convex hull.
485:
486:
487: \begin{figure}
488: \centerline{\psfig{file=lower-bnd.eps,width=2.0in}}
489: \caption{Left: The configuration of points, $S_0(n)$, which has reflexivity
490: $\rho(S_0(n))\geq \ceil{n_I/2}$. Right: A polygonalization having $\ceil{n_I/2}$ reflex vertices.}
491: \label{fig:lower-bnd}
492: \end{figure}
493:
494: \begin{lemma}
495: \label{lem:lower-bnd}
496: For any $n\geq 6$,
497: $\rho(S_0(n))\geq \ceil{n_I/2} \geq\floor{n/4}$.
498: \end{lemma}
499:
500: \begin{proof}
501: Let $(x_1,x_2,\ldots,x_{\ceil{n/2}})$ denote the points
502: of $S_0(n)$ on the convex hull, in clockwise order,
503: and let $(v_1,v_2,\ldots,v_{\floor{n/2}})$ denote the
504: remaining points of $S_0(n)$, with
505: $v_i$ just inside the convex hull edge $(x_i,x_{i+1})$.
506: We define $x_{\ceil{n/2}+1}=x_1$.
507:
508: Consider any polygonalization, $P$, of $S_0(n)$. {From}
509: Lemma~\ref{lem:CH-order} we know that the points $x_i$ are convex
510: vertices of $P$, occurring in the order
511: $x_1$, $x_2,\ldots$, $x_{\ceil{n/2}}$ around the boundary of $P$. Consider
512: the subchain, $\gamma_i$, of $\partial P$ that goes from $x_i$ to
513: $x_{i+1}$, clockwise around $\partial P$. Let $m_i$ denote the number
514: of points $v_j$, interior to the convex hull of $S_0(n)$, that appear
515: along $\gamma_i$.
516:
517: If $m_i=0$, $\gamma_i=x_ix_{i+1}$. If $m_i=1$, then
518: $\gamma_i=x_iv_ix_{i+1}$ and $v_i$ is a reflex vertex of $P$; to see
519: this, note that
520: $v_i$ lies interior to the triangle determined by $x_i$, $x_{i+1}$,
521: and any $v_j$ with $j\neq i$. If $m_i>1$, then we claim that (a)
522: $v_i$ must be a vertex of the chain $\gamma_i$, (b) $v_i$ is a convex
523: vertex of $P$, and (c) any other point $v_j$, $j\neq i$, that is a
524: vertex of $\gamma_i$ must be a reflex vertex of $P$. This claim
525: follows from the fact that the points $x_i$, $x_{i+1}$, and any
526: nonempty subset of $\{v_j: j\neq i\}$ are in convex position, with the
527: point $v_i$ interior to the convex hull. Refer to
528: Figure~\ref{fig:lower-bnd-proof}, where the subchain $\gamma_i$ is
529: shown dashed.
530:
531: \begin{figure}
532: \centerline{\psfig{file=lower-bound-proof2.eps,width=1.5in}}
533: \caption{Proof of the lower bound:
534: $\rho(S_0(n))\geq \ceil{n_I/2} \geq\floor{n/4}$.}
535: \label{fig:lower-bnd-proof}
536: \end{figure}
537:
538: Thus, the number of reflex vertices of $P$ occurring along $\gamma_i$
539: is in any case at least $\ceil{m_i/2}$, and we have
540: %
541: \begin{eqnarray*}
542: \rho(S_0(n)) &\geq& \sum\ceil{m_i/2}\\
543: &\geq& \left\lceil\sum (m_i/2)\right\rceil=\ceil{n_I/2}\geq\floor{n/4}.
544: \end{eqnarray*}
545:
546: \end{proof}
547:
548: Since $n_I\leq n$, the corollary below is immediate from
549: Theorem~\ref{thm:reflex-upper-bnd} and Lemma~\ref{lem:lower-bnd}. The
550: gap in the bounds for $\rho(n)$, between $\floor{n/4}$ and
551: $\ceil{n/2}$, remains an intriguing open problem. While our
552: combinatorial bounds are worst-case tight in terms of $n_I$ (the number of points
553: of $S$ whose convexity/reflexivity is not forced by the convex hull of
554: $S$), they are not worst-case tight in terms of~$n$.
555:
556: \begin{corollary}
557: \label{cor:reflex-upper-bnd}
558: $\floor{n/4}\leq\rho(n)\leq \ceil{n/2}$.
559: \end{corollary}
560:
561: Based on experience with a software tool developed by A.~Dumitrescu
562: that computes, in exponential time, the reflexivity of user-specified
563: or randomly generated point sets, as well as the proven behavior of
564: $\rho(n)$ for small values of $n$ (see Section~\ref{sec:small}),
565: we make the following conjecture:
566:
567: \begin{conjecture}
568: \label{con:rho-upper}
569: $\rho(n)=\floor{n/4}$.
570: \end{conjecture}
571:
572: \subsection{Steiner Points}
573:
574: If we allow Steiner points in the polygonalizations of $S$, the
575: reflexivity of $S$ may go down substantially, as the example in
576: Figure~\ref{fig:Steiner-ex} shows. In fact, the illustrated class of
577: examples shows that the use of Steiner points may allow the
578: reflexivity to go down by a factor of two.
579: The Steiner reflexivity, $\rho'(S)$, of $S$ is the minimum number of reflex
580: vertices of any simple polygon with vertex set $V\supset S$. We conjecture that
581: $\rho'(S)\geq\rho(S)/2$ for any set $S$, which would imply that this
582: class of examples (essentially) maximizes the ratio
583: $\rho(S)/\rho'(S)$.
584:
585: \begin{conjecture}
586: \label{con:rho.rho'}
587: For any set $S$ of points in the plane, $\rho'(S)\geq\rho(S)/2$.
588: \end{conjecture}
589:
590: \begin{figure}
591: \centerline{\psfig{file=Steiner-ex.eps,height=1.9in}}
592: \caption{Left: A point set $S$ having reflexivity $\rho(S)=r$.
593: Right: The reflexivity of $S$ when Steiner points {\em are} permitted
594: is substantially reduced from the no-Steiner case: $\rho'(S)=r/2$.}
595: \label{fig:Steiner-ex}
596: \end{figure}
597:
598: We have seen (Corollary~\ref{cor:reflex-upper-bnd})
599: that $\floor{n/4}\leq\rho(n)\leq \ceil{n/2}$. We now show that allowing
600: Steiner points in the polygonalization allows us to prove
601: a smaller upper bound, while still being able
602: to prove roughly the same lower bound:
603:
604: \begin{theorem}
605: \label{thm:Steiner-upper}
606: $$\left\lceil\frac{n-1}{4}\right\rceil-1 \leq \rho'(n)\leq \left\lceil\frac{n}{3}\right\rceil.$$
607: \end{theorem}
608:
609: \begin{proof}
610: For the upper bound, we give a specific method of constructing a
611: polygonalization (with Steiner points) of a set $S$ of $n$ points.
612: Sort the points $S$ by their $x$-coordinates and group them into
613: consecutive triples. Let $p_{n+1}$ denote a (Steiner) point with a
614: very large positive $y$-coordinate and let $p_0$ denote a (Steiner)
615: point with a very negative $y$-coordinate. Each triple, together
616: with either point $p_{n+1}$ or point $p_0$, forms a convex
617: quadrilateral. Then, we can polygonalize $S$ using one reflex
618: (Steiner) point per triple, as shown in
619: Figure~\ref{fig:Steiner-upper}, placed very close to $p_{n+1}$ or
620: $p_0$ accordingly. This polygonalization has at most $\ceil{n/3}$
621: reflex points.
622:
623: For the lower bound, we consider the configuration of $n$ points,
624: $S$, used in Urabe~\cite{u-opcp-96} to prove that $\kappa_p(n)\geq
625: \ceil{(n-1)/4}$. For this set $S$ of $n$ points, let $P$ be a
626: Steiner polygonalization having $r$ reflex vertices. Then the
627: simple polygon $P$ can be partitioned into $r+1$ (pairwise-disjoint)
628: convex pieces; this is a simple observation of
629: Chazelle~\cite{c-cgc-79} (see Theorem~2.5.1 of \cite{o-cgc-98}).
630: The points $S$ occur as a subset of the vertices of these pieces;
631: thus, the partitioning also decomposes $S$ into at most $r+1$
632: subsets, each in convex position. Since $\kappa_p(n)\geq \lceil
633: (n-1)/4\rceil$, we get that $r\geq \lceil (n-1)/4\rceil -1$.
634: %
635: \end{proof}
636:
637: \begin{figure}
638: \centerline {\input{Steiner-upper.pstex_t}}
639: \caption{Polygonalization of $n$ points using only $\ceil{n/3}$
640: reflex (Steiner) points. }
641: \label{fig:Steiner-upper}
642: \end{figure}
643:
644: \subsection{Two-Layer Point Sets}
645:
646: Let $S$ be a point set that has two (convex) layers.
647: It is clear from our repeated use of the example
648: in Figure~\ref{fig:lower-bnd} that this
649: is a natural case that is a likely candidate for worst-case behavior.
650: With a very careful analysis
651: of this case, we are able to obtain tight combinatorial bounds on
652: the worst-case reflexivity in terms of~$n$.
653:
654: \begin{theorem}
655: \label{thm:2-layer-bounds}
656: Let $S$ be a set of $n$ points having two layers. Then $\rho(S)\leq
657: \ceil{n/4}$, and this bound is tight in the worst case.
658: \end{theorem}
659:
660: \begin{proof}
661: Consider a set $S$ of $n$ points with onion depth two. Let $h$ be the
662: number of points on the convex hull. Thus there are $n - h$ points on
663: the interior onion layer. Let the points on the convex hull be $a_0,
664: a_1,\dots, a_{h-1}$ in clockwise order. Let the points on the
665: interior onion layer be $b_0, b_1,\dots, b_{n - h - 1}$ in clockwise
666: order. All arithmetic involving the subscripts of the $a$'s and $b$'s
667: is done mod $h$ and mod $(n - h)$, respectively.
668:
669: \begin{fact}
670: \label{fact:0}
671: In any polygonalization of $S$ each pocket has at least one
672: reflex vertex.
673: \end{fact}
674:
675: \begin{proof}
676: This follows from the fact that the polygon defined by the pocket
677: and its convex hull edge must have at least three convex vertices
678: (as does any simple polygon).
679: \end{proof}
680:
681: Consider any point $b_i$ on the interior onion layer. Let the
682: intersection of ray $\vecc{b_{i - 1} b_i}$ with the convex hull be $x_i\in
683: a_j a_{j+1}$. We call the directed segment $b_i x_i$ the {\em spoke
684: $s_i$ originating at $b_i$}, and we say that the spoke $s_i$ belongs
685: to the convex hull segment $a_j a_{j+1}$ and the segment $a_j a_{j+1}$
686: has the spoke~$s_i$. Refer to Figure~\ref{fig:twolayer}.
687:
688: The number of spokes a convex hull segment has is called its {\em
689: spoke count}. Let $c_j$ be the spoke count of convex hull segment
690: $a_j a_{j+1}$. Clearly there are $n - h$ spokes $s_0, s_1,\dots, s_{n
691: - h - 1}$ and each spoke belongs to exactly one convex hull segment
692: (assuming no degeneracy). Also for all $j$, $0 \leq c_j \leq n-h$ and
693: $\sum_{j=0}^{h-1} c_j = n - h$.
694:
695: \begin{figure}[htbp]
696: \centerline{\input{twolayer.pstex_t}}
697: \caption{The situation for a point set with two layers.}
698: \label{fig:twolayer}
699: \end{figure}
700:
701: Consider any convex hull edge $a_j a_{j+1}$ with non-zero spoke count
702: $c_j$. Assume that the originating points of its spokes are $b_i$,
703: $b_{i+1}$,$\dots$, $b_{i + c_j - 1}$ in clockwise order. Then the pocket
704: $a_j$, $b_i$, $b_{i+1}$,$\dots$, $b_{i + c_j - 1}$, $a_{j+1}$ is called the {\em
705: standard pocket} for the convex hull edge $a_j a_{j+1}$. See
706: Figure~\ref{fig:standard-pockets}.
707:
708: \begin{figure}[htbp]
709: \centerline{\input{standard_pockets.pstex_t}}
710: \caption{Standard pockets.}
711: \label{fig:standard-pockets}
712: \end{figure}
713:
714: \begin{fact}
715: \label{fact:1}
716: A standard pocket has exactly one reflex vertex.
717: \end{fact}
718:
719: \begin{proof}
720: Vertices $b_{i+1}, b_{i+2},\dots, b_{i + c_j - 2}$ are convex, since
721: the angles at these vertices are the interior angles of the inner
722: onion layer. The vertex $b_{i + c_j - 1}$ is convex because point
723: $a_{j+1}$ is on the right of directed line $b_{i + c_j - 2} b_{i +
724: c_j - 1}$. The vertex $b_i$ is reflex because there has to be at
725: least one reflex vertex in any pocket.
726: \end{proof}
727:
728: \begin{fact}
729: \label{fact:2}
730: No two standard pockets intersect each other, except possibly at their
731: endpoints.
732: \end{fact}
733:
734: \begin{proof}
735: The annulus between the two onion rings is divided into $n-h$
736: disjoint regions by the spokes. A standard pocket for segment $a_j
737: a_{j+1}$ may share a region with each of the standard pockets (if
738: any) for segments $a_{j-1} a_j$ and $a_j a_{j+1}$. In such shared
739: regions two pockets have a segment each. The two segments do not
740: intersect because the two segments are obtained by rotating two
741: spokes about their points of origin until their intersection with
742: the convex hull reaches a vertex. The two segments can hence either
743: remain disjoint or share an endpoint.
744: \end{proof}
745:
746: We obtain the {\em standard polygonalization} by connecting all
747: standard pockets, in order, using convex hull segments with zero spoke
748: count. See Figure~\ref{fig:standard-pockets}.
749:
750: \begin{fact}
751: \label{lem1}
752: The number of reflex vertices in the standard polygonalization is at
753: most $\floor{n/2}$.
754: \end{fact}
755:
756: \begin{proof}
757: The number of standard pockets can neither exceed the number of
758: convex hull segments $h$ nor the number of internal points, $n-h$.
759: Hence, this polygonalization has at most $\min\{h, n-h\}$ standard
760: pockets and hence reflex vertices. This can be at most
761: $\floor{n/2}$.
762: \end{proof}
763:
764: Consider a convex hull segment $a_j a_{j+1}$ that has a
765: non-zero spoke count
766: $c_j$. Assume that the origins of its spokes are $b_i, b_{i+1},\dots, b_{i +
767: c_j - 1}$. We call the pocket $a_j$, $b_{i-i}$, $b_i$, $b_{i+1},\dots$,
768: $b_{i + c_j - 1}$, $a_{j+1}$ the {\em premium pocket} for convex hull
769: segment $a_j a_{j+1}$. Note that the premium pocket of a segment has
770: one more point than its standard pocket. We obtain the {\em premium
771: polygonalization} as follows: Start with the convex hull.
772: Process convex hull segments in clockwise order beginning anywhere.
773: If the convex hull segment $a_i a_{i+1}$ has spoke count greater than
774: or equal to two, replace the edge with its standard pocket. If the
775: spoke count is zero, do nothing. If the spoke count is one, move to
776: the next segment with non-zero spoke count and replace it with its
777: premium pocket provided that it is not already processed. If the next
778: segment with non-zero spoke count was already processed, replace the
779: segment being processed with its standard pocket, and we are done.
780: One can verify that this process gives a valid polygonalization.
781:
782: \begin{fact}
783: \label{lem2}
784: The number of reflex vertices in a premium polygonalization is at most
785: $\floor{n/3}$.
786: \end{fact}
787:
788: \begin{proof}
789: In the premium polygonalization, each pocket has at least one reflex
790: and one convex vertex, with the exception of the last pocket
791: created, which may have only a single reflex vertex. Thus, the
792: number of pockets created cannot exceed $\floor{(n-h+1)/2}$. Also,
793: the number of pockets cannot exceed the number of convex hull edges,
794: $h$. Thus, the number of pockets and, therefore, the number of reflex
795: vertices cannot exceed $\min\{h, \floor{(n-h+1)/2}\}$, which can be
796: at most $\floor{n/3}$.
797: \end{proof}
798:
799: We now define the {\em intruding polygonalization}, as follows: Start
800: with the convex hull. Process convex hull segments in clockwise order,
801: beginning anywhere. We consider cases, depending on the spoke count, $c_j$, of
802: the convex hull segment $a_j a_{j+1}$:
803: %
804: \begin{description}
805: \item[$c_j=0$] Do nothing.
806:
807: \item[$c_j\geq 3$] Replace $a_j a_{j+1}$ with a standard pocket.
808:
809: \item[$c_j=1$] Replace the next non-zero count unprocessed hull
810: segment with its premium pocket. (If no such non-zero count
811: unprocessed segment exists, then replace $a_j a_{j+1}$ by its
812: standard pocket and stop.)
813:
814: \item[$c_j=2$] We distinguish two subcases:
815: \begin{description}
816: \item[Case A] If this is the last segment to be processed or if the
817: sequence of spoke counts following this segment begins with either
818: 0, or a count $\geq 4$, or an odd number of 1's, or an even number
819: of 1's followed by a zero, do the following: Replace $a_j a_{j+1}$
820: with its standard pocket.
821: \item[Case B] If there are an even number of 1's followed by a
822: non-zero spoke count, or if the sequence begins with 2 or 3, do one
823: of the following, depending on the current ``mode''; initially, the
824: mode is ``normal.''
825:
826: {\bf Normal Mode.} Replace $a_{j+1} a_{j+2}$ with its premium
827: pocket. This leaves one of the originating points of $a_j a_{j+1}$;
828: call a point $P$ of this type
829: the {\em pending point}. Go into ``Point
830: Pending Mode.''
831:
832: {\bf Point Pending Mode.} Let the origins of the spokes of $a_j
833: a_{j+1}$ be $b_i, \dots, b_{i + c_j - 1}$. Find the first point of
834: intersection of the ray $\vecc{P b_i}$ with the current polygonalization.
835: There are only two choices for where the point of intersection can
836: lie.
837:
838: If the point of intersection lies on $a_j a_{j+1}$, treat ray $\vecc{P
839: b_i}$ as a spoke of $a_j a_{j+1}$, thus increasing $c_j$ by 1. Now
840: replace $a_j a_{j+1}$ by its standard pocket, and return to the
841: ``Normal Mode.''
842:
843: If the point of intersection lies on $a_j b_{i-1}$, replace $a_j
844: b_{i-1}$ with $a_j b_i P b_{i-1}$. This reduces $c_j$ from 2 to 1.
845: Now handle as in Case~1.
846: \end{description}
847: \end{description}
848:
849:
850: \begin{fact}
851: \label{lem3}
852: The intruding polygonalization produces a valid (non-crossing) polygonalization of $S$, with at most $\floor{n/4}$ reflex vertices.
853: \end{fact}
854:
855: \begin{proof}
856: It is straightforward to check each case to make certain that the
857: polygonalization is valid.
858: We prove the bound on the number of reflex vertices by charging each
859: reflex vertex created to a set of 4 input points.
860:
861: In case $c_j=0$, we do not create any reflex points.
862:
863: In case $c_j\geq 3$, we create a reflex vertex as part of the standard
864: pocket. We charge this to the three internal vertices of the pocket
865: and the source vertex of the segment being processed.
866:
867: In case $c_j=1$, we create a reflex vertex as part of the premium
868: pocket of the next segment having non-zero spoke count. We charge
869: this to the sources of the segment being processed and the next
870: segment and to the (at least two) internal vertices of the pocket.
871:
872: If $c_j=2$ and we are in Case A, we create a reflex vertex as part of
873: the standard pocket. We charge this to the source of the segment
874: being processed and the two internal vertices. We need to charge it
875: to one more point.
876: \begin{itemize}
877: \item If the next segment has zero spoke count, we charge it to its
878: source.
879: \item If the next segment has spoke count greater than or equal to
880: four, we charge it to one of its internal vertices. (Recall that
881: for a segment with spoke count greater than or equal to four, only
882: three of its internal vertices will get charged by its own standard
883: pocket.)
884: \item If there are some number of 1's followed by a 0, we charge the
885: source of segment having spoke count 0.
886: \item If there are odd number of 1's followed by a non-zero count,
887: then note that the segment following this sequence of 1's will be
888: replaced by its premium pocket by our algorithm. This segment will
889: have a spoke count greater than or equal to 2. We put the extra
890: charge needed on one of the internal points of this premium pocket.
891: (Recall that this premium pocket will have at least 3 internal
892: points and the pocket itself will charge only two of them.)
893: \end{itemize}
894:
895: If $c_j=2$ and we are in Case B, we consider each of the two modes separately:
896: %
897: \begin{description}
898: \item[Normal Mode] If the sequence begins with a 2 or 3, we charge the
899: reflex vertex created to the internal points (at least 3) of the
900: premium pocket and the source of segment being replaced.
901:
902: If the sequence has an even number of 1's followed by a non-zero
903: spoke count, then we have a case similar to that above, but we have
904: only two internal points to charge in the premium pocket. However,
905: since the first segment with spoke count 1 will be replaced by its
906: premium pocket, there will be an odd number of 1's remaining.
907: Hence, the segment following this sequence of one (which has spoke
908: count $\geq 2$) will be replaced with a premium pocket, which has an
909: extra internal point to which we can charge.
910:
911: Note that in Normal Mode, in both of the cases above,
912: the source of the
913: segment being processed remains uncharged. Also, the pending point
914: remains to be incorporated into the polygonalization.
915: \item[Point Pending Mode] Depending on where ray $\vecc{P b_i}$ intersects in
916: this case, there are two possibilities:
917:
918: If the point of intersection lies on $a_j a_{j+1}$, then we are
919: creating a pocket with at least 2 internal points. We charge the
920: reflex vertex created to the two internal points and to the source
921: of the segment being processed and to the uncharged point in the
922: previous Normal Mode. See Figure~\ref{fig:case2b1}.
923:
924:
925: \begin{figure}
926: \centerline{\input{case2b1.pstex_t}}
927: \caption{Subcase of Case B, $c_j=2$: Ray ${b_0 b_4}$ intersects segment $a_2 a_3$, but not segment $b_3 a_2$.}
928: \label{fig:case2b1}
929: \end{figure}
930:
931:
932: \begin{figure}
933: \centerline{\input{case2b2.pstex_t}}
934: \caption{Subcase of Case B, $c_j=2$: Ray ${b_0 b_4}$ intersects segment $b_3 a_2$, but not segment $a_2 a_3$.}
935: \label{fig:case2b2}
936: \end{figure}
937:
938: If the point of intersection lies on $a_j b_{i-1}$, then the
939: subpocket has two internal points. In this case we
940: charge its reflex point
941: (which is the pending point $P$) to these two internal points and to
942: the uncharged point in the previous normal mode. We need to make
943: one more charge, which depends on the spoke count of next segment.
944: If it is 2 or 3, we charge the extra internal point in its premium
945: pocket. If it is 1, note that since there were even number of 1's
946: following, after we replace the next one with its premium pocket,
947: there would be odd number of 1's remaining. Hence, the segment
948: following this sequence of 1's (which has non-zero spoke count),
949: will be replaced with its premium pocket, by our algorithm. Hence,
950: we can charge its extra internal point. See Figure~\ref{fig:case2b2}.
951: \end{description}
952:
953: \end{proof}
954:
955: This concludes the proof of Theorem~\ref{thm:2-layer-bounds}
956: \end{proof}
957:
958:
959: \paragraph{Remark.}
960: Using a variant of the polygonalization given in the proof of
961: Theorem~\ref{thm:2-layer-bounds}, it is possible to show that a
962: two-layer point set $S$ in fact has a polygonalization with at most
963: $\ceil{n/3}$ reflex vertices such that none of the edges in the
964: polygonalization pass through the interior of the convex hull of the
965: second layer. (The polygonalization giving upper bound of
966: $\ceil{n/4}$ requires edges that pass through the interior of the
967: convex hull of the second layer.) This observation may be useful in
968: attempts to reduce the worst-case upper bound ($\rho(n)\leq
969: \ceil{n/2}$) for more general point sets~$S$.
970:
971: \subsection{Convex Cover/Partition Numbers}
972:
973: As a consequence of the Erd\H{o}s-Szekeres
974: theorem~\cite{es-cpg-35,es-sepeg-60}, Urabe has given bounds on the
975: convex cover number of a set of $n$ points:
976: Urabe~\cite{u-opcp-96} and Hosono and Urabe~\cite{hu-ndcqp-01}
977: have obtained bounds as well on the convex partition number
978: of an $n$-point set:
979: %
980: $$\left\lceil\frac{n-1}{4}\right\rceil \leq \kappa_p(n)\leq \left\lceil\frac{5n}{18}\right\rceil.$$
981: %
982:
983: While it is trivially true that $\kappa_c(S)\leq \kappa_p(S)$
984: the ratio $\kappa_p(S)/\kappa_c(S)$ for a set $S$
985: may be as large as $\Theta(n)$; the set $S=S_0(n)$ (Figure~\ref{fig:lower-bnd})
986: has $\kappa_c(S)=2$, but $\kappa_p(S)\geq n/4$.
987:
988: The fact that $\kappa_p(S)\leq \rho(S)+1$ follows easily by
989: iteratively adding $\rho(S)$ segments to an optimal polygonalization
990: $P$, bisecting each reflex angle. The result is a partitioning of $P$
991: into $\rho(S)+1$ convex pieces.
992: Thus, we can obtain a convex partitioning of $S$ by associating a
993: subset of $S$ with each convex piece of $P$, assigning each point of
994: $S$ to the subset associated with any one of the convex pieces that has
995: the point on its boundary.
996: %
997: (This is the same observation of Chazelle~\cite{c-cgc-79} used in
998: the proof of Theorem~\ref{thm:Steiner-upper}.)
999:
1000: We believe that the relationship between reflexivity ($\rho(S)$)
1001: and convex partition number ($\kappa_p(S)$) goes the other way as well:
1002: A small convex partition number should imply a small reflexivity.
1003: In particular, we have invested considerable effort in trying to
1004: prove the following conjecture:
1005: %
1006: \begin{conjecture}
1007: \label{con:rho.kappa2}
1008: $\rho(S)=O(\kappa_p(S))$.
1009: \end{conjecture}
1010: %
1011: The reflexivity can be as large as {\em twice} the
1012: convex cover number ($\rho(S)=2\kappa_p(S)$), as illustrated
1013: in the example of Figure~\ref{fig:ratio-two}; however,
1014: this is the worst class of examples we have found so far.
1015:
1016: \begin{figure}[hbtp]
1017: \begin{center}
1018: \epsfxsize=.4\textwidth
1019: \ \epsfbox{ratio.two.eps}
1020: \caption{An example with $\rho(S)=2\kappa_p(S)$.
1021: Each thick oval shape represents a numerous subset of points of $S$
1022: in convex position.}
1023: \label{fig:ratio-two}
1024: \end{center}
1025: \end{figure}
1026:
1027: Turning briefly to Steiner reflexivity, it is not hard to see that
1028: $\rho'(S)=O(\kappa_p(S))$ (see the proof of
1029: Corollary~\ref{cor:reflexivity-approx}).
1030: %
1031: Thus, a proof of
1032: Conjecture~\ref{con:rho.kappa2} would follow from the validity of
1033: Conjecture~\ref{con:rho.rho'}.
1034:
1035:
1036:
1037: \subsection{Small Point Sets}
1038: \label{sec:small}
1039:
1040: It is natural to consider the exact values of $\rho(n)$,
1041: $\kappa_c(n)$, and $\kappa_p(n)$ for small values of $n$.
1042: Table~\ref{tab:small} below shows some of these values, which we
1043: obtained through (sometimes tedious) case analysis. Aichholzer and
1044: Krasser~\cite{ak-psotd-01} have recently applied their software that
1045: enumerates point sets of size $n$ of all distinct order types to
1046: verify our results computationally; in addition, they have obtained
1047: the result that $\rho(10)=3$. (Experiments are currently
1048: under way for $n=11$; values of $n\geq 12$ seem to be
1049: intractable for enumeration.)
1050:
1051: \begin{table}
1052: \small
1053: \centerline{%
1054: \begin{tabular}{|l||c|c|c|}
1055: \hline
1056: $n$ & $\rho(n)$ & $\kappa_c(n)$ & $\kappa_p(n)$ \\
1057: \hline \hline
1058: $\leq $ 3 &0 &1 & 1\\
1059: 4 &1 &2 & 2\\
1060: 5 &1 &2 & 2\\
1061: 6 &2 &2 & 2\\
1062: 7 &2 &2 & 2\\
1063: 8 &2 &2 & 3\\
1064: 9 &3 &3 & 3\\
1065: 10 &3 &- &- \\
1066: \hline
1067: \end{tabular}%
1068: }
1069: \vspace{1ex}
1070: \caption{\label{tab:small}
1071: Worst-case values of $\rho$, $\kappa_c$, $\kappa_p$ for small
1072: values of $n$.
1073: }
1074: \end{table}
1075:
1076: \section{Complexity}
1077: \label{sec:npc}
1078:
1079: We now prove lower bounds on the
1080: complexity of computing the convex cover number, $\kappa_c(S)$, and
1081: the convex partition number, $\kappa_p(S)$.
1082: %
1083: The proof for the convex cover number uses a reduction of the problem
1084: 1-in-3 SAT and is inspired by the hardness proof for the {\sc Angular
1085: Metric TSP} given in~\cite{ackms-amtsp-97}. The proof for the
1086: convex partition number uses a reduction from {\sc Planar 3\,Sat}.
1087:
1088:
1089:
1090: \begin{theorem}
1091: \label{th:npc.disjoint}
1092: It is NP-complete to decide whether for a planar point set $S$
1093: the convex partition number $\kappa_p(S)$ is below some
1094: threshold $k$.
1095: \end{theorem}
1096:
1097:
1098: \begin{proof}
1099: We give a reduction from {\sc Planar 3\,Sat}, which was shown to be
1100: NP-complete by Lichtenstein (see~\cite{l-pftu-82}). A {\sc 3\,Sat} instance $I$
1101: is called a {\sc Planar 3\,Sat} instance, if the (bipartite)
1102: ``occurrence graph''
1103: $G_I=(V_I,E_I)$ is planar, where each vertex of $V_I$
1104: corresponds to a variable or a clause, and two vertices
1105: are joined by an edge of $E_I$ if and only if the vertices
1106: correspond to a variable $x$ and a clause $c$ such that $x$ appears
1107: in the clause $c$ in $I$.
1108: See Figure~\ref{fi:npc.disjoint}(a) for an example,
1109: where a solid edge denotes
1110: an un-negated literal, while a dashed edge represents a negated literal
1111: in a clause.
1112:
1113: \begin{figure}[h!btp]
1114: \begin{center}
1115: \epsfxsize=.20\textwidth
1116: \ \epsfbox{occur.eps}
1117: \hfill
1118: \epsfxsize=.100\textwidth
1119: \ \epsfbox{polygon.eps}
1120: \hfill
1121: \epsfxsize=.25\textwidth
1122: \ \epsfbox{replace.eps}
1123: \hfill
1124: \epsfxsize=.25\textwidth
1125: \ \epsfbox{join.eps}
1126: \caption{(a) A straight-line embedding of the occurrence graph for the
1127: {\sc 3\,Sat} instance $(x_1\vee\overline{x_2}\vee x_3) \wedge (x_2\vee{x_3}\vee\overline{x_4})\wedge (\overline{x_1}\vee x_2 \vee \overline{x_4})$;
1128: (b) a polygon for a variable vertex;
1129: (c) a point set $S_I$ representing the {\sc Planar 3\,Sat} instance $I$;
1130: (d) joining point sets along the odd or even polygon edges.}
1131: \label{fi:npc.disjoint}
1132: \end{center}
1133: \end{figure}
1134:
1135: The basic idea is the following: Each variable is represented
1136: by a set of points that can be partitioned into $s$ disjoint
1137: convex chains in two different ways. One of these possibilities
1138: will correspond to a setting of ``true'', the other to a setting of
1139: ``false''. Each clause is represented by a set of points, such
1140: that it can be covered by three convex chains disjoint from
1141: all other chains, if and only if at least one of the variables is set
1142: in a way that satisfies the clause.
1143:
1144: So let $I$ be a {\sc Planar 3\,Sat} instance with $n$ variables
1145: and $m=O(n)$ clauses. Consider a straight-line
1146: embedding of its occurrence graph $G_I$. In a first step, for
1147: every vertex $v_x$ representing a variable $x$, draw
1148: a small polygon $P_x$ with $2s\leq 2m$ edges
1149: around $v_x$, where $s$ is bounded by the maximum degree of a variable
1150: vertex. (See Figure~\ref{fi:npc.disjoint}(b).) This is done
1151: such that no edge of $G_I$ passes through one of the corners of $P_x$,
1152: and only edges adjacent to $v_x$ intersect $P_x$; moreover, we
1153: choose edge orientations for all polygons that assure that
1154: no two different polygons $P_x$ and $P_y$ have two collinear edges
1155: (See Figure~\ref{fi:npc.disjoint}(c), where
1156: we have $s=2$ and we have used rectangles as polygons to keep the figure clear.)
1157: Furthermore, we choose the polygons such that
1158: all of the line segments connecting $v_x$ to clauses where
1159: $v_x$ appears un-negated intersect ``even'' edges of the polygon,
1160: and all the line segments connecting $v_x$ to clauses
1161: where $v_x$ appears negated intersect ``odd'' edges of the polygon.
1162:
1163: In a second step,
1164: replace the polygons (and thus the variable vertices) by
1165: appropriate sets of $2s(kn^4+1)$ points
1166: -- see Figure~\ref{fi:npc.disjoint} for an example.
1167: Each of the corners $b_x^{(1)},\ldots,b_x^{(2s)}$
1168: of a polygon $P_x$
1169: is represented by a dense convex chain $B_x^{(i)}$
1170: of $kn^4$ points, forming
1171: a convex curve with an opening of roughly $\pi/s$, and an additional
1172: ``pivot'' point $p_x^{(i)}$.
1173:
1174: Finally, we describe how to represent the clauses:
1175: Each vertex $v_c$ in $G_I$ representing a clause $c$ is replaced by
1176: three points forming a small triangle $T_c$; furthermore, for each
1177: of the three edges connecting some
1178: variable vertex $v_x$ to $v_c$, add a convex chain $C_{x,c}$
1179: of $k*n^2$ points within the polygon $P_x$. $C_{x,c}$
1180: is lined up with the triangle $T_c$
1181: such that $T_c\cup C_{x,c}$ is a convex chain.
1182: On the other hand, the opening of $C_{x,c}$ towards $T_c$
1183: is narrow enough to prevent any other point
1184: from forming a convex chain with
1185: all points in $C_{x,c}$. We also avoid any other
1186: collinearities in the overall arrangement.
1187:
1188: \smallskip
1189: Now we claim the following correspondence:
1190:
1191: The resulting point set $S_I$ can be partitioned into at
1192: most $3m+sn$ disjoint convex chains, if and only if the {\sc Planar 3\,Sat}
1193: instance $I$ is satisfiable.
1194:
1195: \smallskip
1196: To see that a satisfying truth assignment induces a feasible decomposition,
1197: note that there are exactly two ways to cover the points for a
1198: polygon with $2s$ edges by at most $s$ disjoint convex chains.
1199: (One of these choices arises by joining the pairs of sets that belong
1200: to the ``even'' edges of a polygons box into one convex chain,
1201: the other by joining the pairs of sets for the ``odd'' edges
1202: of a polygon. This is shown in Figure~\ref{fi:npc.disjoint}(d).)
1203: For a true variable, take the
1204: ``even'' choice, for a false variable, the ``odd'' choice.
1205: Now consider a clause $c$ and a variable $x$ that satisfies $c$.
1206: By the choice of chains covering the points for $x$,
1207: we join the triangle $T_c$ for $v_c$ with the chain
1208: $C_{x,c}$ into one convex chain, without intersecting any other chain.
1209: The other two chains $C_{y,c}$ are each covered by separate chains.
1210: This yields a decomposition into $3m+sn$ disjoint convex chains, as claimed.
1211:
1212: \smallskip
1213: To see the converse, assume we have a decomposition
1214: into at most $3m+sn$ disjoint convex chains.
1215:
1216: We start by considering how the sets $B_x^{(i)}$ and the sets
1217: $C_{x,c}$
1218: (henceforth called ``gadget sets'' $G_j$, with
1219: $j=1,\ldots,3m+2sn$) can be covered in such a solution.
1220: Associate each chain with all the $G_j$
1221: of which it covers at least $\Omega(n)$ points.
1222: It is straightforward to see that a convex chain
1223: that covers at least $\Omega(n)$ points from each of three
1224: different gadget sets must contain
1225: some other point of the set $S_I$
1226: in its interior, so this cannot occur in the given feasible
1227: decomposition. Therefore, no chain can be associated
1228: with more than two gadget sets. Moreover, a convex chain can
1229: contain at least $k*n^3-O(n)$ points from each of two different
1230: gadget sets without any pivot points $p_x^{(i)}$
1231: in its interior, only if these sets are some
1232: $B_x^{(i)}$ and $B_x^{(i\pm 1)}$.
1233: (In particular, it is not hard to see that no chain that covers
1234: $\Omega(n)$ points of a set $C_{x,c}$ can cover points
1235: from any other gadget set.)
1236: Since there are $3m+sn=O(n^2)$ chains in total, there
1237: must be at least one chain associated with each
1238: gadget set, and a chain associated with a set $C_{x,c}$
1239: cannot be associated with any other set. This means that
1240: $3m$ of the chains are used to cover the $3m$ chains $C_{x,c}$.
1241: Therefore, the remaining
1242: $2sn$ gadget sets $B_x^{(i)}$ must be covered by the remaining
1243: $sn$ convex chains. None of these chains can cover
1244: more than two of these sets. It follows that the remaining chains form a
1245: perfect matching on the set of $B_x^{(i)}$, implying that
1246: each chain covers a $B_x^{(i)}$ and a neighboring set $B_x^{(i\pm 1)}$.
1247: Therefore, the gadget sets for each variable are either covered
1248: by pairing along the ``odd'' edges, or by pairing along the ``even''
1249: edges of the associated polygon.
1250:
1251: This describes the gadget sets associated with all the convex chains.
1252: Now it is straightforward to verify that a point from one of the triangles
1253: $T_c$ can only be part of one of the chains associated with a
1254: set $C_{x,c}$. This can only happen if this chain does not
1255: intersect a chain along an edge of the polygon for the variable $x$
1256: -- implying that this variable satisfies the clause $c$.
1257: This completes the proof.
1258: \end{proof}
1259:
1260:
1261: \begin{theorem}
1262: \label{th:npc.nondisjoint}
1263: It is NP-complete to decide whether for a planar point set $S$
1264: the convex cover number $\kappa_c(S)$ is below some
1265: threshold $k$.
1266: \end{theorem}
1267:
1268: \begin{proof}
1269: Our proof uses a reduction of the problem 1-in-3 SAT.
1270: It is inspired by the hardness proof for the {\sc Angular Metric
1271: TSP} given in \cite{ackms-amtsp-97}.
1272:
1273: \begin{figure}[hbtp]
1274: \begin{center}
1275: \epsfxsize=.35\textwidth
1276: \ \epsfbox{1in3.eps}
1277: \caption{A point set $S_I$ for a 1-in-3 SAT instance $I$. Pivot points
1278: are shown for the clause $(x_1\vee \overline{x_i}\vee x_n)$.}
1279: \label{fi:npc.nondisjoint}
1280: \end{center}
1281: \end{figure}
1282:
1283: The construction is as follows:
1284: For a 1-in-3 SAT instance $I$ with $n$ variables
1285: and $m$ clauses, represent each clause
1286: $c_j$ by a triple of vertical columns, each one
1287: associated with a variable that occurs in $c_j$.
1288: Each variable $x_i$ is represented by a pair of
1289: horizontal rows, the upper one corresponding to ``true'',
1290: the lower one corresponding to ``false''.
1291: This results in a grid pattern
1292: as shown in Figure~\ref{fi:npc.nondisjoint}.
1293: For each pair of a variable $x_i$ and a clause $c_j$, we get
1294: a 2x3 pattern of intersections points. If variable
1295: $x_i$ appear in clause $c_j$,
1296: we add three ``pivot'' points to this pattern:
1297: If $x_i$ occurs un-negated in $c_j$, a pivot point is
1298: added at the intersection of $x_i$'s ``true'' row with
1299: the column of $c_j$ that corresponds
1300: to $x_i$; for both other two columns, a pivot point is added
1301: at the intersection with the ``false'' row.
1302: If $x_i$ occurs negated in $c_j$, a pivot point is added at the
1303: intersection of $x_i$'s ``false'' row with the column of $c_j$
1304: that corresponds to $x_i$; for both other two columns, a pivot point is
1305: added at the intersection with the ``true'' row.
1306:
1307: Finally, a horizontal ``staple'' gadget that consists
1308: of $\Omega(n^4)$ points is added to the rows for each
1309: variable, and two nested vertical
1310: staple gadgets are added to the columns for each of the clauses.
1311: These are constructed in a way that a staple forms a
1312: convex chain that can cover all the pivot points in
1313: one row or one column, but not more than that,
1314: and no pivot points from any other clauses or
1315: variables. Thus, for each variable, we can
1316: collect one of two rows, and for each clause, we can cover
1317: two of three rows.
1318:
1319: Now it is possible to show the following:
1320: The 1-in-3 SAT instance $I$ has a satisfying truth assignment,
1321: if and only if the point set $S_I$ can be covered with not more than
1322: $n+2m$ convex chains.
1323:
1324: It is easy to see that a satisfying truth assignment
1325: implies a small convex cover, by covering each staple gadget
1326: by one chain, and choosing the appropriate
1327: rows and columns of pivot points to be covered by the
1328: staple gadgets: For each variable, choose
1329: the row corresponding to its truth assignment. For each clause,
1330: choose the two columns for the two variables that do not
1331: satisfy it. Now it is straightforward to check that all pivot points
1332: are covered.
1333:
1334: To see the converse, we can argue in a similar way as in the proof
1335: of Theorem~\ref{th:npc.disjoint} that each staple needs its
1336: own convex chain. Then we are left with a choice of one row
1337: for each variable, and two columns for each clause.
1338: This choice of rows induces a truth assignment to variables;
1339: it is not hard to check that the remaining uncovered pivot points
1340: lie in not more than two columns, if and only if this truth assignment
1341: is valid for the 1-in-3 SAT instance $I$.
1342: \end{proof}
1343:
1344:
1345: So far, the complexity status of determining the reflexivity of a
1346: point set remains open. However, the apparently close relationship
1347: between convex cover/partition numbers and reflexivity leads us to
1348: believe the following:
1349:
1350: \begin{conjecture}
1351: \label{npc.reflex}
1352: It is NP-complete to determine the reflexivity $\rho(S)$
1353: of a point set.
1354: \end{conjecture}
1355:
1356: \section{Algorithms}
1357:
1358: We have obtained a number of algorithmic results on computing, exactly
1359: or approximately, reflexivity and convex cover/partition numbers. We
1360: begin with the following theorem, which shows that one can compute
1361: efficiently a constant-factor approximation to the {\em convexivity}
1362: of~$S$:
1363:
1364: \begin{theorem}
1365: \label{thm:approx-convexity}
1366: Given a set $S$ of $n$ points in the plane, in $O(n\log n)$ time one
1367: can compute a polygonalization of $S$ having at least
1368: $\chi(S)/2$
1369: convex vertices, where $\chi(S)=n-\rho(S)$ is the convexivity of~$S$.
1370: \end{theorem}
1371:
1372: \begin{proof}
1373: The proof of Theorem~\ref{thm:reflex-upper-bnd} is constructive,
1374: producing a polygonalization of $S$ having at most $\ceil{n_I/2}\leq
1375: \ceil{n/2}$ reflex vertices, and thus at least $\floor{n/2}$ convex
1376: vertices (thereby giving a 2-approximation for convexivity). In
1377: order to obtain the stated time bound, we must implement the
1378: algorithm efficiently. This can be done using a data structure for
1379: dynamic convex hulls, under pure deletion (see
1380: Chazelle~\cite{c-clps-85} and Hershberger and
1381: Suri~\cite{hs-asdch-92}). At each main step of the algorithm, we
1382: identify the vertices along the chain $(p_{i+1},q,q_1,\ldots,b)$ by
1383: making repeated extreme-point queries in the convex hull data
1384: structure, and then delete the points $p_{i+1},q,q_1,q_2,\ldots$
1385: from the data structure, and repeat. The dynamic data structure
1386: supports deletions and queries in $O(\log n)$ time per operation,
1387: for an overall time bound of $O(n\log n)$.
1388: %
1389: \end{proof}
1390:
1391:
1392: \begin{theorem}
1393: \label{thm:convex-cover-approx}
1394: Given a set $S$ of $n$ points in the plane, the convex cover number,
1395: $\kappa_c(S)$, can be computed approximately, within a factor $O(\log
1396: n)$, in polynomial time.
1397: \end{theorem}
1398:
1399:
1400:
1401: \begin{proof}
1402: We use a greedy set cover heuristic. At each stage, we need to
1403: compute a largest convex subset among the remaining (uncovered)
1404: points of $S$. This can be done in polynomial time using the
1405: dynamic programming methods of~\cite{mrsw-ccppp-95}.
1406: \end{proof}
1407:
1408:
1409: \begin{theorem}
1410: \label{thm:disjoint-convex-cover-approx}
1411: Given a set $S$ of $n$ points in the plane, the convex
1412: partition number, $\kappa_p(S)$, can be computed approximately, within
1413: a factor $O(\log n)$, in polynomial time.
1414: \end{theorem}
1415:
1416: \begin{proof}
1417: Let $C^*=\{P_1,\ldots,P_{k^*}\}$ denote an optimal solution,
1418: consisting of $k^*=\kappa_p(S)$ disjoint convex polygons whose
1419: vertices are the set $S$.
1420:
1421: By Theorem~2 of~\cite{ers-ccsno-90}, we know that there are $k^*$
1422: pairwise-disjoint convex polygons $P_1',\ldots,P_{k^*}'$, having a
1423: total complexity of $O(k^*)$, with $P_i\subseteq P_i'$, for each
1424: $i$. Furthermore, the sides of the polygons $P_i'$ can be assumed
1425: to be segments lying on the $O(n^2)$ lines determined by pairs of
1426: points of $S$. Let ${\cal S}$ be the convex polygonal subdivision
1427: of $C=CH(P_1'\cup\cdots P_{k^*}')$ obtained by decomposing the
1428: region $C\setminus (P_1'\cup\cdots P_{k^*}')$ into convex polygons
1429: (e.g., a triangulation suffices). Then, ${\cal S}$ has total
1430: complexity $O(k^*)$, its vertices are among the set $V$ of $O(n^4)$
1431: vertices in the arrangement of $O(n^2)$ lines determined by $S$, and
1432: its faces are convex polygons. (Note that some faces of ${\cal S}$
1433: may be empty of points of $S$.)
1434:
1435: We now decompose each face of ${\cal S}$ into a set of vertical
1436: trapezoids by erecting vertical cuts through the vertices of each
1437: face, within each face. (Some of these trapezoids may be triangles,
1438: which we can consider to be degenerate trapezoids.) Finally, for
1439: each such trapezoid $\tau$ we decompose it using vertical cuts into
1440: $O(\log n^4)=O(\log n)$ {\em canonical trapezoids}, whose
1441: $x$-projection is one of the $O(n^4)$ canonical $x$-intervals
1442: determined by a segment tree on $V$. The resulting canonical
1443: trapezoidalization, ${\cal T}$, has $O(k^*\log n)$ faces, each of
1444: which is a canonical trapezoid. An important property of ${\cal T}$
1445: is that it has the following binary space partition property: For
1446: any canonical trapezoid, $\tau$, the subdivision of $\tau$ induced
1447: by ${\cal T}$ is such that either (a) there exists an edge of ${\cal
1448: T}$ that cuts $\tau$ in two, extending from its left side to its
1449: right side, or (b) the vertical cut that splits $\tau$ into two
1450: canonical subtrapezoids lies entirely on the edge set of ${\cal T}$.
1451: This property allows us to optimize recursively using dynamic
1452: programming, in much the same way as was done in
1453: \cite{as-sagp-98,m-aagsp-93} for problems involving optimal
1454: separation and surface approximation.
1455:
1456: In particular, for any canonical trapezoid, $\tau$, we desire to
1457: compute the quantity $f(\tau)$, defined to be the minimum number of
1458: faces in a partitioning of $\tau$ into canonical trapezoids, such
1459: that within each face of the partitioning, the subset of points of
1460: $S$ within the face is in convex position. (The empty set is
1461: considered trivially to be in convex position.) Then $f(\tau)$
1462: obeys a recursion,
1463: %
1464: $$f(\tau)=\min\{\min_{\ell}\{f(\tau_\ell^+)+f(\tau_\ell^-)\},
1465: f(\tau_{left})+f(\tau_{right})\},$$
1466: %
1467: where the minimization over $\ell$ considers all choices of lines
1468: $\ell$, intersecting $\tau$ on both of its vertical sides,
1469: determined by two vertices of $V$; $\tau_\ell^+$ (resp.,
1470: $\tau_\ell^-$) denotes the portion of $\tau$ lying above (resp.,
1471: below) the line $\ell$. We have used $\tau_{left}$ (resp.,
1472: $\tau_{right}$) to indicate the canonical trapezoid obtained by
1473: splitting $\tau$ by a vertical line at the $x$-median value (among
1474: the $x$-coordinates of $V$ that lie in the vertical slab defined
1475: by~$\tau$). We leave it to the reader to write the boundary
1476: conditions of the recursion, which is straightforward.
1477:
1478: Our algorithm gives us a minimum-cardinality partition of $S$ into a
1479: disjoint set, $C'$, of (empty) convex subsets whose $x$-projections
1480: are canonical intervals. Since the optimal solution, $C^*$, can be
1481: converted into at most $k^*\cdot O(\log n)$ such convex sets, we
1482: know we have obtained an $O(\log n)$-approximate solution to the
1483: disjoint convex partition problem.
1484: \end{proof}
1485:
1486:
1487:
1488: \begin{corollary}
1489: \label{cor:reflexivity-approx}
1490: Given a set $S$ of $n$ points in the plane, its Steiner reflexivity,
1491: $\rho'(S)$, can be computed approximately, within a factor $O(\log
1492: n)$, in polynomial time.
1493: \end{corollary}
1494:
1495:
1496:
1497: \begin{proof}
1498: Let $P^*$ denote an optimal solution, a simple polygon having
1499: $\rho'(S)$ reflex vertices. Then, we know that $P^*$ can be
1500: decomposed into at most $\rho'(S)+1$ convex polygons, each of which
1501: corresponds to a subset of $S$. This gives us a partition of $S$
1502: into at most $\rho'(S)+1$ disjoint convex sets; thus,
1503: $\kappa_p(S)\leq \rho'(S)+1$. By
1504: Theorem~\ref{thm:disjoint-convex-cover-approx}, we can compute a
1505: set, $C$, of $k\leq O(\log n)\cdot \kappa_p(S)$ disjoint convex
1506: sets. We can polygonalize $S$ by ``merging'' these $k$ polygons of
1507: $C$, using a doubling of a spanning tree on $C$. The important
1508: property of the embedding of the spanning tree is that it consists
1509: of ($k-1$) line segment bridges (with endpoints on the boundaries of
1510: polygons $C$) that are pairwise non-crossing and do not cross any of
1511: the polygons $C$. (One way to determine such a tree is to select one
1512: point interior to each polygon of $C$, compute a minimum spanning
1513: tree of these $k$ points, and then utilize the portions of the line
1514: segments that constitute the tree that lie outside of the polygons
1515: $C$ to be the set of $k-1$ bridging segments.) A simple
1516: polygonalization is obtained by traversing the boundary of the union
1517: of the polygons $C$ and the $k-1$ bridging segments, while slightly
1518: perturbing the doubled bridge segments. Since each bridge segment
1519: is responsible for creating at most 4 new (Steiner) points, this
1520: results in a polygon, with at most $4(k-1)$ Steiner points, each of
1521: which may be reflex. (All other vertices in the polygonalization
1522: are convex.) Thus, we obtain a polygonalization with at most
1523: $4(k-1)\leq O(\log n)\cdot \kappa_p(S)\leq O(\log n)\cdot \rho'(S)$
1524: reflex vertices.
1525: \end{proof}
1526:
1527:
1528: For small values of $r$, we have devised particularly efficient
1529: algorithms that check if $\rho(S)\leq r$ and, if so, produce a witness
1530: polygonalization having at most $r$ vertices. Of course, the case
1531: $r=0$ is trivial, since that is equivalent to testing if $S$ lies in
1532: convex position (which is readily done in $O(n\log n)$ time, which is
1533: worst-case optimal). It is not surprising that for any
1534: fixed $r$ one can obtain an $n^{O(r)}$ algorithm: enumerate
1535: over all combinatorially distinct (with respect to $S$) convex subdivisions
1536: of $\textrm{CH}(S)$ into $O(r)$ convex faces and test that the subsets of $S$
1537: within each face are in convex position, and then check all
1538: possible ways to order these $O(r)$ convex chains
1539: to form a circuit that may form a simple polygon.
1540: The factor in front of $r$ in the exponent, however, is not
1541: so trivial to reduce. In particular, the straightforward method applied
1542: to the case $r=1$ gives $O(n^5)$ time. With a more careful analysis
1543: of the cases $r=1,2$, we obtain the next two theorems.
1544:
1545: \begin{theorem}
1546: \label{thm:small-reflexivity-1}
1547: Given a set $S$ of $n$ points in the plane, in $O(n\log n)$ time one
1548: can determine if $\rho(S)=1$, and, if so, produce a witness
1549: polygonalization. Further, $\Omega(n\log n)$ is a lower bound on the
1550: time required to determine if $\rho(S)=1$.
1551: \end{theorem}
1552:
1553:
1554: \begin{proof}
1555: First notice that if a point set $S$ is polygonalized with exactly 1 reflex
1556: vertex, then (a) the two supporting lines from the endpoints of the lid of
1557: the pocket to the second convex layer of $S$ are supported
1558: by the same point $p$ of the layer, which is the reflex vertex of the
1559: polygonalization, and (b) the vertices of the pocket appear in
1560: angular order around $p$. The upper bound involves computing the convex
1561: hull and the second layer of the onion (the entire onion can be computed
1562: in time $O(n\log n)$), and then performing a careful case
1563: analysis for how the single pocket must be.
1564:
1565: In fact, if the second convex layer is empty, or has 1 or 2
1566: points, the solution is trivial. If the second convex layer has three
1567: points or has all the internal points, then for each edge $e$ of the
1568: convex hull, trace the supporting lines from its endpoints to the second
1569: layer. In the cases where the two tangents are supported by the same
1570: point $p$, check whether or not the angular order of the interior points
1571: gives a pocket with lid $e$ and only one reflex vertex $p$. The cost of
1572: this step is $O(n\log n)$: if the layer is a triangle, computing the
1573: supporting lines can be done in constant time, and the complexity comes
1574: from sorting the interior points around the vertex $p$ of the
1575: triangle; if the layer has all the interior points, then the sorted
1576: order is given, and the complexity comes from the computation of the
1577: supporting lines (in fact, the supporting lines can be computed in
1578: overall $O(n)$ time by a ``rotating calipers''-like technique). In all
1579: the remaining cases, the point set cannot be polygonalized with one reflex
1580: vertex.
1581:
1582: The lower bound follows from convexity testing: determining if a set
1583: of $n$ points is in convex position. Given a set $S$ of $n$ points,
1584: we compute (in $O(n)$ time) one edge, $e=v_1v_2$, of the convex hull
1585: of $S$. We then determine (in $O(n)$ time) the point $v_3\in S$
1586: furthest from the line through $v_1$ and $v_2$; thus, $v_3$ is also
1587: a vertex of $\textrm{CH}(S)$.
1588: Next we let $p_1\not\in S$ be a point within $\Delta v_1v_2v_3$ that
1589: is closer to edge $v_1v_2$ than is any point of $S$. We also select
1590: points $p_2$ and $p_3$ within $\Delta p_1v_1v_2$ in such a way that
1591: $v_3$ lies within the convex cone of apex $p_3$ defined by the rays
1592: $\vecc{p_3p_1}$ and $\vecc{p_3p_2}$ and that $v_1$ lies within the
1593: convex cone of apex $p_2$ defined by the rays $\vecc{p_2p_1}$ and
1594: $\vecc{p_2p_3}$. (Points $p_1,p_2,p_3$ can be determined in $O(n)$
1595: time.) Refer to Figure~\ref{fig:lower-bnd-rho1}. Then,
1596: $\vecc{p_3p_1}$ and $\vecc{p_3p_2}$ intersect distinct
1597: edges of $\textrm{CH}(S)$, as do $\vecc{p_2p_1}$ and $\vecc{p_2p_3}$, while
1598: $\vecc{p_1p_2}$ and $\vecc{p_1p_3}$ both intersect the edge $v_1v_2$
1599: of $\textrm{CH}(S)$. This implies that the only way that a polygonalization
1600: of $S'=S\cup\{p_1,p_2,p_3\}$ can have only a single reflex vertex is
1601: if that reflex vertex is $p_1$ and the corresponding pocket has lid
1602: $v_1v_2$ and vertices $p_1,p_2,p_3$ (with $p_2$ and $p_3$ both being
1603: convex in the polygonalization). Thus, the only way to have
1604: $\rho(S')=1$ is if the points $S$ are in convex position. We
1605: conclude that determining if $\rho(S')=1$ is equivalent to solving
1606: the convex position problem on the input points~$S$.
1607: \end{proof}
1608:
1609:
1610: \begin{figure}
1611: \centerline{\psfig{file=lower-bnd-rho1.eps,height=1.5in}}
1612: \caption{Proof of the $\Omega(n\log n)$ lower bound
1613: for determining if $\rho(S)=1$.}
1614: \label{fig:lower-bnd-rho1}
1615: \end{figure}
1616:
1617:
1618: \begin{theorem}
1619: \label{thm:small-reflexivity-2}
1620: Given a set $S$ of $n$ points in the plane, in $O(n^3\log n)$ time one
1621: can determine if $\rho(S)=2$, and, if so, produce a witness
1622: polygonalization.
1623: \end{theorem}
1624:
1625:
1626: \begin{proof}
1627:
1628: We distinguish two cases according to whether or not the two
1629: reflex vertices belong to the same pocket.
1630:
1631: {\bf Two pockets:}
1632: Assume that it is possible to polygonalize $S$ with 2 reflex vertices,
1633: $p$ and $q$, each one in a different pocket.
1634: Since each pocket only has one reflex vertex, its convex hull
1635: (including the lid) is a triangle. We distinguish three
1636: subcases: (i) the two triangles lie entirely on the same side of the
1637: line $pq$, (ii) the two triangles lie entirely on different sides of
1638: the line $pq$, and (iii) at least one of the triangles intersects the
1639: line~$pq$.
1640:
1641: In the first subcase, since all of the interior points lie on one side of
1642: the line $pq$, the segment $pq$ is an edge of the second convex layer
1643: of $S$. In addition, the vertices of the pocket containing $p$
1644: (resp. $q$) appear in angular order about $p$ (resp. $q$). This gives
1645: a possible algorithm to detect whether such a polygonalization is possible
1646: for $S$: For each edge $pq$ of the second convex layer of $S$,
1647: explore all of the points of $S$ in angular order around $p$, starting on
1648: the side of $pq$ that does not contain any interior point. Once the first
1649: interior point is found, we have entered the possible pocket of $p$.
1650: Check the convexity of all (but one) of the interior points found
1651: before the next external point, which will be the endpoint of the lid
1652: of the pocket. Proceed symmetrically from $q$ (if the angular order
1653: around $p$ was checked clockwise, the order around $q$ must be
1654: checked counter-clockwise). End by making sure that no interior
1655: points are left unexplored. Since the second convex layer of $S$ has
1656: $O(n)$ edges, and the checking for each one of them takes linear time,
1657: this case is checked in overall $O(n^2)$ time.
1658:
1659: In the second subcase, the segment $pq$ may not be an edge of the
1660: second convex layer, making the previous algorithm impossible
1661: to apply. On the other hand though, all of the vertices of the
1662: polygonalization lying on one side of the line $pq$ are angularly sorted
1663: about $p$, while all of those lying on the other side are angularly sorted
1664: about $q$. This gives an algorithm to detect whether such a
1665: polygonalization is possible for $S$. In a first stage we
1666: construct a data structure as follows. For each interior point $p$ and
1667: for each oriented line $\ell$ through $p$, our structure will store
1668: the following information: (a) the points lying to the left of
1669: $\ell$, angularly sorted from $p$, (b) a label indicating whether the
1670: angular order produces a correct polygonalization to the left
1671: of $\ell$, and (c) in the affirmative, a pointer to the first
1672: interior point $q$ that $\ell$ will hit when rotated clockwise
1673: around $p$. This structure can be built in $O(n^2)$ time:
1674: for each point $p$, it can be initialized at any arbitrary line
1675: through $p$ in $O(n)$ time, and then all lines through $p$ can be
1676: explored by rotation around $p$. Every time that a new point
1677: is found, it is added/eliminated at one end of the ordered list of
1678: points to the left of $\ell$, checking for convexity of at most one
1679: vertex (notice that the actualization of the pointer $q$ can be done
1680: in amortized $O(n)$ time per point $p$).
1681: The second phase of the algorithm is straightforward. Explore
1682: all of the pairs $(p,\ell)$ having a satisfactory left
1683: polygonalization. For each one of them, a pointer indicates its possible
1684: complementary pair $(q,-\ell)$. Checking whether or not the two
1685: partial polygonalizations connect properly can be done in constant
1686: time. Hence, this case can be checked in overall $O(n^2)$ time.
1687:
1688: Finally, in the third subcase, none of the previous good properties
1689: apply ($pq$ is not necessarily an edge of the second convex
1690: layer of $S$, and the polygonalization may not be in angular order
1691: around $p$ or $q$ on one side of the line $pq$), but there is
1692: at least one side of the line $pq$ where the polygonalization appears
1693: in angular order both around $p$ and $q$. This gives a possible
1694: algorithm to detect whether such a polygonalization is possible for
1695: $S$. Consider all pairs of interior points, $(p,q)$. Angularly check
1696: around $p$ or $q$ whether all of the points on one side of the line
1697: $pq$ form a convex chain. If so, keep turning around $p$ and
1698: around $q$ separately and in opposite senses on the other
1699: halfplane, until the two possible pockets are found. The
1700: remaining chain between $p$ and $q$ can be checked from any of the
1701: two points. Since we perform linear time work for each pair of
1702: interior points, this case is checked in overall $O(n^3)$ time.
1703:
1704: {\bf One pocket:}
1705: Assume that it is possible to polygonalize $S$ with 2 reflex vertices,
1706: $p$ and $q$, both belonging to the same pocket, with lid $ab$.
1707: The pocket is formed by three convex chains: $ap$, $pq$ and
1708: $qb$. We will distinguish two subcases, depending on whether or not the
1709: chains $ap$ and $qb$ are separable by a line through
1710: the point $p$. In the first subcase, the vertices of the chain $ap$
1711: appear in angular order around $p$ before finding any point of the
1712: remaining chains. In the second subcase, since the chains $ap$ and $qb$
1713: are convex, they are linearly separable by a line defined by one point
1714: $l\in ap$ and one point $r\in qb$. Such a line must intersect the lid
1715: of the pocket.
1716: In addition, we will distinguish the subcase in which the convex hull of
1717: the pocket, including the lid endpoints $a$ and $b$ is a
1718: quadrilateral from the case in which it is a triangle. In the fist subcase,
1719: the segment $pq$ is an edge of the second convex layer of $S$, while
1720: in the second subcase it is not. These observations give an
1721: algorithm to detect whether such a polygonalization is possible for~$S$.
1722:
1723: The subcase {\em separable-quadrilateral} can be detected in $O(n^2)$ time.
1724: For each edge $pq$ of the second convex layer of $S$, compute the
1725: lid $ab$ of the possible pocket, if it exists, by intersecting the
1726: convex hull of $S$ with the prolongations of the edges of the second
1727: layer incident in $p$ and $q$. From $p$, explore in angular order the
1728: interior points until the first left turn is reached. Then
1729: check whether the remaining interior points behave properly when
1730: explored in angular order from~$q$.
1731:
1732: The subcase {\em separable-triangle} can be detected in $O(n^2\log n)$ time.
1733: For each edge $ab$ of the convex hull, find the reflex vertex $p$
1734: of the possible pocket, if it exists, by computing the supporting
1735: lines from $a$ and $b$ to the second convex layer of $S$.
1736: From $p$, explore in angular order the interior points until the
1737: first left turn is reached. Then, check whether the remaining
1738: interior points, together with $p$ and $b$, form a set $S'$ such
1739: that $\rho(S')=1$. In this case we do not have a candidate $q$ to
1740: help us, and the complexity of this procedure comes from
1741: Theorem~\ref{thm:small-reflexivity-1}.
1742:
1743: The subcase {\em not-separable-quadrilateral} can be detected in
1744: $O(n^3)$ time. For each pair $(l,r)$ of points of $S$, intersect
1745: the line $lr$ with the convex hull of $S$ to compute the two
1746: possible lids. Let $ab$ be a possible lid for $lr$; we will call $s$
1747: the opposite intersection point of $lr$ and the convex hull of $S$.
1748: Compute the supporting lines from $a$ and $b$ to the second convex
1749: layer to obtain the candidate points $p$ and $q$ associated with the
1750: lid. Explore all of the points to the left of $lr$, together with
1751: $s$ and $l$ (resp. $r$), in angular order around $p$. Analogously,
1752: do this for the points to the right, around $q$. If a suitable
1753: polygonalization is possible in each halfplane, check the connection
1754: between them. For each of the $O(n^2)$ pairs of points $lr$, we have
1755: performed linear time work.
1756:
1757: The subcase {\em not-separable-triangle} can be detected in
1758: $O(n^3\log n)$ time. The only difference from the previous subcase
1759: is that, to the right of the line $lr$ we do not have a point $q$ to
1760: be used to perform the checking in angular order. But we can check
1761: whether the interior points to the right of $lr$, together with $b$
1762: and $s$, form a set $S'$ such that $\rho(S')=1$. The complexity of
1763: this procedure ($O(n\log n)$) comes from
1764: Theorem~\ref{thm:small-reflexivity-1}.
1765: \end{proof}
1766:
1767: \section{Inflectionality of Point Sets}
1768: \label{sec:inflection}
1769:
1770: Consider a clockwise traversal of a polygonalization, $P$, of $S$.
1771: Then, convex (resp., reflex) vertices of $P$ correspond to {\em right}
1772: (resp., {\em left}) turns. In computing the reflexivity of $S$ we
1773: desire a polygonalization that minimizes the number of left turns. In
1774: this section we consider the related problem in which we want to
1775: minimize the number of {\em changes} between left-turning and
1776: right-turning during a traversal that starts (and ends) at a point
1777: interior to an edge of $P$. We define the minimum number of such
1778: transitions between left and right turns to be the {\em
1779: inflectionality}, $\phi(S)$, of $S$, where the minimum is taken over
1780: all polygonalizations of $S$.
1781: %
1782: (An alternative definition is based on
1783: defining an {\em inflection edge} of $P$ to be an edge connecting a
1784: reflex vertex and a convex vertex; the inflectionality is the minimum
1785: number of inflection edges in any polygonalization of $S$.)
1786: %
1787: Clearly, $\phi(S)$ must be an even integer; it is zero if and only if $S$
1788: is in convex position. Somewhat surprisingly, it turns out that
1789: $\phi(S)$ can only take on the values 0 or~2:
1790:
1791: \begin{theorem}
1792: \label{th:inflex}
1793: For any finite set $S$ of $n$ points in the plane, $\phi(S)\in
1794: \{0,2\}$, with $\phi(S)=0$ precisely when $S$ is in convex position.
1795: In $O(n\log n)$ time, one can determine $\phi(S)$ as well as a
1796: polygonalization that achieves inflectionality~$\phi(S)$.
1797: \end{theorem}
1798:
1799: \begin{proof}
1800: If $S$ is in convex position, then trivially $\phi(S)=0$. Thus,
1801: assume that $S$ is not in convex position. Then $\phi(S)\neq 0$, so
1802: $\phi(S)\geq 2$. We claim that $\phi(S)=2$. For simplicity, we
1803: assume that $S$ is in general position.
1804:
1805: Consider the $\ell$ nested convex polygons, $C_1,C_2,\ldots,C_\ell$,
1806: whose boundaries constitute the $\ell$ layers (the ``onion'') of the
1807: set $S$; these can be computed in time $O(n\log
1808: n)$~\cite{c-clps-85}.
1809:
1810: We construct a ``spiral'' polygonalization of $S$ based on taking
1811: one edge, $ab$, of $C_1$, and replacing it with a pair of
1812: right-turning chains from $a$ to $p\in S\cap C_\ell$ and from $b$ to
1813: $p$. The two chains exactly cover the points of $S$ on layers
1814: $C_2,\ldots,C_\ell$. A constructive proof that such a
1815: polygonalization exists is based on the following claim:
1816:
1817: \begin{claim}
1818: For any $1\leq m<\ell$ and any pair, $a,b\in S$, of
1819: vertices of $C_m$, there exist two purely right-turning chains,
1820: $\gamma_a=(a,u_1,u_2,\ldots,u_i,p)$ and
1821: $\gamma_b=(b,v_1,v_2,\ldots,v_j,p)$, such that the points of $S$
1822: interior to $C_m$ are precisely the set $\{u_1,u_2,\ldots,u_i, p,
1823: v_i,v_2,\ldots,v_j\}$.
1824: \end{claim}
1825:
1826: \begin{proof}[Proof of Claim]
1827: We prove the claim by induction on $m$. If $m=\ell-1$,
1828: the claim follows easily, by a case analysis
1829: as illustrated in Figure~\ref{fig:easy-case}.
1830:
1831: \begin{figure}[hbtp]
1832: \begin{center}
1833: \epsfxsize=.85\textwidth
1834: \ \epsfbox{easy-case.eps}
1835: \caption{Simple case in the inductive proof: $m=\ell-1$. There are
1836: four subcases, left to right: (i)
1837: $C_\ell$ is a single point; (ii) $C_\ell$ is a line segment
1838: determined by two points of $S$; (iii) $C_\ell$ is a triangle
1839: determined by three points of $S$; or (iv) $C_\ell$ is a convex polygon
1840: whose boundary contains four or more points of $S$.}
1841: \label{fig:easy-case}
1842: \end{center}
1843: \end{figure}
1844:
1845:
1846: Assume that the claim holds for $m\geq k+1$ and consider the case
1847: $m=k$. If $C_{k+1}$ is either a single vertex or a line segment
1848: (which can only happen if $k+1=\ell$), the claim trivially follows;
1849: thus, we assume that $C_{k+1}$ has at least three vertices. We
1850: let $u_1$ be the vertex of $C_{k+1}$ that is a {\em left tangent}
1851: vertex with respect to $a$ (meaning that $C_{k+1}$ lies in the closed
1852: halfplane to the right of the oriented line $au_1$); we let $v$ be the
1853: left tangent vertex of $C_{k+1}$ with respect to $b$.
1854: Refer to Figure~\ref{fig:inflectionality-proof2}.
1855: If $v=u_1$, we
1856: define $v_1$ to be the vertex of $C_{k+1}$ that is the
1857: counter-clockwise neighbor of $u_1$; otherwise, we let $v_1=v$. Let
1858: $a'$ be the counter-clockwise neighbor of $v_1$. Let $b'$ be the
1859: counter-clockwise neighbor of $u_1$. (Thus, $b'$ may be the same
1860: point as $v_1$.) By the induction hypothesis, we know that there
1861: exist right-turning chains, $\gamma_{a'}$ and $\gamma_{b'}$, starting
1862: from the points $a'$ and $b'$, spiraling inwards to a point $p$
1863: interior to $C_{k+1}$. Then we construct $\gamma_a$ to be the chain
1864: from $a$ to $u_1$, around the boundary of $C_{k+1}$ clockwise to $a'$,
1865: and then along the chain $\gamma_{a'}$. Similarly, we construct
1866: $\gamma_b$ to be the chain from $b$ to $v_1$, around the boundary of
1867: $C_{k+1}$ clockwise to $b'$, and then along the chain $\gamma_{b'}$.
1868: \end{proof}
1869:
1870:
1871:
1872: \begin{figure}[hbtp]
1873: \centerline{\hfill\psfig{file=inflectionality-proof2.eps, width=0.25\textwidth}\hfill
1874: \psfig{file=inflectionality.eps, width=0.25\textwidth}\hfill}
1875: % \begin{center}
1876: % \epsfxsize=.35\textwidth
1877: %\ \epsfbox{inflectionality-proof.eps}
1878: \caption{Left: Constructing the spiraling chains $\gamma_a$ and $\gamma_b$.
1879: Right: An example of the resulting spiral polygonalization.}
1880: \label{fig:inflectionality-proof2}
1881: \end{figure}
1882:
1883: The proof of the above claim is constructive; the
1884: required chains are readily obtained in $O(n\log n)$ time,
1885: given the convex layers. This concludes the proof of the theorem.
1886: \end{proof}
1887:
1888: \section{Conclusion and Future Work}
1889:
1890:
1891: We have introduced a new class of combinatorial and algorithmic
1892: problems related to simple polygonalizations of a planar point set.
1893: We have given lower and upper combinatorial bounds, settled
1894: the complexity status of some problem variants, and given
1895: some efficient algorithms, both exact algorithms and
1896: approximation algorithms.
1897:
1898: There are a number of interesting open problems that our work
1899: suggests. First, there are the four specific conjectures mentioned
1900: throughout the paper; these represent to us the most outstanding open
1901: questions raised by our work. In addition, we mention three other areas
1902: of future study:
1903: \begin{enumerate}
1904: \item Instead of minimizing the number of reflex vertices, can we
1905: compute a polygonalization of $S$ that minimizes the sum of the {\em
1906: turn angles} at reflex vertices? (The turn angle at a reflex
1907: vertex having interior angle $\theta>\pi$ is defined to be
1908: $\theta-\pi$.) This question was posed to us by Ulrik Brandes. It
1909: may capture a notion of goodness of a polygonalization that is
1910: useful for curve reconstruction. The problem differs from the
1911: angular metric TSP (\cite{ackms-amtsp-97}) in that the only turn
1912: angles contributing to the objective function are those of reflex
1913: vertices.
1914: \item What can be said about the generalization of the reflexivity
1915: problem to polyhedral surfaces in three dimensions? This may be of
1916: particular interest in the context of surface reconstruction.
1917: \item There are a number of natural measures of ``near convexity'' for
1918: point sets. It would be interesting to do a systematic study of how
1919: the various measures compare.
1920: \end{enumerate}
1921:
1922: \subsection*{Acknowledgments}
1923:
1924: We thank Adrian Dumitrescu for valuable input on this work, including
1925: a software tool for calculating reflexivity of point sets. We thank
1926: Oswin Aichholzer for applying his software to search all
1927: combinatorially distinct small point sets. This collaborative
1928: research between the Universitat Polit\`ecnica de Catalunya and Stony
1929: Brook University was made possible by a grant from the Joint
1930: Commission USA-Spain for Scientific and Technological Cooperation
1931: Project 98191. E. Arkin acknowledges additional support from the
1932: National Science Foundation (CCR-9732221, CCR-0098172). S.\ Fekete
1933: acknowledges travel support by the Hermann-Minkowski-Minerva Center
1934: for Geometry at Tel Aviv University. F.\ Hurtado, M.\ Noy, and V.\
1935: Sacrist\'an acknowledge support from CUR Gen. Cat. 1999SGR00356, and
1936: Proyecto DGES-MEC PB98-0933. J.~Mitchell acknowledges support from
1937: NSF (CCR-9732221, CCR-0098172) and NASA Ames Research Center
1938: (NAG2-1325).
1939:
1940:
1941: \nocite{ackms-amtsp-97,u-ppsdc-99,u-opcp-96,u-ppscp-97}
1942: \nocite{es-sepeg-60,es-cpg-35,deo-secp-90,gnt-lbncf-95}
1943:
1944: \bibliographystyle{abbrv}
1945:
1946: \begin{thebibliography}{10}
1947:
1948: \bibitem{a-rsoas-92}
1949: P.~K. Agarwal.
1950: \newblock Ray shooting and other applications of spanning trees with low
1951: stabbing number.
1952: \newblock {\em SIAM J. Comput.}, 21:540--570, 1992.
1953:
1954: \bibitem{afg-pdecm-02}
1955: P.~K. Agarwal, E. Flato, and D. Halperin.
1956: Polygon decomposition for efficient
1957: construction of Minkowski sums.
1958: \newblock {\em Comput. Geom. Theory Appl.}, 21:39--61, 2002.
1959:
1960: \bibitem{as-sagp-98}
1961: P.~K. Agarwal and S.~Suri.
1962: \newblock Surface approximation and geometric partitions.
1963: \newblock {\em SIAM J. Comput.}, 27:1016--1035, 1998.
1964:
1965: \bibitem{ackms-amtsp-97}
1966: A.~Aggarwal, D.~Coppersmith, S.~Khanna, R.~Motwani, and B.~Schieber.
1967: \newblock The angular-metric traveling salesman problem.
1968: \newblock In {\em Proceedings of the Eighth Annual ACM-SIAM Symposium on
1969: Discrete Algorithms}, pages 221--229, Jan. 1997.
1970:
1971: \bibitem{aak-eotsp-01}
1972: O.~Aichholzer, F.~Aurenhammer, and H. Krasser.
1973: \newblock Enumerating order types for small point sets with applications.
1974: \newblock In {\em Proc. 17th Annu. ACM Sympos. Comput. Geom.}, 2001, pp.~11--18.
1975:
1976: \bibitem{ak-psotd-01}
1977: O. Aichholzer and H. Krasser.
1978: \newblock The point set order type data base: a collection of applications
1979: and results.
1980: \newblock In {\em Proc. 13th Canad. Conf. Comput.
1981: Geom.}, Waterloo, Canada, 2001, pp.~17--20.
1982:
1983: \bibitem{AK}
1984: O.~Aichholzer and H.~Krasser.
1985: \newblock Personal communication, 2001.
1986:
1987: \bibitem{abe-cbscc-98}
1988: N.~Amenta, M.~Bern, and D.~Eppstein.
1989: \newblock The crust and the $\beta$-skeleton: Combinatorial curve
1990: reconstruction.
1991: \newblock {\em Graphical Models and Image Processing}, 60:125--135, 1998.
1992:
1993: \bibitem{ah-hgrp-96}
1994: T.~Auer and M.~Held.
1995: \newblock Heuristics for the generation of random polygons.
1996: \newblock In {\em Proc. 8th Canad. Conf. Comput. Geom.}, pages 38--43, 1996.
1997:
1998: \bibitem{c-cgc-79}
1999: B.~Chazelle.
2000: \newblock {\em Computational geometry and convexity}.
2001: \newblock Ph.{D}. thesis, Dept. Comput. Sci., Yale Univ., New Haven, CT, 1979.
2002: \newblock Carnegie-Mellon Univ. Report CS-80-150.
2003:
2004: \bibitem{c-clps-85}
2005: B.~Chazelle.
2006: \newblock On the convex layers of a planar set.
2007: \newblock {\em IEEE Trans. Inform. Theory}, IT-31(4):509--517, July 1985.
2008:
2009: \bibitem{dk-spacr-99}
2010: T.~K. Dey and P.~Kumar.
2011: \newblock A simple provable algorithm for curve reconstruction.
2012: \newblock In {\em Proc. 10th ACM-SIAM Sympos. Discrete Algorithms}, pages
2013: 893--894, Jan. 1999.
2014:
2015: \bibitem{dmr-crcdgr-99}
2016: T.~K. Dey, K.~Mehlhorn, and E.~A. Ramos.
2017: \newblock Curve reconstruction: {C}onnecting dots with good reason.
2018: \newblock In {\em Proc. 15th Annu. ACM Sympos. Comput. Geom.}, pages 197--206,
2019: 1999.
2020:
2021: \bibitem{deo-secp-90}
2022: D.~P. Dobkin, H.~Edelsbrunner, and M.~H. Overmars.
2023: \newblock Searching for empty convex polygons.
2024: \newblock {\em Algorithmica}, 5:561--571, 1990.
2025:
2026: \bibitem{ers-ccsno-90}
2027: H.~Edelsbrunner, A.~D. Robison, and X.~Shen.
2028: \newblock Covering convex sets with non-overlapping polygons.
2029: \newblock {\em Discrete Math.}, 81:153--164, 1990.
2030:
2031: \bibitem{es-cpg-35}
2032: P.~Erd{\H o}s and G.~Szekeres.
2033: \newblock A combinatorial problem in geometry.
2034: \newblock {\em Compositio Math.}, 2:463--470, 1935.
2035:
2036: \bibitem{es-sepeg-60}
2037: P.~Erd{\H o}s and G.~Szekeres.
2038: \newblock On some extremeum problem in geometry.
2039: \newblock {\em Ann. Univ. Sci. Budapest}, 3-4:53--62, 1960.
2040:
2041: \bibitem{e-webpage}
2042: J. Erickson.
2043: Generating random simple polygons.\\
2044: {\tt http://compgeom.cs.uiuc.edu/\~{}jeffe/open/randompoly.html}
2045:
2046: \bibitem{fw-artp-97}
2047: S.~P. Fekete and G.~J. Woeginger.
2048: \newblock Angle-restricted tours in the plane.
2049: \newblock {\em Comput. Geom. Theory Appl.}, 8(4):195--218, 1997.
2050:
2051: \bibitem{gnt-lbncf-95}
2052: A.~Garc{\'\i}a, M.~Noy, and J.~Tejel.
2053: \newblock Lower bounds for the number of crossing-free subgraphs of {$K_n$}.
2054: \newblock In {\em Proc. 7th Canad. Conf. Comput. Geom.}, pages 97--102, 1995.
2055:
2056: \bibitem{hs-asdch-92}
2057: J.~Hershberger and S.~Suri.
2058: \newblock Applications of a semi-dynamic convex hull algorithm.
2059: \newblock {\em BIT}, 32:249--267, 1992.
2060:
2061: \bibitem{hs-parss-95}
2062: J.~Hershberger and S.~Suri.
2063: \newblock A pedestrian approach to ray shooting: {Shoot} a ray, take a walk.
2064: \newblock {\em J. Algorithms}, 18:403--431, 1995.
2065:
2066: \bibitem{hm-ftprs-85}
2067: S.~Hertel and K.~Mehlhorn.
2068: \newblock Fast triangulation of the plane with respect to simple polygons.
2069: \newblock {\em Inform. Control}, 64:52--76, 1985.
2070:
2071: \bibitem{h-snec7g-83}
2072: J.~Horton.
2073: \newblock Sets with no empty convex 7-gons.
2074: \newblock {\em Canad. Math. Bull.}, 26:482--484, 1983.
2075:
2076: \bibitem{HRU}
2077: K.~Hosono, D.~Rappaport, and M.~Urabe.
2078: \newblock On convex decompositions of points.
2079: \newblock In {\em Proc. Japanese Conf. on Discr. Comp. Geom. (2000)}, volume
2080: 2098 of {\em Lecture Notes Comput. Sci.}, pages 149--155. Springer-Verlag,
2081: 2001.
2082:
2083: \bibitem{hu-ndcqp-01}
2084: K.~Hosono and M.~Urabe.
2085: \newblock On the number of disjoint convex quadrilaterals for a plannar point
2086: set.
2087: \newblock {\em Comp. Geom. Theory Appl.}, 20:97--104, 2001.
2088:
2089: \bibitem{hn-tvgrv-96}
2090: F.~Hurtado and M.~Noy.
2091: \newblock Triangulations, visibility graph and reflex vertices of a simple
2092: polygon.
2093: \newblock {\em Comput. Geom. Theory Appl.}, 6:355--369, 1996.
2094:
2095: \bibitem{k-pd-00}
2096: J.~M. Keil.
2097: \newblock Polygon decomposition.
2098: \newblock In J.-R. Sack and J.~Urrutia, editors, {\em Handbook of Computational
2099: Geometry}, pages 491--518. Elsevier Science Publishers B.V. North-Holland,
2100: Amsterdam, 2000.
2101:
2102: \bibitem{l-pftu-82}
2103: D.~Lichtenstein.
2104: \newblock Planar formulae and their uses.
2105: \newblock {\em SIAM J. Comput.}, 11(2):329--343, 1982.
2106:
2107: \bibitem{m-aagsp-93}
2108: J.~S.~B. Mitchell.
2109: \newblock Approximation algorithms for geometric separation problems.
2110: \newblock Technical report, Department of Applied Mathematics, SUNY Stony
2111: Brook, NY, July 1993.
2112:
2113: \bibitem{mrsw-ccppp-95}
2114: J.~S.~B. Mitchell, G.~Rote, G.~Sundaram, and G.~Woeginger.
2115: \newblock Counting convex polygons in planar point sets.
2116: \newblock {\em Inform. Process. Lett.}, 56:191--194, 1995.
2117:
2118: \bibitem{o-cgc-98}
2119: J.~O'Rourke.
2120: \newblock {\em Computational Geometry in {C}}.
2121: \newblock Cambridge University Press, 2nd edition, 1998.
2122:
2123: \bibitem{dcg19}
2124: J.~Pach, editor.
2125: \newblock {\em Special Issue Dedicated to Paul {Erd\"{o}s}}, volume~19 of {\em
2126: Discrete Comput. Geom.}
2127: \newblock 1998.
2128:
2129: \bibitem{RU}
2130: E.~Rivera-Campo and J.~Urrutia.
2131: \newblock Personal communication, 2001.
2132:
2133: \bibitem{u-opcp-96}
2134: M.~Urabe.
2135: \newblock On a partition into convex polygons.
2136: \newblock {\em Discrete Appl. Math.}, 64:179--191, 1996.
2137:
2138: \bibitem{u-ppscp-97}
2139: M.~Urabe.
2140: \newblock On a partition of point sets into convex polygons.
2141: \newblock In {\em Proc. 9th Canad. Conf. Comput. Geom.}, pages 21--24, 1997.
2142:
2143: \bibitem{u-ppsdc-99}
2144: M.~Urabe.
2145: \newblock Partitioning point sets into disjoint convex polytopes.
2146: \newblock {\em Comput. Geom. Theory Appl.}, 13:173--178, 1999.
2147:
2148: \bibitem{w-ggssn-93}
2149: E.~Welzl.
2150: \newblock Geometric graphs with small stabbing numbers: {Combinatorics} and
2151: applications.
2152: \newblock In {\em Proc. 9th Internat. Conf. Fund. Comput. Theory}, Lecture
2153: Notes Comput. Sci., Springer-Verlag, 1993.
2154:
2155: \bibitem{zssm-grpgv-96}
2156: C.~Zhu, G.~Sundaram, J.~Snoeyink, and J.~S.~B. Mitchell.
2157: \newblock Generating random polygons with given vertices.
2158: \newblock {\em Comput. Geom. Theory Appl.}, 6:277--290, 1996.
2159:
2160: \end{thebibliography}
2161:
2162:
2163:
2164: \end{document}
2165:
2166: