Algorithms for Center and Tverberg Points - CS.Duke

Algorithms for Center and Tverberg Points
Pankaj K. Agarwal
Micha Sharir
Emo Welzl
September 18, 2006
Abstract
Given a set of points in , a point in is called center point of if every closed
halfspace whose bounding hyperplane passes through contains at least points from .
We present a near-quadratic algorithm for computing the center region, i.e., the set of all center
points, of a set of points in . This is nearly tight in the worst case since the center region
can have complexity.
We then consider sets of points in the plane which are the union of three disjoint sets
consisting respectively of red, blue, and green points. A point in is called a colored
Tverberg point of if there is a partition of into triples with one point of each color, so that
lies in all triangles spanned by these triples. We present a first polynomial-time algorithm for
recognizing whether a given point is a colored Tverberg point of such a -colored set .
1 Introduction
Given a set of points in ! and a point "$#%! , the depth of " with respect to is the minimum
number of points of contained in a closed halfspace whose bounding hyperplane passes through
" . The set of all points of depth & is called the depth- & region of . The region of points of depths at
least & , which we denote by '(*)+-, , can be written as .0/214365278:9<;*=?> , where @BADCFEG@HADC2)+-, is the
set of all closed halfspaces that contain at least I points from (for a proof see Lemma 2.1 below).
R
Note that 'KJ)+-,-EMLN:ODP)+-, , where LN:OQP)+-, denotes the convex hull of .
Work by P.A. and M.S. was supported by a grant from the U.S.-Israeli Binational Science Foundation. Work by P.A.
was also supported by NSF under grants CCR-00-86013 EIA-98-70724, EIA-99-72879, EIA-01-31905, and CCR-0204118. Work by M.S. was also supported by NSF Grants CCR-97-32101 and CCR-00-98246, by a grant from the Israel
Science Fund (for a Center of Excellence in Geometric Computing), and by the Hermann Minkowski–MINERVA Center
for Geometry at Tel Aviv University. A preliminary version of this paper has appeared in Proc. 20th ACM Annu. Sympos.
Comput.
Geom., 2004, pp. 61–67.
S
T Dept. Computer Science, Duke University, Durham, NC 27708-0129, USA. [email protected]
School of Computer Science, Tel Aviv University, Tel Aviv 69978, Israel, and Courant Inst. of Math. Sci., 251
Mercer
U Street, NYC, NY 10012, USA. [email protected]
Inst. Theoretische Informatik, ETH Zürich, CH-8092 Zürich, Switzerland. [email protected]
1
If IWVYX:[Z*)\X^]`_, , then any Xa]`_ halfspaces in @bADC have a point of in common, and
f h . That is, if jik&l]m_nVMX:[Z*)\Xo]m_, , or
thus Helly’s theorem (cf. [13, 18]) implies .c/d14365e>gEW
equivalently, if &^p`q\[Z*)\X6]r_,ts , the region '(u)+!, is nonempty (as was first observed by Rado [22]).
Points of depth at least qv[Z*)\Xw]M_,ts are called center points of , and the region 'yx{z2|}
~
which we know is nonempty—is called the center region of , denoted by '2)+-, .
Jt€ )+!, —
Figure 1. Sets of six points in the plane, with their center regions, the points of depth at least ‚ . Equivalently, these are
the intersections of all halfplanes containing at least ƒ points. (The meaning of the extra edges indicated will be explained
later.)
Relatively little progress has been made on the algorithmic issues related to center points.
Teng [25] showed that if X is part of the input, the problem of determining whether a given point
is a center point of is coNP-complete. Jadhav and Mukhopadhyay [14] gave a linear-time algorithm for computing a center point in „ . Matoušek [16] later developed an …†)vo‡ˆN2‰‹Š
[, -time
algorithm for computing the center region of a set of points in „ (see [8, Remark pg. 427] for
a possible improvement and Miller et al. [20] for an …Œ)v„, -time algorithm that computes all depth
regions). Naor and Sharir [21] gave an …†)v „Ž N:‡ˆ*‡ˆN2‰)v[,, algorithm for computing a center point in
-‘ ; very recently, Chan [8] supplied a randomized …†)vo‡ˆN2‰!o]’ “ J , algorithm for this problem in
. For computing the center region in ”‘ there is a naı̈ve cubic algorithm, that can be improved to
…†)v–• | „ ~y— , by running a & -level construction algorithm in the dual and computing the convex hull of
the obtained vertices; (this relies on an output-sensitive algorithm by [1] for computing the & -level,
|
and on a bound of …Œ)v • „ , on the complexity of a & -level in ‘ [24]). Clarkson et al. [10] proposed a simple algorithm for computing an approximate center point of a set of points in arbitrary
dimensions.
A variation of center points are so-called Tverberg points. Let ˜ be a positive integer.
 A partition
œž
of into ˜ disjoint subsets Jš™š›š›š›™yœ is called a Tverberg partition if .
LJ N:ODP)+ ,cE`
f h , and a
point lying in the intersection is called an ˜ -divisible point. Tverberg [26] proved that if Ÿ ¡ŸuV¢)\XF]
_,)v˜liM_, , then a Tverberg partition always exists; q£Ÿ ¡Ÿ Z*)\Xo]M_,ts -divisible points, which therefore
always exist, are called Tverberg points of . Subsequent to his original proof, several alternative
proofs have been proposed; see the book by Matoušek [18] and the survey paper by Kalai [15] for
a history of the problem. Note that any halfspace containing an ˜ -divisible point contains at least
˜ points of , so we get that every qv[Z*)\Xw]M_,ts -divisible point (i.e., Tverberg point) of is also a
center point of . For XcEG¤ and a multiple of ¥ , the converse is also true, i.e., every center point
of is also a Tverberg point of (i.e., )v[Zd¥:, -divisible), but it is not true for Xj¦G¥ [3]. Teng [25]
showed that if X is part of the input, then the problem of determining whether a given point is an
˜ -divisible point of is NP-complete. In fact no polynomial-time algorithm is known even if XaV§¤
is fixed. On the other hand, if X is fixed, a polynomial-time algorithm for finding a Tverberg point
2
} 
(with running time ©¨ «ª ) can be obtained by modifying Tverberg’s existence proof. For XcEm¤ and
a multiple of ¥ , a Tverberg point can be computed in linear time using the algorithm for computing
a center point [14], and we can determine in …Œ)vo‡ˆN2‰-[, time whether a point is a Tverberg point.
Bárány, Füredi and Lovász [5] suggested (and proved for X¬Em¤ ) a colored version of Tverberg’s
theorem, which was then established by Živaljević and Vrećica [28] in arbitrary dimensions. In
this version, the points of are colored by X0]­_ colors, and we require that each of the sets in the partition contain at least one point of each color. The planar case allowed a quantitative
improvement, provided by Bárány and Larman [4]. They showed that given a planar set , which
is the disjoint union of three sets ®0™£¯^™° consisting respectively of red points, blue points,
and green points (in general position), there exists a partition of into pairwise-disjoint  triples
zˆž
[Jš™š›š›š›™ z , where each triple consists of one point of each of ®0™£¯^™° , so that . J LN:ODP[)+ ,±E²
f h.
In fact, their argument is constructive and yields an …†)v´³, -time algorithm for computing such a
partition. However, no polynomial-time algorithm is known for determining whether a given point
is a colored Tverberg point of , for this planar setting. We remark that, unlike the uncolored case,
the set of colored Tverberg points can be a proper subset of the center region, and it does not even
have to be convex, as is illustrated in Figure 2.
yµ¶¶yµ ¶yµ¶yµ ¶yµ¶yµ ¶yµ¶yµ ¶µ¶µ
¸·y¸y· ¶yµ¶yµµ ¸·¸· ¶yµ¶yµµ ¶yµ¶yµµ ¹y¹y¶yµ¶yµµ ¹yºy¹ºy¶µ¶µµ ¹º¹º
¶y¶yµ ¶y¶yµ ¶y¶yµ ¶y¶yµ ¶¶µ
Figure 2. A non-convex region of colored Tverberg points in the plane, an example due to [12].
Our results. We present two main results in this paper. First, we describe, for a given set » of ¼
points in ½!¾ , an ¿†Àv¼Á£ÂyÃÄ -time1 algorithm for computing the center region ÅdÀ+»!Ä (cf. Section 2). In
fact, we show that for any Æ , Å«ÇQÀ+»!Ä has ¿ŒÀv¼ Á Ä complexity, and that it can be computed in ¿ŒÀv¼ Á£Âyà Ä
time. By performing a binary search, we can compute the nonempty region of maximum depth
in ¿†Àv¼ Á£ÂyÃ Ä time. We use the fact that the problem amounts to computing the convex hull of a
È
-level É of the arrangement dual to » of ¼ planes. Our approach is to first solve ¼ subproblems
on the respective planes in time ¿ŒÀv¼!ÊtÂyÃÄ per problem, and the challenge is to find an appropriate
approximation of the obvious structures in these planar arrangements (such as the intersection of
È
the -level with the plane, or the convex hull thereof), since each individual planar structure might
have prohibitively large complexity (albeit their combined complexity is only ¿†Àv¼ Á Ä ). We build
heavily on Matoušek’s algorithm [16] for computing the convex hull of a level of lines in ½ Á . As
1
The meaning of bounds of this form, is that they hold for any
on Ë , and generally tends to Î as ˍÏGÍ .
3
ËÌ%Í
, where the constant of proportionality depends
such, heavy algorithmic tools are used and we consider the method a more theoretical contribution
(although appropriate relaxations may lead to an effectively implementable procedure).
Next, given a set of ¥K points in „ , which is the disjoint union of three sets ® , ¯ , and °
consisting of points each, we present a polynomial-time algorithm to determine whether a point
Ð is a colored Tverberg point of (cf. Section 3). The running time of the algorithm is …Œ)v JJ , . As
far as we are aware, this is the first polynomial-time algorithm for this problem.
2 The Center Region
We first make sure that the problem of computing the the center region, or .c/d14365e > in general,
is a finite discrete problem. Then we discuss the structure of the center region in the dual, before
we proceed to the description of the algorithm for its construction. Most of the structural properties
hold in any dimension, and we present them for arbitrary X , before restricting ourselves to X0Em¥ for
the algorithmic construction.
2.1 The center region and Ñ -facets
We assume that Ÿ ¡Ÿ‹¦§Xw]m_ and that is in general position, i.e., no Xw]M_ points lie in a common
hyperplane. A I -facet is an oriented simplex spanned by X points in that has exactly I points of on the (open) positive side of its affine hull. @ C is the set of closed halfspaces that contain I points
of and have X points of on their boundary. Clearly, these are exactly the halfspaces induced by
)ˆIliÒXu, -facets. Figure 1 displays all ¥ -facets (orientations omitted) of the respective point sets.
Lemma 2.1 For any set
IŒpÓ we have:
of Ó¦WXl]²_ points in general position in and any positive integer
(1)
' z “ C ~ J )+-,!E .0/d1K365še >ÔE . /d1 3 e > .
(2)
z
.c/d14365e> is a convex polytope (not necessarily of full dimension) with at most ¤-Õ tJ Ö facets,
š“
each of which is contained in some )ˆIliÒXu, -facet of .
f >j#’@kADC , then the depth is at most Ôi×I
Proof: (1) For a proof of the left identity, note that if "b#’
since the complement of > contains a closed halfspace with " on its boundary and containing at
most ciaI points from . On the other hand, if " lies on the boundary of a closed halfspace with at
most ji$I points, then the complement contains a closed halfspace with at least I points and thus
"Ò# f .0/d143 5e> .
For the right identity, consider first the set @gADCwØÙE²Ú
Ý
/d143 5e
Ý
>jÛ
/d1 3 5še
4

ADC @ . Since @BADC6ÛÜ@BADC , the inclusion

>
readily follows. For each >%#’@ÒADC , there are halfspaces in @bADC whose intersection is contained in >
(take the halfspaces containing nÞo> and bounded by hyperplanes carrying facets of LN:ODP)+lÞl>, —
we call these the facet-supporting halfspaces of the polytope LN:ODP)+’Þj>, ). It then follows that all
>r#m@HADC¡ß @BADC are redundant. Hence, .0/d1K365še>§Eà. /21 3±5še > and .c/d14365e> is a polyhedron
whose facets are determined by (i.e., lie in the boundary of) some of the halfspaces >B# @ÜADC .  On
the other hand, every halfspace > in @ , for á¡V¢X , contains an intersection of halfspaces in @
“ J;
Q
Ð
ä
take the facet-supporting halfspaces of the polytopes LN:ODP))+âÞ×>y,[ß6ã , for each of the X points
Ð #$ that lie on the boundary of > . Therefore all halfspaces in @kADC´ß @aC are redundant. Assertion
(1) of the lemma follows.
(2) We have already shown that 忨ÙEW.c/d14365e> is an intersection of a finite number of halfspaces,
and since it is contained in LN:ODP)+-, , it is bounded and thus a polytope. We further reduce the
number of constraints in @ÔC that are needed to determine å .
z
If å is empty, we are done since then it is the intersection of Xc]­_âpà¤ Õ J<Ö halfspaces in
“
@aC (consult Helly’s Theorem). Otherwise, consider some set ç of XŒiG_ points in . Either no
)ˆInibX*, -facet contains ç , or all but two halfspaces in @%
z C with ç on their boundary are redundant.
Since the number of )\X¡iÒ_, -element subsets of is Õ JtÖ , the asserted upper bound on the number
š“
of facets follows.
Now consider a halfspace >¢# @ C , and the )ˆI^irX*, -facet è it contains in its boundary. We
slightly rotate the bounding hyperplane é of > about any Xni§_ of the points of è , while keeping è
in its halfspace. We obtain X halfspaces in @gADC , whose intersection with é is è , implying that no
portion of é outside è can be part of å . ê
2.2 The structure of the center region
Let be a set of points in in general position. A standard duality transform [13] maps a point
ë in - to a nonvertical hyperplane ë–ì in - and vice versa, so that the above/below relationships
between the points and hyperplanes are preserved, i.e., if ë lies below (resp., above, on) a nonvertical
hyperplane > , then the dual hyperplane ë ì lies below (resp., lies above, contains) the point > ì . Using
this duality transform, we map to a set ì of nonvertical hyperplanes in í . The level of a point
"M#Ü with respect to ì is the number of hyperplanes in ì lying strictly below " . All points
on the same (relatively open) face (of any dimension) of î%)+ ì , have the same level. For a given
integer ïcpr&^ðÓ , the & -level of î%)+ ì , , denoted as ñ(u)+ ì , , is the union of the closures of all facets
of î%)+ ì , whose level is & . ñ(u)+ ì , is the graph of a continuous, piecewise-linear )\Xci²_, -variate
function.
By construction, the dual of a point " whose depth is & ( _$pò&§p`[Zd¤ ) with respect to is
a hyperplane that lies between ñó( J )+ ì , and ñ z (*)+ ì , . More precisely if we let ô”( (resp., õ( )
“
“
denote the lower (resp., upper) convex hull of ñF(*)+ ì , , then " ì (weakly) separates õ´( J and ô z ( .
7 = J and“ ô0÷ ö ;*7 =£ø . “ In
Hence, the dual of the center region 'd)+!, is the region lying between õ q ö ;*
ö
s
“
order to compute '2)+-, , it suffices to describe an algorithm for computing the upper or lower convex
5
ì , . Indeed, with õ 7
ö7
q ö ;*= s “ J and ô ÷ ö ;*= ø available, we map them back to the
primal space, and intersect the two resulting unbounded polyhedra to obtain '2)+-, .
The following lemma follows from the observation that the intersection line of any X¡iÒ_ hyperplanes of ì intersects LN:ODP)\ñ”(*)+ ì ,, in at most two points, unless it overlaps the hull in an edge
hull of a level in î%)+
(the dual analogy of the argument in the proof of Lemma 2.1(2)).
Lemma 2.2 Let ì be a set of hyperplanes in J
has …Œ)v–“ , vertices.
Lemma 2.3 Let be a set of points in this bound is tight in the worst case.
. For any ïcp§&^ðÓ , the convex hull of ñó(*)+
ì,
‘ . The combinatorial complexity of 'd)+!, is …†)v „ , , and
Proof: The upper bound follows directly from Lemma 2.1 (2).
For the lower bound, let us first assume that is of the form _¤2&y„ , for an integer &ù¦ú_ .
We are interested in '2)+-,¬Eû' z2| )+-,lE . /d1 3¡ü 7þý ÿ+;*= > , the intersection of halfspaces induced by
Š
) ¥K[Z ib¤:, -facets (see Lemma 2.1).
Take a triangle
in the " -plane, pass a vertical line through each of its three vertices
, and place [Zd¥ points on each line at heights _2™ ¤u™š›š›š›™ [Zd¥ . This yields a set of points in !‘ . We fix I0Em¥K[Z iפ , and we consider the I -facets of that have one point on each of
the vertical lines. There are c)ˆI „ ,-E c)v „ , choices of triples ) ™ ™£', such that 6] ´]g'FEkI6]k¥ ,
and any such triple defines a I -facet whose vertices are ) ™ ‹, , ) ™ š, , ) n™ ', . Moreover, any
I -facet either has this form, or it corresponds to a triple ) ™ ™£', with 6] -]g'FEM%i’I .
™
™
Passing to the dual space, a plane containing any such I -facet becomes the intersection point of
the three dual planes (where denotes the vector )v"[™ ‹, in the " -plane)
E a] ™ E a] ™
and
E a] '4›
Clearly, any such dual point lies on the ellipsoid
) i![, „ ]m) i"#$[, „ ]M) i"$[, „ Ew]´]k'¡E I6] ¥u›
Since this is a convex surface, standard properties of the duality transform imply that each of the
planes containing the I -facets in the primal space is tangent to a convex surface. Since each of these
tangency points necessarily lies on the boundary of the intersection polytope, it follows that each
of these I -facets contributes a facet to '2)+-, . The lower bound follows for the special values of assumed so far, and it can be easily extended to other values of . ê
Remark. We are currently unable to prove a similar bound on the complexity of '2)+-, in higher
dimensions. The upper bound theorem for convex polytopes (see [27]) implies that the complexity
} Jt | „ , . However, we conjecture that the actual bound is much smaller, maybe
of '2)+-, is …†)v “
J
even …†)v“ , .
% '&
6
2.3 Computing the convex hull of a level
(
Let be a set of planes in !‘ in general position, and let &HðW be an integer. We describe an
algorithm for computing the upper convex hull of ñ EMñF(u) H, .
(
LN:ODP)\ñ,!EMLN:OQP*),+ LN:OQP)\ñBÞÔ>y,'/ .
/d1.-
Lemma 2.4
(
Proof: ñ is composed of relative closures of facets of the arrangement of , thus ñkE
The claim then follows, since LN:ODP) Ô¯†,´EMLN:ODP)\LN:ODP[) 6, ÔLN:OQP)\¯†,, . ê
01
3(
Lemma 2.5 For any >×#
0 21
Ú /d1.-n)\ñ¡Þ->, .
, LN:ODP)\ñBÞ%>, has linear complexity.
$4
Proof: Any vertex of ñÓÞÒ> , and thus also of LN:OQP)\ñÜÞB>, , lies on two of the lines in 㠆ÞÒ>¢Ÿ
Ô#
ß ã4> ä2ä , and any such line wÞ%> can contain at most two vertices of LN:ODP)\ñÒÞ%>, . A similar
reasoning is applied to the unbounded edges of ñHÞ%> . ê
4 3(
4
(
Our algorithm processes the planes of one at a time. For each plane > it computes a convex
(generally unbounded) polygon ç / with …Œ)v[, edges and with the property that
LN:ODP)\ñHÞÔ>y,”ÛÜç / ÛÜLN:ODP)\ñ,–Þj>›
(1)
/d1.- ç / ,-E²LN:OQP)\ñó, , so we simply compute and output the convex hull of
By Lemma 2.4, LN:OQP)tÚ
Ú /d1 ç / .
5-
Although ñ is the graph of a continuous piecewise-linear totally defined function of "™ , the set
ñcÞw> within a single plane >j#
is much less structured. It need not even be connected, and can in
fact have quadratic complexity (in contrast with its convex hull, which has only linear complexity).
Specifically, for each ^# Wß-ã4> ä , consider the halfplane ~cÞ0> within > , where *~ is the (closed)
halfspace bounded from below by . The level of a point W#’> is the number of halfplanes ~ Þ^>
that contain . These halfplanes can have a rather “erratic” structure, such as the one shown in
Figure 3, which may cause ñâÞj> to consist of up to c)v „ , connected components.
3(
4 3(
4
4
4
4
Fix a coordinate frame within > whose axes project vertically to the " and -axes of the 3dimensional frame. (This is not an orthogonal frame, but can be made so with an appropriate affine
/ "ó] / !]%' /
transformation within > .) Let a# mß[ã4> ä . Write the equations of > and of as E
and E
š"F] í]j' . Observe that the halfplane ~ Þn> is a upper (resp., lower) halfplane within
> in this coordinate frame if and only if lV / (resp., lð / ). Thus each connected component
of ñÒÞj> is bounded from below (resp. above) by halfplanes ~ with nV / (resp. 0ð / ). The
general-position assumption, and an appropriate choice of the coordinate frame, allow us to assume
that all the coefficients / , for >×#
, are distinct.
76 896$ :6
# (
<
4 3(
4
4
$6 ;
3(
:6 ;
4
:6 ;
3 96 ;
Sort the planes >
in decreasing order of the -coefficients / of their equations. Let the
sorted order be >–Jš™š›š›š›™«> z . We first define the polygonal region çcCaE`ç / e with the property (1)
and then present an algorithm for computing each çŒC .
7
( “ „
( “ J
( “ „
( “ J
( “ „
(
( “ J
( “ „
(
( “ J
(
= 9 >@?BADCFE
( “ J
( “ „
( “ J
Figure 3.
( “ J
( “ J
(
( “ J
( “ „
( “ J
( “ „
( “ „
( “ J
( “ „
( “ J
may have quadratic complexity.
4
Definition of ç C . We give an inductive definition of ç C . All halfplanes ~ ޒ> J are upper halfߔã4>J ä . We
planes, implying that ñ×ކ>J is a level of the arrangement of the lines ކ>[J , for ^#
set çjJ to be LN:OQP)\ñBÞ%>J, . Suppose çjJš™š›š›š›™£çnC J have been defined.
4

“

4 G(

For áíðbI , let Emç Þ^>DC —these are segments, rays, or lines. Put –C±E¢ã
Ÿu_wpÜá!ðbI ä , and
refer to these segments (rays, or lines)
 as red segments. Let ®6CnÛ²>QC denote the convex hull of
 C .
(Let us note right away that each
can
be
computed
in
†
…
\
)
ˆ
‡
2
N
‰
[
,
time,
by
forming
the
line
>
Þ%>DC


and
 by intersecting it, within > , with ç . Thus ® C can be computed in …Œ)vo‡ˆN2‰-[, time.) Refer to
> Þ%>DC , á-VbI , as green lines. We define
H
I
$H
I
H
K ML
çnC EmLN:OQP)\®óCJ1B)\ñâÞ%>DC4,,™
and set £C×E çnC . Next we prove a few properties of
construction of ç0C .
ñÓÞÒ>*C and ç¬C that will be useful in the
Lemma 2.6 The portion of ñ×Þc> C that lies on green lines consists of pairwise disjoint " -monotone
polygonal chains, each starting and ending either at infinity or on some red segment.
Proof: Let be a point in ñÔÞc>*C that lies on a green line, and trace ñÔÞc>‹C from to the right (i.e.,
in the positive " -direction). When encountering a new green line, the level switches to the new line

and continues to the right; this follows from the fact that all the green halfplanes > ~ ÞÔ>QC are upper
halfplanes
in > C . Continuing the tracing,  we either reach
or an intersection
point with some
]



line > Þ%>DC , with áíðbI . Then $#×ñHÞ%> , so $#×ç , and thus ’#
. Tracing the level from to
the left, and repeating this analysis to each connected component of ñÒÞ%>C completes the proof of
the lemma. ê
BN
8
OH
Lemma 2.7 Let [™ be two -covertical green points in ñjÞc>?C . Then the segment
least one red segment.
must cross at
Proof: Suppose that lies above (in the -direction). As we move from in the positive direction, the level increases by 1 to &í]Ò_ . Just before reaching , the level is restored to its original
value & . Thus there had to be a point on
so that after crossing the level decreases by 1 and
becomes & . Clearly,
has to lie on some line > Þ%>QC with á”ðgI and in ñâÞ×>DC . Hence, arguing as

above, W#
.ê
PH
1
Corollary 2.8 ® C H)\ñHÞ%> C , is either a connected set or the union of up to two connected components, one of which contains ® C and the other one is an " -monotone unbounded green portion of
ñHÞ%> C , passing either above or below ® C .
1
Proof: Suppose ® C n)\ñlÞF> C , consists of three or more connected components, then two of them are
disjoint from ®¡C . By Lemmas 2.6 and 2.7, ®FC is unbounded and lies between these two components.
Moreover, the convexity of ® C implies that the unbounded rays of ® C are parallel to those of the
green components. However, this is ruled out by the general-position assumption, so there is at most
one connected (unbounded) green component disjoint from ®wC . ê
L
Constructing ç C . Since ç J is the convex hull of a level in an arrangement of lines, it can
be computed in …Œ)vo‡ˆN2‰ Š [, time using the algorithm of Matoušek [16]. Assuming çHJ™š›š›š›™£ç¬C J
“
have been computed, we construct çcC as follows. Since both ®FC and LN:ODP)\ñÜÞB>DC4, have linear
complexity, so does ç0C . Let nC†E àßoã4>QC ä . Since we are given ®FC , we assume that we have a
point 0#×ç¬C at our disposal. Let C be the union of ®¡C , the monotone green portions of ñŒÞn>*C that
terminate within ® C , and the unique monotone green portion of ñ×Þ^> C that lies above or below ® C ,
if it exists. In case the latter green component exists, we connect it to ®oC by some vertical segment
that lies on the vertical line that passes through the point in ® C . We regard as being also
part of FC , so FC is a connected region. By computing the intersection points of with the planes
in , we can compute in …†)v[, time. By construction, ç†C±EMLN:ODP) ¡C, . See Figure 4 (i).
( Q(
S
R
H
S
(
TVU
S
K
R
H
TU
WS
H
To construct «C , we adapt the recursive technique of Matoušek [16] for computing the convex
hull of a level in the plane, and slightly relax it to simplify its analysis in our new context (at the
cost of making the bound on its running time slightly worse). At each recursive step, we have a
C of úð planes, and an integer so that ñ Þ
triangle2
coincides
Ûù> C , a subset ° Û
with the -level of î%)+°l, inside . Furthermore, we assume that C intersects and that we have
the set
of at most six edges of «C that intersect
; if «C
, then ²Eæh . The goal of this
Eù>?C ,
subproblem is to compute all
edges of £C that fully lie in the interior of . Initially,
° E lC , gE & , and
E h . Suppose we have at our disposal a procedure I NTERSECTION ( ,
, ° , ) that computes the (at most two) edges of C that intersect a given segment
. We
[]\
Q(
X(
[]\
ab\
K
Y
L^
K
K
K _`
K
[]\
Z
c8_d
c
2
In order to accommodate degeneracies, we assume each triangle to be a convex region formed by the intersection of
at most three halfplanes.
9
eWf
\
h
U
i
g
i
jlk g
e
e
e
j
(i)
m
n
o
(ii)
E5pDCFE
q
e
Figure 4. (i) The set e . Segments of e are drawn as solid lines, e is the shaded polygon, intersection lines
e
e
are drawn as dashed lines, and the thick polygonal chains denote the green portion of
. (ii) The convex hull
of
e , a triangle , and . Thick polygonal chain is e , shaded (unbounded) region lying below e is e , and the
darker region is
.
m
r
q
k
q
sDq
k
describe this procedure in Section 2.4. Let
\
ç
EMç¬CíÞO
S \
and
= C*E
sDq
q
Eæ)WS¡CJ1â)W+t[u\ó,,–ÞOԛ
(2)
The proof of the following simple lemma is straightforward. See Figure 4 (ii).
Lemma 2.9
ç
\
EmLN:OQP)WS
\
,.
Y
0
We choose a sufficiently large constant ˜ . If p
„ ˜‡ˆN2‰!˜ , for some sufficiently large constant
independent of ˜ , we compute ç
directly, using Lemma 2.9. Specifically, we first compute the
„
EMñ6Þ (recall that it can have
-level of î%)+°l, within , which, by assumption, coincides with ñ
up to †) j„,´E²…Œ)v˜d„‡N2‰ „ ˜Q, complexity), and then compute
EMLN:ODP))\® C
%)+Ú
,,‹Þ Œ, .
To facilitate efficient construction of
, we store the (edges of the) convex polygon ®±C in a heightbalanced tree. Then
can be constructed in …Œ)\‡ˆN2‰ d, time, where is the complexity of ®6C , by
×ã ä , using an on-line procedure for updating
inserting the …Œ)<_, endpoints of the segments in
a convex hull by insertions [6]. Finally, we compute, using the same procedure, LN:ODP)\ñ
, in
…†)v˜2„
‡ˆN2‰ „ ˜´‡ˆN2‰ K,´EG…†)\‡ˆN2‰ K, additional time. By traversing the edges of the resulting polygon, and
ó,
using the fact that this polygon crosses
in at most six points, we can report, in …†)\‡ˆN2‰ ¡]
time, all
edges of £C that lie inside .
0
\
Y
xz\
xl\
w{
|{
[w\Z1 $H
w{
a2\
K
Suppose then that
range space



v\
x \
w
1#HB1 y[ \
{
}\81Px|\
L^
w{ a~\


Þ >DCâŸ> #²° ä and consider the following
„ ˜´‡ˆN2‰!˜ . Let ôæE ã4> H
E­)\ôF™ã2ã$To#jôMŸVT!ÞP€âEm
f h ä Ÿ5€P_§>QC is a triangle ä ,›
Y X
V 0
Y

ÛÜô
It is well known that has finite VC-dimension [9]. We compute, in …Œ) ’, time, a )<_Z4˜Q, -net
for of size …†)v˜´‡ˆN2‰!˜Q, , and a triangulation î 6) â, of the arrangement î%) â, inside [9]. For
) â, , we compute the one or two edges of C that cross , or determine that
each edge of î
c
‚ 
‚ 
10
K

c
c
K
c does not cross £C , using the procedure I NTERSECTION ( , , ° , ). We thus obtain a collection
) â, that intersect £C lie in the zone of £C in î%) â, ,
of some edges of «C . The edges of î
therefore Ÿ 6Ÿ is asymptotically bounded by the complexity of the zone, which, since C is convex,
is …Œ)£Ÿ kŸ )£Ÿ Ÿ ,,óp lJ£˜ )v˜:,u‡N2‰!˜ , for an appropriate absolute constant 0J¡V§ï ; see, e.g., [7].
ƒ \
ƒ \
 „ 
K
‚ 
K
<0 5„
K
K

0
ƒ
Since the segments of \ are in convex position, they can be sorted along KC in …†)v˜5„)v˜:,u‡N2‰ „ ˜Q,
ƒ
time. Let …™
…‡† be two consecutive edges in \ . By construction, there exists a triangle € of î,‚±)H,
such that each of … ™
…ˆ† has an endpoint inside € , and the portion of K C between … and …‰† is fully
contained in € and is delimited by these two endpoints. (The case where the endpoints coincide is
trivial, since there is no need to fill in K C between … and …‡† .) See Figure 5.
e
‹

Ž
Š
‹Œ
Figure 5. e (dashed polygon),
(whose edges are drawn as thick segments), and the triangles of
of e between and is fully contained in the single cell (shaded region).

