cs0210003/arch.tex
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: