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 )voN2 [, -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 )voN2!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 Jy 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] _,)vliM_, , 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 )voN2-[, 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 JJ , . 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 IpÓ we have: of Ó¦WXl]²_ points in general position in and any positive integer (1) ' z C ~ J )+-,!E .0/d1K365e >Ô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 5e 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/d1K365e>§Eà. /21 3±5e > 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 XiG_ 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%iI . 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 )voN2-[, 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 )voN2 [, 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 nCE àß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² )vdN2 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 )v2 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ôMVT!ÞPâEm f h ä 5P_§>QC is a triangle ä , Y X V 0 Y ÛÜô It is well known that has finite VC-dimension [9]. We compute, in ) , time, a )<_Z4Q, -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:,uN2! , 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 )v5)v:,uN2 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 )vQ,uN2! . For each j# , let ° ¬ÛM° be the set of planes that cross (i.e., intersect its interior). Since is a )<_Z4Q, -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 )vQ,uN2í:, 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. )\N2w { ]a[, Y ð 0 ´N2!K !pQl0 J£5 )vQ,uN2í , 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ðgIpÜ . 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 IVG_ is relevant since, as noted, ç×J can be directly computed in )voN2 [, 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\ ª1H « 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 ]kN2|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 ]jN2~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,)l5Ô ,)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 ï*_dK«¥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 JJ 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 JJ , . 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
© Copyright 2026 Paperzz