“
‹
‹Œ
k
€
Š
z >@‘’A . The portion
‚ 
K
ƒ \ K P€ L€
€
“ 0 .„
€ ”“ ’•
€

–• Y
9•
€
P€
—• ˜•
’• •
[~•
K
L€
#• ^•
[ •
a•
K
€
\
…
…‰†
5„
€
Suppose the procedure I NTERSECTION ( c , , ° , ) takes at most S†)YH™{d, time, where YàEæŸ °aŸ
and {ÔE Ÿ ® C ŸE …†)v[, . Let ™0)YH™
a[, denote an upper bound on the running time of the recursive
subproblem within , where Y E Ÿ °ŒŸ and a is the number of vertices of šK C lying inside (here
{ is considered as a global variable, since it does not change during the recursive calls). Then we
Let be the set of triangles %#^î ±) H, for which £C!Þ
contains at least one edge of «C in its
interior, i.e., there are two consecutive edges of
that intersect
and do not share an endpoint
inside . We have Ÿ FŸ*p nJ˜ )v˜Q,u‡ˆN2‰!˜ . For each j#
, let ° ¬ÛM° be the set of planes that cross
(i.e., intersect its interior). Since is a )<_Z4˜Q, -net, Ÿ ° ?Ÿp ’Z4˜ . If planes of ° pass below ,
then ñHÞ
coincides with the lE †i
level of î%)+° 2, . We also have at our disposal the set
of edges of £C that intersect , so we can compute ç
recursively, using the parameters ° , ,
and . We thus obtain the
edges of C that lie inside , and insert them, in sorted order, between
and . Repeating this step for each of the …Œ)v˜ ”)v˜Q,u‡ˆN2‰í˜:, cells , we obtain ç
, as desired.
obtain the following recurrence.
žœ Ÿ ™;¡ Y ™
a¢•5£†]yx†)WSŒ)YH™{K,]Y’,™QY ¦ 0 „ ˜´‡ˆN2‰!˜K™
˜
™¬)YH™
a[,”p›š • 1. …†)\‡ˆN2‰w”
{ ]˜a[,
Y ð 0 „ ˜´‡ˆN2‰!˜K™
“ Ÿ!pQl0 J£˜5”„ )v˜Q,u‡ˆN2‰í˜ , 0lJ and 0 „ are constants independent of ˜ , and x
where ¤ • a¢•Bpda , Ÿ F
11
is a
constant that does depend on ˜ . As Lemma 2.11 in the following subsection will show,
…†) Ž N:‡ˆ*‡ˆN2‰) `] K,, . The above recurrence thus solves to
Y
Y y{
S†)YH™{d,íE
J ~y— Ž N:‡ˆ*‡ˆN2‰)Yù]{d,–]¥a[,™
™¬)YH™
a[,-E²…Œ)Y
Y ™:{ ™
M
a E
for any constant ¦’V ï . Initially H
Œ
J
…†)v ~y— , , for any ¦V†
V<¦ .
…†)v[, , so the overall running time of the algorithm is
We repeat this step for each of the planes >‹C , for _oðgIŒpÜ . We then compute LN:OQP)tÚ
step that takes …†)v[„
‡ˆN2‰![, time. We thus obtain the main result of this part of the paper:
Theorem 2.10 Given a set of points in ‘ and an integer
'(u)+!, , can be computed in …Œ)v „ ~y—, time, for any nVÜï .
¦
C çnC4, , a
&Ò¦ ï , the region of depth- & of ,
2.4 The intersection subroutine
c §(
We now describe the main procedure I NTERSECTION ( , , ° , ) needed for the preceding algoÛæ>*C , a segment
, a subset °àÛ ¬C of planes, and an integer
rithm: given a triangle
, so that ñÒÞ
coincides with the level of î%)+°l, within , return the edges of C that intersect
. Recall that, by assumption, C intersects and we have at our disposal the set
of edges of £C
that intersect
. Let ç
be as defined in (2). Note that only the case IŒVG_ is relevant since,
™
as noted, ç×J can be directly computed in …†)vo‡N2‰ Š [, time [16].
G
L^
c
\ 9S \ K
cO_§
Y
[|\
K
K
We describe the overall algorithm in three stages. The first stage detects whether a query line
intersects ç
. If the answer is positive, it also returns an interval (possibly a single point) lying
that contains the first and the last intersection points of óÞ
. The second stage dein ¡Þ’ç
Ð
termines whether a query point #
lies in ç
, and computes the lines tangent to ç
from Ð
if Ð #H
f ç . This stage computes the tangent lines using the previous procedure and the parametric
searching technique [19]. The third stage plugs the tangent-computation procedure into the parametric searching technique, to compute the edges of ç
that intersect the query segment
.
We now describe each stage in detail.
T
T
\
\
\
T ZS \
\
\
\
\
c,_§
T
[ \
Intersection detection between ç
and a line. Let be a given line. Since
is the set of
Þ
,ç
can be computed in …Œ)<_, time; see Figure 6. We can
edges of £C that intersect
therefore compute in …†)<_, time the intersection points of with ç
. Next, we compute the
Þ
intersection points of with
; see Figure 6. We first compute, in …†)\‡N2‰ d, time, the intersection
points of with )\®FC j)+Ú
ó, –,?Þ . Next, we compute the intersection points of with ñ%Þ ,
as follows. We intersect with each of the planes of ° and sort the intersection points along . We
compute the level of an endpoint (possibly at ) of Þ
with respect to î%)+°l, and scan in some
direction, maintaining a count of the level we are in, and updating the count by 0_ after crossing
each intersection point. If we reach a point on level , which, by assumption, is a point on ñÒÞj>yC ,
we conclude that intersects ñ and we compute the first and the last points of level (with respect
to î%)+°n, ) on within (see, e.g., in Figure 6). This step takes …†) ²‡ˆN2‰ ’, time.
K
L—
\ ¥L—
S \
b1 <[u\ ª1–H «
T
T
T
T
T
T
N
\ GL©¨
|{
T T‘
T
¬
Y
12
T
JY
T
e
eü
\
­
­
\
ª
i jle k}®
e
g
e=
j
q C r
q C sr °
o
°
= r
k
k
k
k
k
\ , we conclude that T
If the procedure does not find any intersection point of T that lies in ç
\
\
does not intersect ç
. If T intersects ç
we return the first and the last intersection points
\ ,; then
computed by the algorithm that lie in ç
(these are the hollow circles on :
T Jš™±T „ ™±T ‘ in Figure 6).
Y ‡ˆN2‰~ù
Y ]k‡N2‰|d{ , .
The total time spent by the procedure is …Œ)²
T Þ%ç \
Remarks. (1) The interval returned by the procedure may be in general a proper subset of (see, e.g., line T in Figure 6).
„
\
(2) We can also use this procedure to detect an intersection between a ray ² and S : We apply
the procedure to the line T containing ² , and check whether ² intersects the interval returned by the
q
Figure 6. Detecting intersection between
and a line. Thick dashed edge belong to
, and thick solid lines
are the edges of
. Each of = , , and ü intersects
; = intersects
, intersects e , and ü intersects a
ª on each line are the endpoints of the interval returned
ª
green edge of
; the white circles
by the procedure.
¯C
° °
°
q
°
procedure.
´
\
µ·¶
U³
µ
i
e
e
¸ j
g
Figure 7. Tangents to
­
q
\
¹
k
from a point .
Computing the tangents to ç
from a point. Let Ð be a point in . We wish to determine
Ð
whether #×ç
, and if the answer is negative, we also want to compute the two tangents from Ð to
ç . We note that if is unbounded then one or both of these tangents may not be real tangents, but
Emh , i.e.,
are rather rays parallel to the unbounded rays of ç
. We choose a point in ç
. If
, we choose to be an arbitrary point of ® C . Otherwise, we choose to be an intersection
çnC¬Û
point of
and an edge of
. Let denote the line passing through Ð and and oriented from
\
\
;
L^
R
L \
[J\
º
13
R
R
R
\
[u\
Ð towards R . We parametrize rays ² emanating from Ð by a real number »-)²Q,wEX¼¾½2O)¿uZd¤:, , where
¿0¥
# À ï*™«¤d—é Á is the angle from º to ² in the counterclockwise direction; see Figure 7.
º
We first run the above line-intersection procedure on . If the interval returned by the procedure
and stop. Otherwise, the ray emanating from Ð in direction
contains Ð , we conclude that Ð # ç
Ð
i
does not intersect
. However, Ð may still lie in ç
(see the preceding Remark (1)). The
definition of C and its property proved in Corollary 2.8 imply that there exists an interval mE
such that a ray with -) Q,”# ï*™
intersects
if and only if -) :,#
; the ray
ï*™
ï*™
™£ï
i r™£ï
with -) ©,FE
is tangent to
. Similarly, there exist the interval ÜE
and the ray , with -) !, E
, tangent to
. The angular span of the wedge bounded by
f ç . Hence, it suffices to compute ´™ .
and
that contains
is less then é if and only if Ð #×
We describe the computation of .
\
S \
 R
S
²
» ² ¥À 9N¥Á
À ¾» Ä Á2_ÅÀ 9N˜Á
²Ä
» ²Ä §»Ä
SÄ
²Æ
» \²Æ É»—Æ
S \
²Æ
S
²Ä
\
ÃDÄ
» ² 3Ã Ä
.Ã Æ ÇÀ »—Æ ÈÁJ_XÀ }N ÈÁ
².Ä
²ÈÄ ²VÆ
S \
\
Using the parametric searching technique [19], we simulate the above line-intersection-detection
procedure generically at
and maintain an interval ×E ™ Û ï*™
, such that
# . During the simulation, we encounter comparison steps, each of which compares the unknown
with
Ð
some specific b# . To resolve the comparison, we test whether the ray emanating from , with
-) D,¬E , intersects
¦
(recall Remark (2) above). If the answer is positive, then
and
, and we set âØÙE ™ . Using the preceding algorithm, we
we set âØÙE ™ ; otherwise Mp
]²‡ˆN2‰ d, time. If the procedure returns an interval that
can detect this intersection in …Œ) ²‡ˆN2‰
and stop. If becomes empty, we conclude that Ð #×ç
, and
contains Ð , we conclude that Ð #×ç
if becomes a singleton ™ , then
E . In both cases, the procedure terminates, and returns
the indication that Ð #Üç
in the former case, or the tangent
in the latter case. Finally, if the
simulation stops with an interval ™ , using the standard parametric-searching argument one can
argue that $E
.
²Ä
» Í ÎÃ \
» ² Í Ï» Í
S
à ÑÀ» Í Á
Ã
»—Ä » Ä Ã
»ÌÄ
à ÊÀ Á ËÀ 9N¥Á
²Í
»2Ä Ð» Í
»—Ä Ñ» Í
à ÑÀ 5»©Í Á
Y \ ]Y
J{
Ã
À \ ¾Á
» Ä É
Ȳ Ä
À Á
\
To obtain an efficient implementation of the parametric search, we note that the intersection
detection procedure involves three main steps: Sorting the intersections of with the planes of ° ,
finding the intersections of with the convex polygon ® C , and testing whether intersects or an
edge of
. The third step involves only …Œ)<_, intersection operations, and is thus trivial to simulate.
The second step uses …†)\‡N2‰ d, comparisons, so its simulation takes …†) ²‡N2‰ „ ) û] K,, time. The
first step, if implemented by a logarithmic-depth parallel sorting network [2], and enhanced with
Cole’s improvement [11], can also be implemented in …†) ²‡ˆN2‰ „ ) ] K,, time; see [16] for details.
T
T
[]\
|{
Y
T
H
Y {
Y
Y ˜{
\ , or empty, where the third
The intersection of ²Ä with ç
is a single point, an edge of ç
\ . We can easily compute this
situation arises when ² Ä is parallel to an unbounded edge of ç
\
\
intersection, by noting that the endpoints of ².Ä$Þâç
must belong to S , and we know how to
compute such an intersection in time …Œ)Y²‡ˆN2‰~r
Y ]j‡ˆN2‰~d{ , using the intersection-detection procedure
\
described above.
Finally, if
computing -™
Ð #f ç
²VÄ ²VÆ
\
²5Æ . The total time spent in
Y`]{d,, .
, we repeat the same procedure to compute
, and their intersection points with ç
is …Œ) ²‡ˆN2‰ „ )
\
\
Y
Computing the edges of ç
crossed by an edge. Armed with the tangent computation procedure, we next derive the main procedure by applying parametric searching once again. It suffices to
14
T
solve the simpler problem, where we are given a query line , and our goal is to compute the one
Eûh . We then apply this
that are crossed by , or to determine that óÞ$ç
or two edges of ç
procedure to the line containing the query edge , and trivially retrieve the zero, one, or two edges
Eàh can be accomplished
of ç
that crosses. The latter task of determining whether FÞâç
using the basic intersection testing procedure, so we may assume that Þoç
E²
f h , and that we have
computed a point Ð # íÞÔç
. Using parametric searching once again, we slide a point Ð from Ð
along each of the two rays of delimited by Ð , and test whether Ð lies in ç
, using the tangent
computation procedure described above. This guides our search: If Ð lies in ç
, we proceed by
Ð
Ð
moving further away from , and otherwise we proceed by moving towards . When we home in
on the actual point Ð of intersection between and ç
, the tangent computation procedure yields
the desired edge of ç
that crosses at Ð . We omit the routine details of the parametric searching,
do not aim at the most efficient implementation, and are satisfied with the following result, which is
the promised missing ingredient for the proof of Theorem 2.10.
\
\
c
T
\
VÒ GT
Ò
\
\
c
T
T
Ò
T
T
Ó_
\
\
Ò
L \
T
T
\
[
K
DÒ
\
L—¨ , a segment
ÐY , such that
c , ° , ) takes
Lemma 2.11 Given a triangle
> C , the set C of edges of C that intersect
, the subset ° Û ¬C of the
planes that cross , and an integer òð
the level of î%)+°n, coincides with ñ within , the procedure I NTERSECTION ( ,
…†) Ž N:‡ˆ*‡ˆN2‰) `] K,, time.
c_Ï
Y
Ð(
Y
Y y{
3 Recognizing Colored Tverberg Points in the Plane
We now change gears, descend to the plane, and study the problem of recognizing colored Tverberg
points. Let be a 3-colored set, which is the disjoint union of a set ® of red points, a set ¯ of blue points, and a set ° of green points. We assume that the points of are in general position.
Let Ð be a given point that we want to test for being a colored Tverberg point of . Let be the
unit circle centered at Ð . We may assume, without loss of generality, that all the points of lie on
; otherwise we project these points on , centrally from Ð , and note that Ð is a colored Tverberg
point of the original set if and only if it is a colored Tverberg point of the projected set. If Ð is
generic, all projected points are distinct. Otherwise, since is in general position, at most two pairs
of points of may project to coinciding points on . This will require easy and straightforward
modifications of the following procedure, which we omit, and assume that all projected points are
distinct. Similarly, we will also assume that no two projected points are diametrically opposite on
(at most two projected pairs can consist of diametrically opposite points).
x
x
x
x
x
x Ò
x
Let
be a fixed semicircle of , whose endpoints are disjoint from . For each point in the
(open) complementary semicircle J , let denote the antipodal point of in . Put ® ~ EM®$Þ
and ®¬“ E`ã ܟ g#b®mÞ FJ ä , and define similarly the sets ¯a~홣¯a“™°l~ and °0“ . Sort the points
of ® ~ a® “ a¯ ~ a¯ “ Ô° ~ Ô° “ in counterclockwise order along , and denote the resulting
(linear) sequence by . (By our assumptions, all elements of are distinct.) Note that a rainbow
triangle, namely, a triangle
, with b#B® , ’#Ò¯ , ù#g° , contains Ð if and only if contains
1
ª Ô ‡
8x
1
1 ƒ 1
x
Ô
1
^
15
ƒ
x Ò
x Ò
ƒ
Õx Ò
one of the ordered triples
)[™ÈÔ ™
w,™)l™5Ô ™
,™)™ucÔ ™
,™)[™Ö0Ô ™
*,™)l™‰´Ô ™
‹,™)™‰´Ô ™
w,™
)[Ô ™ Ö
™ lÔ ,™) ¬Ô ™ D™ –Ô ,™
) yÔ ™ nD™ Ô ,™) ©Ô ™ l.™ Ô ,™^) 0Ô ™ ș ?Ô ,™¾) yÔ ™ Ö
™ lÔ ,™
ƒ
as a (not necessarily contiguous) subsequence; the specific triple is determined by the locations of
™ ™ along . See Figure 8. Our goal is thus to determine whether can be decomposed into pairwise disjoint triples of these 12 kinds.
x
Ü
ÛÙ
ÚÙ
¹
Ü.Ú$Û
×
Ú
Û
Figure 8. A triangle
שØ
=
¹
that contains , and the corresponding triple
ƒ
> Û]Ù ÝÞÜ‰Ý Ú Ù A .
We first describe a less efficient (but still polynomial) algorithm for solving this problem, which
is conceptually simpler, and then improve its running time. Write as ) ‹J™ ™š›š›š›4™ z , , and denote
„
‘
by C its prefix ) 2J™š›š›š›™ C4, , for I²E ï*™_d™š›š›š›K™«¥K . The algorithm uses dynamic programming

and processes the elements of in increasing order. At the beginning of the processing of , it
each of which is an 18-tuple of integers, which represent a
maintains a set

“ J of configurations,
partitions of
“ J Eù) 2J™š›š›š›™ “ Jþ, into triples and prefixes of triples of the above 12 kinds. More
specifically, the first six components of a configuration , which we denote by
)\® ~ , , )\® “ , ,
) \¯c~´, , )\¯a“[, , )+°o~´, , )+°¬“[, , record the number of singleton prefixes of triples that lie in
 singleton prefixes in ® ~ , and similarly for the other
“ J , where )\® ~ , is the number of such
five quantities. (Counting an element of
“ J as a singleton prefix means that we expect it, in the
configuration
 under consideration, to form a valid triple with two other elements that lie further
ahead of
“ J .) The next 12 components are each indexed by a pair of a positive color set and
a negative color
set, where the two colors are distinct, and record potential doubleton prefixes of

triples in
“ J (where the third element of such a triple is expected to come from the remainder
)\®o~°0“[, is the number of
of ). For example,
 doubleton prefixes ) [™ *, in the configuration,
where §#Ó® ~ , b#r° “ , and precedes in
“ J . (To complete this pair into a valid triple, an
element of ¯†~ will have to be chosen from the remainder of .) The other 11 components are
defined in complete analogy. We emphasize
that, in each configuration ^#

“ J , the counts in its
components represent a partition of
“ J . That is, each element of “ J contributes either to one
of the components of or it may drop
out
of the game altogether, if it is assigned to a triple that has

already been completed within
J . See below for details.
ƒ
Þc
ƒ ß
ƒ µ
 µ
c
Þc
 µ
ƒ
 µ
Þc c
c
c
c
 µ
²
 µ
 µ
ƒ
ƒ
ƒ
ƒ
 µ
ƒ
ƒ
²
ß Ò ƒ
ƒ
ƒ
“
à
ƒ ² ”ß
c
ß

Initially,
consists
of only
, we produce the set
of

 the all-zero tuple . When processing

J as follows. Suppose that #B®o~ , and let be a configuration in
configurations for
from
ß
“
16
c
²

ß

from
(at
most)
five
configurations
in
, according to the following choices of
J“ . We generate
²
ß

the role of
(i)
(ii)
(iii)
(iv)
(v)
c
c
:
is the first component of a new triple: We generate a new configuration by increasing
 µ )\® ~ , by 1.
c  is the second component of a triple whose first component is in ¯’“ : We generate a new
configuration by increasing  µ )\¯ “ ® ~ , by 1, and by decreasing  µ )\¯ “ , by 1.
c  is the second component of a triple whose first component is in °^“ : We generate a new
configuration by increasing  µ )+° “ ® ~ , by 1, and by decreasing  µ )+° “ , by 1.
c  is the third component of a triple whose first component is in ¯ ~ and whose second component is in °0“ : We generate a new configuration by decreasing  µ )\¯c~°0“–, by 1.
c  is the third component of a triple whose first component is in ° ~ and whose second component is in ¯^“ : We generate a new configuration by decreasing  µ )+°l~[¯a“, by 1.
c
The cases where belongs to any of the other five signed color classes is handled
in a com
pletely symmetric manner. We discard a new configuration if it already exists in
or if any of its
stores configurations without repetition. Whenever a new
components is negative. Then the set
configuration
is inserted into
(for the first time), we store with it a pointer to the configuration

J“ from which is generated. More precisely, we simply store with the type of incremen#
tal change, i.e., an up to three-letter string from the alphabet ^E¢ã®†~”™£¯c~-™°l~!™£®¬“-™£¯a“´™°¬ “ ä , that
has produced it from , using which can easily be reconstructed. For example, when
#g® ~ ,
we store ¯a“–®o~ at in case (ii), and ¯†~°¬“– ®o~ in case (iv). In general, there may be several configurations #
, but since we only keep the first copy of we store a
“ J that can induce †#
pointer to only the first that has generated .
²
².† 3ß
ß
²
²
².† 8ß
ß
ß
²D†
²5†
² Zß
²†
²
á
ß

c
²
²
Jãâ
c
ãä
²
²
Jãâ
The number of configurations in any
is …Œ)v  , , so the processing of each takes …†)v ,
J
time, using an appropriate data structure to store . The total running time is thus …†)v , . After
Ð
processing z , we test whether
‘
‘ z contains the all-zero tuple . If it does not, is not a Tverberg
point. If is in
‘ z then, using the additional data stored with each configuration, we compute a
Tverberg partition by tracing back a sequence of configurations ^E
™ dJ™ „ ™š›š›š›™ ‘ z “ J™ ‘ z E ,
so that each C belongs to nC and can be generated from þC J when processing þC .
à
c
ß
ß
ß
²
à
ß
ƒ²
²
à å² Ò ² ²
c
 “
æ æ

;à
More precisely, we maintain with each configuration that we trace, a family âE
of triples.
Each triple Ò#
has a suffix formed by the points in , and the remaining prefix of is formed
by the letters in ; the prefix indicates which types of points are needed to complete the triple.
See
 Figure 9. For example, if a triple in is )\®o~í ™£¯Œ“´™ (2, , then &¢V , and we need a point
# ® ~ and another C%#k¯ “ to form the triple ) ™ «C:™ (:, of the Tverberg partition that we are
constructing,
 where á”ðkIap . Similarly, if the triple
 is )+°a“©™ C:™ (d, , then wð IŒðm& , and we need
a point
#G° “ , with ácp  , to form a triple ) ™ «CQ™ (2, . Initially, W
 E
‘ z is empty.  Suppose
we are currently processing , which was constructed
while
adding
.
If
we
stored at a three
J , with !J™ ™
# , then must label the set
letter string íJ
to mark the change from
€ !æ
á
c
c
c
ç ¾ç „ ç
‘
æe
<T
QT
²
Þc c c
²
Þc c c
“
17
c
€
ÑT
c c
T
æ Êæ
c
ç ç „ ç ‘ ˜á
ç
‘
²
}ùø ±= úú ø ü
}ùø 9ÿª ú ø
}ùø ø±û
úú ø'øÿ 
ú ø·ü 
}þý ;8 úú ø ü úú ø'ÿ 
} Æ ÿ9ú ø ú ø 
ù} ø ø±û ø·ü 
ú ú Æ ø; ú ú øø' ÿ  èêé—ëˆìíWñ
ìíÞò·ð èêé©ë‡ìôó—õ‡ìíWï·ð
ú ø±û ú ø·ü  èêé©ë‡ìôó—õ‡ìíWï·ð
ý
ý8Æ;i8
Æ;
Æ;ý8
Æ;i8ý
ý8 8 ; Æ;
Æ;i8
Æ;ý8i;
}ùø ú ø ü ú ø'ÿ 
}þý ; ú ú Æ ú ú ø'ÿ  èêé—ë‡ìíWñ
ìíÞò'ð
èêé©ë‡ìôó—õ‡ìíWï·ð
} Æ ÿ9ª; ú ú ø ú ú ø 
} Æ ÿ9ú ø ú ø  èêé—ë‡ìíÞî¾ìíÞï'ð èêé©ë‡ìôö÷õ‰ìíÞò·ð
}ùø ø±û ø·ü 
}ùø ø±û ø·ü 
}þý 8 ;
}Æ ;
}Æ
8 Æ ;
;
Figure 9. Constructing a Tverberg partition from a sequence of configurations, by tracing the sequence backwards. For
each node in the path, the label shows the string stored at that configuration, and the sequence of triples inside the box
is the family just before processing the node in the backward-tracing phase. The output Tverberg partition is the one
stored at the leftmost node.
c
ç ç c 
cVä
æ
cVä
containing , and we add the triple ) íJš™
„ ™ , to . For example, we add the triple )\¯a~홣®¬“™ 4,
to after processing
in Figure 9 (and Œ#k° ~ in this case). On the other hand, if we stored a
two-letter string ”J
„ at , then „ must label the  set containing , and we extract a triple of the
™„ (d, from and replace it with ) ”J™ ™ (2, . Similarly, if the
form ) !J™
 string stored at is !J ,
we extract a triple of the form ) J ™ C ™ (:, from and replace it with ) ™ C ™ (d, . After processing
dJ , the final value of is (one possible) Tverberg partition for Ð . The correctness of the trace-back
algorithm follows
from

 the invariant, easily established using induction on á , that if a configuration
belongs to
then admits a decomposition into pairwise disjoint prefixes of triples (and complete
triples), so that the number of prefixes of each type is equal to the corresponding component of .
æ
ç ç c
²
ß
ç ¾ç
²ä
ƒ
æ
æ
²
ç
c
ç c c
æ
ç c c
Þc c c
²
ç
²
²
In summary, we have shown that determining whether a given point
J
point of can be done in …Œ)v , time.
ãä
Ð is a colored Tverberg
We next proceed to optimize the algorithm. In the revised version we apply the same general
approach, but maintain configurations with fewer components. First we note that there is no need to
maintain the two separate quantities
)\® ~ ¯ “ , , )\¯ ~ ® “ , , and it suffices just to maintain their
sum. Indeed, both quantities are accessed only when a further element of that belongs to °a~
“decides” to become the last element of a triple, in which case it has to be matched with a doubleton
that is counted in one of these two quantities, but it does not matter which of the two kinds of
doubletons is being used. A symmetric argument applies to other pairs of doubleton components.
Hence, a configuration needs to record only 12 counts, six singleton counts, as above, and the six
doubleton counts
 µ
 µ )\®
 µ )\®
 µ )\®
 µ )\®
 µ )\¯
 µ )\¯
 µ
~ ¯
“ ¯
~ °
“ °
~ °
“ °
]
 µ
]
 µ
“ ,
~ ,
“ ,
 µ
~ ,
“ ,
~ ,
This already yields an algorithm that runs in …Œ)v
]
 µ
]
 µ
]
 µ
]
ƒ
)\¯
\) ¯
+) °
+) °
+) °
+) °
~ ®
“ ®
~ ®
“ ®
~ ¯
“ ¯
“ ,™
~ ,™
“ ,™
~ ,™
“ ,™
~ ,´›
J ‘ , time (there are …†)v J „ , different configurations,
18
and there are iteration steps). The path-tracing procedure can be adapted in a straightforward
manner to construct a Tverberg partition.
We can further reduce the number of components in a configuration to 10, as follows. Suppose that g# nC . Denote by )\®l, the sum of all components of that record prefixes of tuples that involve an element of ® (i.e., of ®0~ H®¬“ ), and define similarly )\¯†,™ )+°l, . Let
çnCD)\®l,™£çnCD)\¯c,™£ç¬CD)+°n, denote the number of elements of C that are red, blue, and green, respectively. Let denote the number of complete triples (contained in C ) that have been generated by the
incremental construction recorded in (or, more precisely, in the unique sequence of configurations
in ÔJ™
„ ™š›š›š›™ lC that terminates at and whose reverse is obtained by following the stored back
pointers, starting from ). Then we have
µ
² ;ß
ß ß
ß
!1
²
²
²
ç¬CQ)\®l,
ç C )\¯†,
çnCQ)+°l,
That is,
µ
µ
ƒ
)\¯†,©i
)+°n,©i
µ
µ
)\®l,
)\®l,
E
–]
–]
–
] E
E
E
E
²
ƒ
µ
µ
µ )\®l,
µ )\¯†,
µ )+°n,´›
çnC:)\¯†,©iÒç¬C:)\®l,
çnC:)+°n,©iÒçnCQ)\®l,-›
This gives us two independent linear relations among the 12 components of a configuration, showing
that it suffices to store and maintain only 10 of them. The number of tuples generated by the
J
JJ
algorithm is thus …Œ)v , , and the total running time is …†)v , . That is, we have:
Ò
Theorem 3.1 Let be a set of ¥K points in the plane, of which are red, blue, and green. For
JJ , .
a given point Ð , we can determine whether Ð is a colored Tverberg point of in time …†)v
4 Open Problems
The paper raises several open problems for further research. We mention only a few:
(i) Obtain a tight bound for the maximum possible complexity of the center region 'd)+!, of a
set of points in general position in ” , XBVù¥ . Then provide an efficient algorithm for
constructing '2)+-, .
(ii) Can the center region in í‘ be constructed in
…Œ)v„ Ž N:‡ˆ*‡ˆN2‰)v[,, time?
(iii) Can colored Tverberg points in the plane be recognized in a more efficient manner? What
about colored Tverberg points in higher dimensions?
Acknowledgments. The authors thank Jirka Matoušek and Boris Aronov for useful discussions
concerning this problem, and the anonymous referees for many helpful comments for improvements and corrections. The authors also thank the GWOP’03 working group [12] for providing the
construction in Figure 2.
19
References
[1] P. K.Agarwal and J. Matoušek, Dynamic half-space range reporting and its applications, Algorithmica 13
(1995), 325–345.
[2] M. Ajtai, J. Komlós, and E. Szemerédi, Sorting in – parallel steps, Combinatorica 3 (1983), 1–19.
[3] D. Avis, The -core property contains the -divisible points in space, Pattern Recognition Letters 14
(1993), 703–705.
[4] I. Bárány and D. Larman, A colored version of Tverberg’s theorem, J. London Math. Soc., Ser. II,
45 (1992), 314–320.
[5] I. Bárány, Z. Füredi and L. Lovász, On the number of halving planes, Combinatorica 10 (1990), 175–183.
[6] M. de Berg, M. van Kreveld, M. Overmars and O. Schwarzkopf, Computational Geometry: Algorithms
and Applications, 2nd Edition, Springer Verlag, Heidelberg, 2000.
[7] M. Bern, D. Eppstein, P. Plassman, and F. Yao, Horizon theorems for lines and polygons, in Discrete and
Computational Geometry: Papers from the DIMACS Special Year (J. Goodman and R. Pollack, and W.
Steiger, eds.), American Mathematical Society, Providence, RI, 1991, 45–66.
[8] T. Chan, An optimal randomized algorithm for maximum Tukey depth, Proc. 15th Annu. ACM-SIAM
Symp. Discrete Algorithms, 2004, 423–429.
[9] B. Chazelle, The Discrepancy Method, Cambridge University Press, 2000.
[10] K. Clarkson, D. Eppstein, G. L. Miller, C. Sturtivant, and S.-H. Teng, Approximating center points with
iterative Radon points, Intl. J. Comput. Geom. Appls. 6 (1996), 357–377.
[11] R. Cole, Slowing down sorting networks to obtain faster sorting algorithms, J. ACM 34 (1987), 200–
208.
[12] P. Csorba, K. Fischer, M. John, Y. Okamoto, J. Solymosi, M. Stojanković, Cs.D. Tóth, and U. Wagner, A
nonconvex colored-Tverberg region, Working Group at the 1st GWOP‘03 workshop, Switzerland, 2003.
[13] H. Edelsbrunner, Algorithms in Combinatorial Geometry, Springer Verlag, Heidelberg, 1987.
[14] S. Jadhav and A. Mukhopadhyay, Computing a centerpoint of a finite planar set of points in linear time,
Discrete Comput. Geom. 12 (1994), 291–312.
[15] G. Kalai, Combinatorics with a geometric flavor: Some examples, in Visions in Mathematics Toward
2000 (Geometric and Functional Analysis, Special Volume), 742–792.
[16] J. Matoušek, Computing the center of a planar point set, in Discrete and Computational Geometry:
Papers from the DIMACS Special Year (J. Goodman, R. Pollack, and W. Steiger, eds.), American Mathematical Society, Providence, RI, 1991, 221–230.
[17] J. Matoušek, Efficient partition trees, Discrete Comput. Geom. 8 (1992), 315–334.
[18] J. Matoušek, Lectures in Discrete Geometry, Springer Verlag, Heidelberg, 2002.
20
[19] N. Megiddo, Applying parallel computation algorithms in the design of serial algorithms, J. ACM,
30 (1983), 852–865.
[20] K. Miller, S. Ramaswami, P. Rousseeuw, T. Sellarés, D. Souvaine, I. Streinu and A. Struyf, Efficient
computation of location depth contours by methods of computational geometry, Statistics and Computing
13 (2003), 153–162.
[21] N. Naor and M. Sharir, Computing a point in the center of a point set in three dimensions, Proc. 2nd
Canadian Conf. Comput. Geom., 1990, 10–13.
[22] R. Rado, A theorem on general measure, J. London Math. Soc. 21 (1947), 291–300.
[23] M. Sharir and P. K. Agarwal, Davenport-Schinzel Sequences and Their Geometric Applications, Cambridge University Press, New York, 1995.
[24] M. Sharir, S. Smorodinsky and G. Tardos, An improved bound for -sets in three dimensions, Discrete
Comput. Geom. 26 (2001), 195–204.
[25] S.-H. Teng, Points, Spheres, and Separators: A Unified Geometric Approach to Graph Partitioning,
Ph.D. Thesis, School of Computer Science, Carnegie Mellon University, PA, 1992.
[26] H. Tverberg, A generalization of Radon’s theorem, J. London Math. Soc. 41 (1966), 123–128.
[27] G.M. Ziegler, Lectures on Polytopes, Springer Verlag, New York, 1995.
[28] R.T. Živaljević and S.T. Vrećica, The colored Tverberg’s problem and complexes of injective functions,
J. Combin. Theory, Ser. A, 6 (1992), 309–318.
21