cs0103024/cs0103024
1: \documentclass{article}
2: \usepackage{latexsym}
3: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4: %\renewcommand{\baselinestretch}{1.25}
5: \def\a{\mbox{\boldmath $a$}}
6: \def\b{\mbox{\boldmath $b$}}
7: \def\p{\mbox{\boldmath $p$}}
8: \def\xx{\mbox{\boldmath $x$}}
9: \def\tt{\mbox{\boldmath $t$}}
10: \def\vv{\mbox{\boldmath $v$}}
11: \def\uu{\mbox{\boldmath $u$}}
12: \def\la{\mbox{{\bf $\lambda$}}}
13: \def\G{{\cal G}}  %% Guide algorithm 
14: \def\A{{\cal A}}  %% Arrangement 
15: \def\D{{\cal D}}  %% Duality
16: \def\H{{\cal H}}  %% Hyperplanes 
17: \def\L{{\cal L}}  %% Level
18: \newtheorem{theorem}{Theorem}[section]
19: \newtheorem{lemma}[theorem]{Lemma}
20: \newtheorem{corollary}[theorem]{Corollary}
21: \newtheorem{proposition}[theorem]{Proposition}
22: \newtheorem{observation}[theorem]{Observation}
23: \newenvironment{proof}{\noindent {\bf Proof\,\ }}{\hfill\mbox{\ $\Box$} \smallskip}
24: 
25: \bibliographystyle{plain}
26: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
27: \begin{document}
28: 
29: \title{Notes on computing peaks in k-levels and 
30: parametric spanning trees}
31: \author
32: {Naoki Katoh\thanks{Department of Architecture, Kyoto University,
33: Kyoto, 606-8501, Japan. 
34: Email:naoki@archi.kyoto-u.ac.jp}
35: \and Takeshi Tokuyama\thanks
36: {Graduate School of Information Sciences, Tohoku University,
37: Sendai, 980-8579, Japan. Email:tokuyama@dais.is.tohoku.ac.jp}
38: }
39: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40: 
41: \maketitle
42: 
43: 
44: \begin{abstract}
45: 
46: We give an algorithm to compute all the local peaks in 
47: the $k$-level of an arrangement of $n$ lines in 
48: $O(n \log n) + \tilde{O}((kn)^{2/3})$ time.
49: We can also find $\tau$ largest peaks in 
50: $O(n \log ^2 n) + \tilde{O}((\tau n)^{2/3})$ time.
51: Moreover, we consider the longest edge in a parametric
52: minimum spanning tree (in other words, a bottleneck edge 
53: for connectivity), and  
54: give an algorithm to compute the parameter 
55: value (within a given interval) 
56: maximizing/minimizing the length of the longest edge in MST.
57: The time complexity is $\tilde{O}( n^{8/7}k^{1/7} + n k^{1/3})$. 
58: \end{abstract}
59: 
60: \section{Introduction}
61: 
62: The $k$-level of an arrangement of lines is one of 
63: popular geometric objects in 
64: computational geometry~\cite{Edels,WEB}.
65: The $k$-level is the union of 
66: $k$-th lowest (closed) line-segments of the arrangement, 
67: and it can be considered as the trajectory 
68: of the $k$-th smallest element in a set of $n$ data 
69: each of which depends on a parameter $x$ linearly.
70: Thus, the $k$-level is a special case of the locus of 
71: the largest element of the minimum base of 
72: a parametric matroid~\cite{G79,G80,Eppstein95,KIT95,KTT99} with 
73: one parameter; 
74: in precise, the $k$-level is the locus of the 
75: maximum element in the minimum base of a parametric uniform
76: matroid of rank $k$.  
77: From a different aspect, 
78: the $k$-level is a dual concept of the $k$-set~\cite{Edels}, 
79: and  the complexity $g_k(n)$ of the $k$-level
80: of an arrangement of $n$ lines is asymptotically same 
81: as the number of different $k$-sets in a set of $n$ points
82: in a plane. 
83: 
84: Lov\'{a}sz~\cite{L71} first gave a nontrivial 
85: $O(n^{3/2})$ upper bound for $g_{\lfloor n/2 \rfloor}(n)$, 
86: and also 
87: introduced Straus's $\Omega( n \log n )$ lower bound.  
88: The current best upper and lower bounds for $g_k(n)$ are
89: $O( k^{1/3} n)$~\cite{Dey97} and 
90: $2^{\Omega(\sqrt{\log k})} n$ ~\cite{Toth00}, respectively.
91: The upper bound holds for 
92: any parametric matroid (with a linear parameter) of 
93: rank $k$ in $n$ elements~\cite{Eppstein95}.  
94: Moreover, Cole et al. gave 
95: an $O(g_k(n) \log ^2 n)$~\cite{CSY87} time algorithm to
96: compute the $k$-level; this time complexity has been 
97: improved due to improvement of 
98: algoirthms for the dynamic convex hull computation
99: employed as a key subroutine~\cite{BJ00,Chan99}.  
100: The current best time complexity (randomized expected time)
101: is $O( g_k(n) \alpha(g_k(n)) \log n)$ time 
102: given by Har-Peled~\cite{HP00}, where $\alpha()$ is the 
103: inverse Ackermann function. Thus, the time complexity
104: is very close to $O(g_k(n) \log n)$. 
105: 
106: However, we often need a compact ``outline'' of 
107: a trajectory of a parametric problem by using  
108: a small number of characteristic points on it.
109: Such an outline, generally speaking, 
110: will be useful as a compact data    
111: to control parametric problems, and possibly utilized in 
112: designing kinetic data structures~\cite{BGH97,AEGH98}.
113: Local peaks in the trajectory are considered to be 
114: natural characteristic points.
115: A key observation to investigate the $k$-level is   
116: that it has at most $2k-1$ local peaks 
117: (at most $k$ maximal peaks and at most 
118: $k-1$ minimal peaks)~\cite{AACS98,Eppstein95}. 
119: One interesting problem is to compute all the 
120: local peaks efficiently.
121: This enables us to give a decomposition of the $k$-level into 
122: monotone chains, and hence create an outline with a size $O(k)$ 
123: of the $k$-level. 
124: 
125: We give an algorithm to compute all the local peaks in 
126: the $k$-level of an arrangement of $n$ lines in 
127: $O( n \log n) + \tilde{O}((kn)^{2/3})$ time,
128: where $\tilde{O}$ is 
129: the big-O notation ignoring polylogarithmic factors.
130: The current estimate for the 
131: polylogarithmic factor of the second term is less 
132: than $\log^{5} n$; however
133: we do not give it explicitly in this paper, 
134: since it is probably loose and 
135: will confuse readers.
136: The time complexity is better than  
137: $O(g_k(n) \log n)$    
138: for some restricted range of $k$ even if 
139: the current lower bound of $g_k(n)$ by T\'{o}th~\cite{Toth00} 
140: is tight.   
141: If we substitute the current $O( k^{1/3} n)$ upper bound 
142: to $g_k(n)$, the time complexity is better than 
143: $O(g_k(n) \log n)$ 
144: if $k = O( n / \log^{c} n)$, where $c$ 
145: is a suitable constant. 
146: 
147: Another interesting question is how fast we can compute 
148: $\tau$ largest maximal peaks for $\tau \le k$. 
149: If $\tau = 1$, Roos and Widmayer~\cite{RW94} 
150: gave a neat method to compute the maximum 
151: point in the $k$-level in 
152: $O(n \log n + (n-k) \log^2 (n-k))$ time by using 
153: an efficient slope selection algorithm. 
154: We can compute $\tau$ largest peaks in 
155: $O( n \log ^2 n) + \tilde{O}((\tau n)^{2/3})$ time by combining 
156: Roos and Widmayer's technique and the above mentioned method
157: for computing all the peaks.
158: 
159: Finally, we investigate whether we can 
160: analogously treat some parametric matroids: 
161: Compute peaks in the trajectory of the largest 
162: element in the minimum weight base of a parametric matroid.
163: In particular,  
164: the graphic matroid is of wide 
165: interest~\cite{Eppstein95,G79,KIT95}: 
166: Consider a weighted undirected connected graph $G(x)$ 
167: with $k$ nodes and $n$ edges, such that each edge 
168: has a parametric weight that is linear in a parameter $x$. 
169: Here, $k$ and $n$ become the rank and size of the 
170: graphic matroid, respectively. 
171: Let $T(x)$ be the minimum weight spanning tree of $G(x)$ and 
172: consider the longest edge $e(x)$ in $T(x)$.  
173: Note that the minimum weight spanning tree becomes
174: a spanning tree that minimizes the length of the longest edge.
175: We call the edge $e(x)$ the {\em spanning bottleneck edge}(SBE), 
176: and write $SBE(x)$ and $w_{SBE}(x)$ for $e(x)$ and its weight,
177: respectively. 
178: The naming comes from the fact that  
179: $w_{SBE}(x)$ is the minimum value of $w$ such that 
180: the subgraph of $G(x)$ consisting of  
181: edges with weights less than or equal to 
182: $w$ is connected.
183: 
184: The following problems are important in 
185: sensitivity analysis:  
186: (1). Compute the maximum value 
187: and the minimum value
188: of $w_{SBE}(x)$ for $x \in I$, where $I$ 
189: is a given interval. 
190: (2). Compute all peaks of the trajectory
191: $y = w_{SBE}(x)$. 
192: 
193: For example, imagine a system represented by the graph 
194: $G$ where a link represented by 
195: an edge with a weight larger than a 
196: (controllable) threshold value 
197: becomes unreliable, and  
198: the edge weight depends on a parameter $x$ linearly within 
199: an interval $I$.  
200: For a given subinterval $J \subset I$,
201: we want to know the threshold value of the edge weights 
202: so that the graph remains connected for every  
203: $x \in J$.
204: This can be reduced to the problem (1). 
205: Moreover,
206: if we have computed all peaks in $I$ as a preprocessing
207: (problem (2)), we can efficiently query for
208: the threshold value, provided that we 
209: have an efficient method (shown in Section 4) 
210: to compute $w_{SBE}(x)$ at endpoints of $J$.
211:    
212: Both of problems (1) and (2) can be solved by computing the 
213: whole picture of the transitions of the minimum spanning trees, 
214: and the time complexity of the computation  
215: is $O(kn \log n)$ by using an algoirthm given by 
216: Fernandez-Baca et al.~\cite{FSE96}.
217: Note that $O(h_k(n) n^{2/3} \log^{3/4})$ 
218: time output-sensitive algorithm 
219: of Agarwal et al.\cite{AEGH98}
220: is better for some range of $k$, where 
221: $h_k(n)$ is the number of of transitions 
222: of the minimum spanning tree.  An 
223: $O(k^{1/3} n)$ upper bound~\cite{Dey97} and an 
224: $\Omega(n \alpha(k))$ lower bound~\cite{Eppstein95} 
225: are known for $h_k(n).$ 
226: 
227:  
228: Roos and Widmayer's method can be directly 
229: applied to the first problem.
230: By using dynamic maintenance algorithms~\cite{EGI97} 
231: of a minimum spanning tree, the time complexity 
232: becomes $O(\sqrt{k} n \log n)$.  
233: Combined with range searching techniques,
234: we improve the time complexity to 
235: $\tilde{O}( n^{8/7}k^{1/7} + n k^{1/3})$. 
236: We give some discussion on the second 
237: problem, although theoretical improvement 
238: on the $O(kn \log n)$ time method remains open.
239: 
240: \section{Preliminaries}
241: \subsection{Roos and Widmayer's algorithm}   
242: 
243: Given a set $\H$ of $n$ lines in the $x$-$y$ plane,
244: let ${\L}_k$ be 
245: the $k$-level of the arrangement of $\H$.
246: Let $\p$ be a point on ${\L}_k$ that has the  
247: maximum $y$-value $y_{max}$.  
248: Without loss of generality, we assume that such a point is unique. 
249: For any given value $\alpha$, one can decide
250: whether $y_{max} \ge \alpha$ or not in $O(n \log n)$ time:
251: We sweep on the line 
252: $h: y=\alpha$ from the leftmost intersection point to the right
253: to compute the levels of all intersection points 
254: on $h$ with lines in the 
255: arrangement. If all intersection points are above the $k$-level, 
256: $\alpha > y_{max}$; otherwise, $\alpha \le y_{max}$.  
257: By using this decision method,
258: a binary search algorithm works to compute $\p$, and a weakly polynomial
259: time algorithm with a time complexity
260: $O(n \log n \log \Gamma)$ can be obtained, if each coefficient
261: of the lines is a quotient number of integers 
262: with $\log \Gamma$ bits.  
263: Roos and  Widmayer\cite{RW94} 
264: applied an efficient slope selection method \cite{CSSS89} to 
265: transform the binary search algorithm into strongly polynomial, 
266: and gave an $O( n \log^2 n)$ time algorithm.
267: They further  
268: improved the time complexity to 
269: $O( n \log n + k \log ^2 k)$ 
270: for computing the minimum and 
271: $O( n \log n + (n-k) \log ^2 (n-k))$ for computing the maximum.
272: 
273: \subsection{Range query and 
274: Matou\v{s}ek's point set decomposition}
275: 
276: We use well-known (although sophisticated) 
277: simplex range query data structures~\cite{Aga}: 
278: We construct a data structure for a set $S$ of $n$ points 
279: in a plane such 
280: that given a query halfplane $H$, we can compute 
281: the number of points in $S$ located in $H$ efficiently. 
282: If we spend $O(m)$ time for constructing the data space for 
283: $n \log n \le m \le n^2$,  
284: the query time is $\tilde{O}( n/ m^{1/2})$.    
285: The query can be done in polylogarithmic time by using
286: $O( n/ m^{1/2})$ processors. 
287: The data structure uses $\tilde{O}(m)$ space, 
288: although we do not discuss space complexity in this paper.   
289: Moreover, we can query the number of points in 
290: the intersection of two (or three) halfplanes 
291: in the same query time if 
292: we ignore a polylogarithmic factor.
293: We can also do reporting query by spending additional 
294: $O(N)$ time if the region contains $N$ points.
295: 
296: Given a set $\H$ of $n$ lines in a plane, 
297: we consider the set $\D(\H)$ of 
298: their dual points: The dual point of a line 
299: $y = ax -b $ is $(a, b)$.
300: We construct a range searching data structure for 
301: $\D(\H)$. 
302: Given a point $p= (x_0, y_0)$, the 
303: set of dual points of lines 
304: below $p$ is the set of points in $\D(\H)$ located 
305: below the line $ Y = x_0 X - y_0$, where $X$ and 
306: $Y$ correspond to coordinates of the dual plane.   
307: Thus, we can compute the level of the point $p$ in the 
308: arrangement of $n$ lines by using half-plane range searching.
309: Moreover, 
310: we have the highest line below $p$ in the same query time. 
311: Also, we can 
312: query the number of lines which lie below 
313: both of a pair of query points.
314: 
315: A main building block for the range query is 
316: the point set decomposition 
317: structure of Matou\v{s}ek~\cite{M91}, which we also need to 
318: utilize directly (we only describe its two-dimensional version): 
319: 
320: \begin{theorem}[Matou\v{s}ek]
321: Given a set $S$ of $n$ points in the plane, 
322: for any given $r < n$, 
323: we can subdivide $S$ into $r$ disjoint subsets 
324: $S_i$ $(i=1,2,\ldots, r)$ such that 
325: $|S_i| \le 2n /r$ satisfying 
326: the following condition: Each $S_i$ is enclosed in a triangle
327: $\sigma_i$, and any line in the plane cuts at most 
328: $c r^{1/2}$ triangles among $\sigma_1,\sigma_2,\ldots,
329: \sigma_r$ where $c$ is a constant independent of $n$ and $r$. 
330: Such a decomposition can be constructed in $O( n \log n)$ time.
331: \end{theorem}
332: 
333: \section{Computing all peaks in $k$-level}
334: 
335: We assume $k \le n/2$ for simplicity from now on; 
336: if $k > n/2$, replace $k$ by $n-k$ and  
337: exchange maximal and minimal in the statements.
338: A key observation for the $k$-level is that it 
339: is a subset of a union of $k$ concave chains
340: such that all concave vertices of the 
341: $k$-level are vertices of these 
342: concave chains~\cite{AACS98}; thus, 
343: a $k$-level has 
344: at most $k$ maximal peaks and $k-1$ minimal peaks. 
345: We want to compute all the local peaks
346: in a given interval $I$ of the $x$-coordinate value.
347: 
348: We apply a version of 
349: parametric search paradigm~\cite{Me83,Salowe97}. 
350: However, before 
351: applying the parametric search, we start with a 
352: simpler ``$k$-branching binary search'' method.
353: Without loss of generality, we assume that no line in 
354: the arrangement is horizontal nor vertical.
355: 
356: We prepare two key-subroutines: {\em one-shot query} and 
357: {\em peak counting}: 
358: Let $\p(x_0)$ be the point on the $k$-level at the 
359: $x$-coordinate value $x_0$.
360: Let $\ell_k^- (x_0)$ (resp. $\ell_k^+ (x_0)$) 
361: be the line in the $k$-level at 
362: the $x$-coordinate value $x_0 - \epsilon$ (resp. $x_0+ \epsilon$)
363: for infinitesimally small $\epsilon > 0$.
364: If $x_0$ is not an $x$-coordinate value 
365: of a vertex on the $k$-level, 
366: $\ell_k^-(x_0) = \ell_k^+ (x_0)$. 
367: The above operation to compute the point 
368: (together with lines containing the point) on ${\cal L}_k$ at 
369: a given $x$-coordinate value is called {\em one-shot query}.
370: One-shot query is an analogue of 
371: {\em ray shooting}~\cite{Aga}, and thus the 
372: following lemma is basically well-known.
373: The complexity $q(n,m)$ given in the lemma 
374: is called {\em one-shot query-time} for the $k$-level:
375: 
376: \begin{lemma}
377: If we preprocess the lines in ${\cal H}$ with $O(m)$ time 
378: for $n \log n < m < n^2$, 
379: given an $x$-coordinate value $x_0$, 
380: we can compute $\p(x_0)$, 
381: $\ell_k^{-}(x_0)$ and $\ell_k^{+}(x_0)$ in 
382: $q(n,m) = \tilde{O}(n/m^{1/2})$ time, and also  
383: in polylogarithmic time by using 
384: $O( n/m^{1/2})$ processors. 
385: \end{lemma}
386: \label{lem:one-shot}
387: \begin{proof}
388: By using the method given in the preliminary section, 
389: we can compute the level of any given point 
390: $(x_0, y_0)$ in polylogarithmic time by 
391: using $O( n/m^{1/2})$ processors.  
392: We now apply parametric searching to have the sequential
393: time bound to compute the point $\p(x_0)$.
394: A parametric searching algorithm is 
395: usually stated as a sequential algorithm; however, 
396: it is naturally 
397: a parallel algorithm if 
398: we use a parallel decision algorithm and 
399: also a parallel sorting algorithm.
400: We remark that we can do it easier 
401: without using the parametric searching if we examine 
402: the range searching method in precise; however, 
403: we omit it in this paper.
404: \end{proof}
405: 
406: The peak-counting is a routine to  
407: compute the number of peaks 
408: of the $k$-level in a given  
409: interval $J = [x_0, x_1]$ of $x$-coordinate values efficiently. 
410: The following elementary lemma is essential:
411: 
412: \begin{lemma}
413: Let $f(x_0)$ and $f(x_1)$ are numbers of 
414: positive-slope lines below or on the $k$-level  
415: at $x_0$ and $x_1$, respectively.
416: Then, the number of maximal peaks of ${\cal L}_k$ 
417: in the interval $J$ is $f(x_0) - f(x_1)$. 
418: \end{lemma} 
419: \label{lem:comb}
420: \begin{proof}
421: At-most-$k$-level 
422: (the part of the arrangement below $k+1$-level)
423: is a union of 
424: $k$ concave chains such that all concave 
425: peaks in the chains appear in the $k$-level~\cite{AACS98}. 
426: If a concave chain among them has a peak in $J$, 
427: the slope of the chain must be changed from 
428: positive to negative. Thus,
429: the number of 
430: maximal peaks within $J$ is the difference between 
431: the numbers of positive slope
432: lines at two endpoints.
433: \end{proof}
434: 
435: We remark that $f(x_0)-f(x_1)$ equals the number of 
436: positive slope lines intersecting the segment 
437: between $\p(x_0)$ and $\p(x_1)$ if the segment has a 
438: nonpositive slope.
439: 
440: \begin{lemma}
441: For a given interval $J$ of $x$-coordinate value, 
442: the number $\kappa(J)$ of  
443: peaks of ${\cal L}_k$ in $J$ 
444: can be computed in $O(q(n,m))$ time if 
445: we preprocess the lines with $O(m)$ time.
446: Also, the number of maximal peaks can be computed in \\
447: $O(q(n,m))$ time.
448: \end{lemma}
449: \label{lem:count}
450: \begin{proof}
451: If we construct the dual of range search data structure 
452: for the set of lines with positive slopes, the number 
453: of positive slope lines below a given point 
454: $(x_0, y_0)$ can be computed 
455: in $O(q(n,m))$ time. Hence, $f(x_0)$ and $f(x_1)$ 
456: can be computed in $O(q(n,m))$ time, and the number 
457: of maximal peaks can be computed  
458: by using Lemma~\ref{lem:comb}.
459: The number of minimal peaks is easily computed from 
460: the number of maximal peaks and slopes of the 
461: $k$-level at endpoints.
462: \end{proof}
463: 
464: Now, we can apply a binary search paradigm to design a 
465: weakly-polynomial time algorithm.
466: First, for the input interval $I$, we compute the number of 
467: peaks $\kappa = \kappa(I)$ within the interval.
468: The time complexity for this initialization is negligible, and 
469: obviously $\kappa \le 2k-1$.
470: Next, we construct a data structure for the one-shot query 
471: in $O(m)$ time, where the choice of $m$ will be explained later. 
472: Suppose that coefficients of the equations of lines
473: are quotient numbers of $\log \Gamma$ bit integers.
474: We apply $\kappa$-branching
475: binary search to find all peaks; At each 
476: stage of the binary search, we have at most $\kappa$ 
477: subintervals which has at least one local peak 
478: of $\L_k$ (such a subinterval is called an 
479: {\em active interval}), 
480: and we recursively search 
481: in active subintervals.  
482: Thus, after examining $\kappa \log \Gamma$ candidates  
483: of $x$-coordinate values, we can find all of the peaks.   
484: 
485: \begin{proposition}
486: All the local peaks of ${\cal I}_k$ in the interval $I$
487: can be computed in $O( \kappa q(n,m) \log \Gamma)$ time. 
488: \end{proposition}
489: 
490: To make the complexity into strongly polynomial, 
491: we apply parametric search by using the parallel algorithm
492: for the one-shot query given in Lemma~\ref{lem:one-shot}
493: as its {\em guide algorithm}. 
494: We run the guide algorithm without inputting the parameter 
495: value (in our case, an $x$-coordinate value), and 
496: decide the $x$-coordinate values of the peaks
497: by using the sequential one-shot query 
498: and the counting algorithm 
499: of Lemma~\ref{lem:count} as {\em decision algorithms}.
500: The counting algorithm needs two values of 
501: the parameter, which corresponds to endpoints of 
502: each of intervals obtained by splitting active intervals
503: in the parametric searching process.  
504: Usually, parametric searching method solves 
505: optimization problems on monotone or convex 
506: functions.
507: Here, $k$-level is neither monotone nor convex, 
508: but it consists of $\kappa$ monotone fragments.
509: Thus, while running the guide algorithm, there are 
510: at most $\kappa$ different critical parameter values
511: to determine all
512: the comparisons in the current parallel step that are
513: necessary to proceed into the next parallel step.  
514: In precise, the number of different choices is the number 
515: of active intervals obtained breaking $I$ by the critical 
516: parameter values found so far in the guide algorithm.
517: We make a clone of the guide algorithm for each
518: active interval.
519: If the current interval is split into 
520: $f$ active subintervals, $f-1$ new clones are created. 
521: Naturally, we create at most $\kappa$ clones in our process. 
522: There is only one critical parameter value 
523: to determine the comparisons in a ``usual'' parametric search,
524: and such a value can be found if we run the 
525: decision algorithm  $O(\log N)$ times 
526: if the guide algorithm is a parallel algorithm on $N$ processors. 
527: In our case, we run the decision algorithm 
528: $O(\kappa \log N)$ times at each level.
529: Thus, we obtain the following theorem:
530: 
531: \begin{theorem}
532: All the peaks on $\L_k$ within an interval $I$ can be 
533: computed in 
534: $O( n \log n) + \tilde{O}((\kappa n)^{2/3})$ 
535: time if $I$ has $\kappa$ local peaks.
536: \end{theorem}  
537: \begin{proof}
538: The parametric searching method gives 
539: $\tilde{O}(\kappa q(n,m) )$ time complexity apart from the 
540: $O(m)$ preprocessing time. 
541: We balance $\kappa q(n,m) = \tilde{O}(\kappa n / m^{1/2})$ 
542: and $m$ to have $m = (\kappa n)^{2/3}$. 
543: If $(\kappa n)^{2/3} < n$, we instead use $m=n \log n$.  
544: This gives the time complexity.
545: \end{proof}
546: 
547: Since $\kappa \le 2k$, we have the following:
548: 
549: \begin{corollary}
550: All the peaks on $\L_k$ can be computed in 
551: $O( n \log n) + \tilde{O}((k n)^{2/3})$ time. 
552: \end{corollary}
553: 
554: \subsection{Computing selected peaks} 
555: 
556: When $\kappa$ is large, it may be too expensive to compute all 
557: the local peaks. 
558: Suppose that we want to compute $\tau$ largest 
559: maximal peaks in the input interval $I$ 
560: for $\tau \ll \kappa$ more efficiently than
561: computing all the peaks. 
562: This can be done by combining Roos and Widmayer's  algorithm 
563: and the algorithm given above.
564: 
565: We first run a binary search process 
566: with respect to $y$-coordinate values similarly to 
567: Roos and Widmayer's algorithm. 
568: At the intersection of the arrangement with a horizontal 
569: line $y = y_0$, 
570: we compute intervals on the line  
571: which are below the $k$-level 
572: (we call them semi-active intervals) 
573: in $O(n \log n)$ time. 
574: We next compute the sum $s(y_0)$ 
575: of numbers of local peaks in the semi-active intervals.
576: We could apply our counting method
577: of Lemma~\ref{lem:count}
578: for each semi-active intervals to compute the sum of maximal
579: peaks in the intervals by using $O( \tau q(n,m))$ time. 
580: More simply, 
581: we can compute it in $O( n \log n)$ time 
582: by counting the number of intersecting positive
583: slope lines with the horizontal line 
584: during the sweep. 
585: In precise, we also need information of the arrangement
586: at endpoints of the input interval $I$ 
587: if one (or both) of them 
588: is below $k$-level (we omit details).
589: 
590: If $s(y_0)$ is not between $\tau$ and $ 2\tau$, 
591: we continue binary search on $y_0$:  
592: If $s(y_0) > 2\tau$, we increase $y_0$ while 
593: if $s(y_0) < \tau$, we decrease $y_0$.
594: Thus, we can eventually find a value $y_0$ such that     
595: $\tau \le s(y_0) \le 2\tau$. We have spent $O( n \log ^2 n)$ time so far.
596: Now, we search all peaks in the union of active intervals 
597: by using the method given in the 
598: previous section. 
599: The following theorem is easy to see:
600: 
601: \begin{theorem}
602: We can compute $\tau$ largest maximal peaks of $\L_k$ in an interval $I$ 
603: in $O( n \log^2 n )+\tilde{O}((\tau n)^{2/3})$ time.  We can 
604: also compute $\tau$ largest local peaks
605: (including both maximal and minimal peaks) in the 
606: same time complexity.
607: \end{theorem}
608: 
609: Note that if we only use Roos and Widmayer's algorithm
610: in a naive fashion  
611: to find $\tau$ largest peaks, it would cost 
612: $O(\tau n \log ^2 n)$ time.   
613: Analogously, we can compute the 
614: $\tau$-smallest minimal peaks.
615: 
616: \begin{theorem}
617: We can compute $\tau$ smallest minimal peaks 
618: of $\L_k$ in an interval $I$
619: in $O(n \log^2 n) + \tilde{O}((\tau n)^{2/3})$ time.  We can 
620: also compute $\tau$ smallest local peaks
621: (including both maximal and minimal peaks) in the 
622: same time complexity.
623: \end{theorem}
624: \label{thm:small}
625: 
626: For this $\tau$ smallest peak finding 
627: problem, we can modify
628: Roos and Widmayer's method~\cite{RW94} to compute them in 
629: $O(n \log^2 n + k \tau \log^2 k )$ time.
630: Although $n + (\tau n)^{2/3} \le 2( n + k \tau) $ always holds, 
631: the time complexity is better than the one in 
632: Theorem~\ref{thm:small} by a polylogarithmic factor if   
633: $n^{1/2} \log^{-c} n < k < n^{1/2} \log ^{c} n$ for  
634: some constant $c$. Moreover, the algorithm does
635: not use range search data structure, and hence much 
636: simpler and uses smaller data space.
637: 
638: \begin{proposition}  
639: The $\tau$ smallest local peaks 
640: in an interval $I$ can be found in 
641: $O(n \log^2 n + k \tau \log^2 k )$ time.
642: \end{proposition}
643: \begin{proof}
644: First we search for a horizontal line $h$ such that 
645: it intersects $k$-level, 
646: and the number of peaks below it 
647: is not less than $\tau$.
648: Such a line $h$ can be found in $O(n \log ^2 n)$ time. 
649: Next, let $v$ and $w$ be 
650: the leftmost intersection and the rightmost intersection 
651: with the $k$-level on $h$, and let $J$ be the interval between them. 
652: If the $k$-level at an endpoint 
653: of the input interval $I$ is below $h$, 
654: we connect the point on $k$-level at the $x$-value of the 
655: endpoint to $J$ with a segment to form a chain $C$
656: with at most three segments. Let $\H_0$ be the set of lines in the arrangement 
657: intersecting with the chain $C$.
658: The cardinality of $\H_0$ is at most $2k$ because of Lemma~\ref{lem:comb}.
659: Finally, we find all peaks below $h$ by using 
660: the $\tau$-branching binary search.
661: Here, by using the windowing method of \cite{RW94},  
662: we should only take care of lines in $\H_0$ together with lines below endpoints of the chain $C$. 
663: There are at most $4k$ such lines.  
664: Hence, this second step can be done in $O(k \tau \log^2 k )$ time.
665: \end{proof}
666:  
667: \section{Bottleneck edge length in a \\ parametric  
668: spanning tree}
669: 
670: Next, we consider the parametric spanning tree problem.
671: Consider a connected graph 
672: $G = (V, E)$ with $k$ nodes and $n$ edges. 
673: Because of the connectivity, $k-1 \le n \le k(k+1)/2$. 
674: For each edge $e \in E$, we associate a weight 
675: function $w_e(x)$, which is linear on a parameter $x$. 
676: We assume that the arrangement generated by 
677: lines $y = w_e(x): e \in E$ is simple, i.e., no three lines
678: intersect at a point. We can remove this assumption by giving
679: a symbolic perturbation.
680: $G$ is denoted by $G(x)$ if it is considered as a weighted 
681: graph with parametric weights.
682: For a given value $x$, we consider the minimum spanning tree
683: $T(x)$ of $G(x)$.
684: 
685: It is known that the number of transitions of the structure of 
686: the minimum spanning tree  $T(x)$ is $O( k^{1/3} n)$, and
687: all the transitions can be computed in 
688: $O( kn \log n)$ time~\cite{FSE96}.   
689: Moreover, the average edge weight in the minimum spanning tree
690: is a concave function in $x$, and the value of $x$ maximizing 
691: the average edge weight of $T(x)$ can be computed in
692: $O(n \log n)$ time~\cite{FSE96}. 
693: 
694: As parametric matroid problems, the average edge weight 
695: is a counterpart of the average of $y$-values of 
696: $k$ lines below (or on) the $k$-level. 
697: A natural counterpart of the $k$-level itself in 
698: the minimum spanning tree is the longest
699: (i.e. maximum weight) edge in the minimum spanning tree.
700: The edge is also called the 
701: {\em spanning bottleneck edge} at $x$ ($SBE(x)$ in short), 
702: and its weight is denoted by $w_{SBE}(x)$. 
703: It is easily observed that $W_{SBE}(x)$ 
704: is the minimum value of $w$ such that  
705: the subgraph of $G(x)$ constructed from the  
706: set of edges whose weights are less than or equal to $w$ 
707: is connected.
708: 
709: It is natural and important problem 
710: in sensitivity analysis~\cite{G80} 
711: to trace the trajectory 
712: $y= w_{SBE}(x)$ of the weight of $SBE(x)$. 
713: Analogously to the $k$-level, there are at most $k$ 
714: maximal peaks in the trajectory $y = w_{SBE}(x)$.
715: We want to compute peaks in the trajectory.
716: 
717: \subsection{One-shot query for the longest edge in MST}
718: 
719: We first consider efficient query for $SBE(x_0)$
720: at any given value of $x_0$ of the parameter. 
721: This query is called {\em one-shot query for the $SBE$}.
722: A naive method is the following: First construct $T(x_0)$ in 
723: $O(n)$ time, and select its longest edge.   
724: Instead, we use the  Matou\v{s}ek's set partition.
725: In the dual space, the dual points of $n$ weight functions
726: of the edges are partitioned into $r$ subsets of size 
727: $O(n/r)$. Each subset is contained in a triangle, and 
728: $O(r^{1/2})$ triangles are cut by any query line.
729: 
730: Accordingly, we partition the set of $n$ edges
731: into $r$ subsets each has $O(n/r)$ edges. 
732: For each subset, we compute a spanning forest 
733: (irrelevant to edge weights) and store the connected components
734: except singletons. Thus, each component has a forest with 
735: $O(\min\{ k, n/r\})$ edges.
736: This computation can be done in $O(n)$ 
737: additional time.
738: 
739: If we are given a parameter value $x_0$,  
740: we sort $O(r)$ vertices of the 
741: triangles with respect to the inner product 
742: of them with the vector $(x_0, 1)$.  
743: We do binary search on this sorting list.
744: We guess a vertex $v$, and consider a line 
745: $\ell:  Y = x_0 X + c$ which goes through $v$. 
746: We recognize the triangles which are below $\ell$; 
747: thus, the edges in the subsets associated with 
748: the triangles has weights less than $c$.   
749: We construct a spanning forest $F$ of the union 
750: of forests in these subsets: 
751: since they have $O(rk)$ edges, this can be done 
752: in $O( rk )$ time. 
753: If the forest $F$ is a spanning tree, we decide that 
754: $v$ is too large in the sorting list, and 
755: continue the binary search.
756: 
757: Otherwise, we consider the subsets associated with 
758: the triangles cut by $\ell$. 
759: They contain $O( n/ r^{1/2})$ points in total. 
760: We sort them with respect to the weights, and 
761: greedily insert them into $F$ until we have a spanning tree.
762: If we do not have a spanning tree, we decide $v$ is 
763: too small, and continue the binary search. 
764: If we have a spanning tree, 
765: we decide $v$ is a candidate, but it may be too large,
766: and continue to search for  
767: the lowest vertex $v$ satisfying the above condition, and 
768: return the longest edge in the tree for that $v$. 
769: Note that the spanning tree is not  
770: a minimum spanning tree in general; however, we correctly
771: recognize the longest edge in a minimum spanning tree.
772: 
773: This process needs $O( rk + n/r^{1/2})$ time, and 
774: we do this process $O(\log r)$ times during the binary search.
775: Thus, if we set $r = (n/k)^{2/3}$,  
776: the time complexity is $O(n^{2/3}k^{1/3} \log (n/k))$, 
777: which is slightly better than $O(n)$ if $k = o(n)$. 
778: By applying a hierarchical subdivision, 
779: we can further improve it: 
780: We fist start $r = r_1$, and 
781: decompose the subset of size $O(r_1n)$ into $r_2$ smaller 
782: subsets, where $r_2 = r_1^{1/2}$, and we further continue 
783: the refinement for $r_i = r_{i-1}^{1/2}$ until 
784: $r_i$ becomes below a constant. 
785: The query time becomes \\ 
786: $k (r_1 + r_1^{1/2} r_2 + \ldots + 
787: (r_1r_2 \ldots r_{i-1})^{1/2} r_{i}) + 
788: n/(r_1r_2 \ldots r_i)^{1/2}$. 
789: Setting $r_1 = (n/k)^{1/2}$, 
790: this enables $\tilde{O}((nk)^{1/2})$ 
791: time computation for $SBE(x_0)$. 
792: Similarly to the case of halfspace range searching,
793: we can combine hierarchical cutting~\cite{Chazelle93} 
794: of the arrangement to have a 
795: preprocess-query trade-off (we omit details in this version).
796: Indeed, we have the following proposition:
797:   
798: \begin{proposition}
799: If we spend $\tilde{O}(m)$ preprocessing time for 
800: $n \le m $, we can do the one-shot query for 
801: $SBE$ in \\
802: $\tilde{O}( n/ (m/k)^{1/2} + k)$ time.  
803: \end{proposition}
804: 
805: Moreover, we will later use the following 
806: {\em two-shot reporting query} for a spanning forest, 
807: which reports 
808: a spanning forest consisting of edges whose weight 
809: functions are below both of given two query points 
810: $(x_0, y_0)$ and $(x_1, y_1)$. 
811: This can be done similarly to one-shot query
812: (this is a counterpart of the simplex range searching
813: if the one-shot query is a counterpart of the halfplane 
814: range searching).
815:   
816: \begin{proposition}
817: If we spend $\tilde{O}(m)$ preprocessing time for 
818: $n \le m $, we can do the two-shot 
819: reporting query in \\
820: $\tilde{O}(n/ (m/k)^{1/2} + k )$ time.  
821: \end{proposition}
822: 
823: \subsection{Computing the maximum peak}
824: 
825: Let us consider the problem of computing the 
826: maximum peak in $I$. 
827: First, we straightforwardly apply Roos-Widmayer's algorithm.
828: For a given $y$-value $y_0$, we want to decide whether 
829: $Max_{x \in I} w_{SBE}(x) \le y_0$ or not.
830: We dynamically update
831: the spanning forest associated with edges with weight 
832: below $y_0$ from $x= x_0$ to $x= x_1$ if $I = [x_0, x_1]$. 
833: If we find a value $x \in I$ such that 
834: the spanning forest becomes a spanning tree, we know  
835: $Max_{x \in I} w_{SBE}(x) \le y_0$.
836: It costs $O(k^{1/2})$ time to update a minimum spanning forest
837: for insertion and deletion of edges.
838: Suppose that we sweep on the line $y= y_0$ 
839: updating the minimum spanning forest.
840: The line $y=y_0$ has at most $n$ intersections with 
841: lines associated with weight functions, and hence 
842: the method needs $O(n k^{1/2})$ time for the decision.
843: Thus, the maximum peak can be found in 
844: $O(n k^{1/2} \log n)$ time.
845: 
846: We try to improve the above time complexity. 
847: We subdivide the line $y=y_0$ into $\lceil n/s \rceil$ intervals 
848: such that each interval contains at most $s$ intersection
849: points. 
850: For each interval $I_i = [x_i, x_{i+1}]$, 
851: we perform the two-shot reporting query 
852: at $(x_i, y_0)$ and $(x_{i+1}, y_0)$. 
853: The reported forest $F$ is constructed from 
854: edges whose weight is less than $y_0$ both at $x=x_i$ and
855: $x= x_{i+1}$. If the forest has more than $s+1$ connected 
856: components, it is impossible that $w_{SBE}(t) \le y_0$ 
857: for a $t \in I_i$. 
858: Otherwise, we dynamically maintain the spanning tree, 
859: where we contract nodes into at most $s+1$ super nodes 
860: each of which associate with a connected component of 
861: the forest $F$.
862: Our graph has only $s$ edges, and hence the update 
863: can be done $O(\sqrt{s})$ time per intersection.
864: 
865: Hence, total time complexity becomes \\
866: $\tilde{O}( n \sqrt{s} + (n/s)[n/(m/k)^{1/2} + k] + m)$. \\
867: If we optimize this, we have 
868: $\tilde{O}( n^{8/7} k^{1/7} + n k^{1/3})$. 
869: This is an improvement over $O(n k^{1/2})$, 
870: since $n \le k(k+1)/2$.   
871: 
872: The minimum of $w_{SBE}(x)$ can be analogously computed.
873: Hence, we have the following theorem:
874: 
875: \begin{theorem}
876: For a given interval $I$ of the parameter value $x$, 
877: we can compute both the maximum and the minimum 
878: of $w_{SBE}(x)$ for  $x \in I$  in 
879: $\tilde{O}(n^{8/7} k^{1/7} + n k^{1/3})$ time.
880: \end{theorem}
881: 
882: We can generalize the above theorem for the {\em truncated 
883: matroid} of the graphic matroid to obtain the 
884: following proposition (we omit the proof):
885: 
886: \begin{proposition}
887: For a constant $c$, let $w_{SBE-c}(x)$ be the minimum value
888: of $w$ such that the set of edges in $G(x)$ with weights  
889: less than or equal to $w$ has at most $c$ connected
890: components.    
891: We can compute both 
892: the maximum and the minimum of $w_{SBE-c}(x)$ in 
893: $\tilde{O}(n^{8/7} k^{1/7} + n k^{1/3})$ time.
894: \end{proposition}
895: 
896: %\begin{corollary}
897: %We can compute the maximum minimal peak of $w_{SBE}(x)$ in 
898: %$\tilde{O}(n^{8/7} k^{1/7} + n k^{1/3})$ time.
899: %\end{corollary}
900: %\begin{proof}
901: %A minimal peak of $w_{SBE}(x)$ corresponds to a maximal peak
902: %in $w_{SBE-2}(x)$ in an one-to-one fashion; 
903: %hence we have the corollary.
904: %\end{proof}
905: 
906: \subsection{Computing all local peaks for $SBE$ }
907: 
908: It is desired to apply the method of computing all peaks
909: in the $k$-level to $SBE$ in a parametric graph.
910: It is known that there are at most $k$ maximal peaks 
911: in $y = w_{SBE}(x)$. 
912: Unfortunately, we have no good method to know the 
913: number of peaks within an interval $I = [x_0, x_1]$ exactly,
914: since we do not have a property that is a counterpart of 
915: Lemma~\ref{lem:comb}. 
916: The only known method for the authors 
917: is to compute the minimum spanning 
918: trees $T(x_0)$ and $T(x_1)$ explicitly, and 
919: compute the difference $d(I)$ between   
920: the number of edges whose weight functions are 
921: positive slopes.
922: For any disjoint set of intervals, the sum of $d(I)$ 
923: over the intervals is at most $k$, and 
924: $d(I)$ gives an upper bound of maximal peaks 
925: of $y= w_{SBE}(x)$ within $I$.  However, it is often an 
926: overestimate, since $d(I)$ gives the number of maximal peaks 
927: of $k$ trajectories of weights of 
928: all edges (not only maximum one) in the parametric 
929: minimum spanning tree, where we only include peaks 
930: where an edge in the spanning tree is replaced by 
931: an edge outside the spanning tree. 
932: 
933: By using the above observation, 
934: we have an $\tilde{O}( k f(n,k))$ time algorithm
935: if we have an algorithm to compute $T(x_0)$ for 
936: a given $x_0$ in $O(f(n,k))$ time.
937: Unfortunately, we only have
938: $f(n,k)= O(n)$, which leads to an $\tilde{O} ( kn)$ time 
939: algorithm, which is inferior to a known algorithm to compute 
940: all transitions of the parametric minimum spanning tree.  
941: We can compute $\tau$ largest peaks in transitions of 
942: edge weights in MST in $\tilde{O}(\tau n)$ time,
943: if we include all peaks of all edges in MST; however, 
944: the number of peaks appeared at the transitions 
945: of the longest edge among them may be much smaller than 
946: $\tau$.  
947: 
948: Although the above method is not attractive for the minimum
949: spanning tree, the method is applicable 
950: to any parametric matroid, 
951: and hence it is useful if we 
952: do not have a dynamic algorithm 
953: to maintain a minimum weight base.
954: The current 
955: $O(kn \log n)$ time algorithm to compute the transitions 
956: of parametric minimum spanning tree needs $O(k^{2/3})$ time 
957: method (indeed, it can be done in $O(k^{1/2})$ time) 
958: to update a minimum spanning tree. Thus,
959: the analogue of the algorithm 
960: needs $\tilde{O}( k^{1/3} n q  + kn)$ time to compute 
961: all the transitions of a parametric matroid of rank $k$, where
962: $q$ is the time complexity to update its minimum weight base. 
963: 
964: \section{Concluding remarks}
965: The number of maximal peaks in a $k$-level is 
966: known to be at most
967:  ${}_{k} C _{d}$ (number of combinations choosing 
968: $d$ elements from $k$ elements) if we have $d$ dimensions
969: \cite{Clarkson}.
970: Hence, this is much smaller than the complexity of 
971: whole arrangement, especially if $k$ is much smaller than $n$.  
972: However, to the author's knowledge, 
973: the problem of computing peaks in the $k$-level 
974: for a higher dimensional arrangement is open. 
975: Although the algorithm of Roos and Widmayer can be applied 
976: to $3$-dimensional case, it needs $\tilde{O}(n^{2})$ time
977: to compute the largest peak (i.e. global maximum) if 
978: we naively implement it.
979: One necessary constituent is to develop a counterpart of 
980: Lemma~\ref{lem:count}: Given 
981: an arrangement of $n$ hyperplanes in the 
982: three-dimensional space, preprocess it, and for any given  
983: three points $A$, $B$, and $C$ in 
984: the plane $z=0$, decide whether the triangle  $ABC$ contains 
985: (a projection) of a peak in the $k$-level or not efficiently.
986: For the purpose, we probably need 
987: a counterpart of Lemma~\ref{lem:comb}: 
988: Give a criterion of the existence of a peak from the 
989: information of the set of hyperplanes below $k$-level at each 
990: of $A$, $B$, and $C$.  
991: In two-dimensional space, the lines are classified into 
992: positive slope lines and negative slope lines, while 
993: this kind of natural discrete classification of planes
994: in the space does not exist.
995: Moreover, it is difficult to find a counterpart of 
996: concave chain decomposition for three dimensional 
997: $k$-level~\cite{KT99}.
998: These lacks make the problem difficult,
999: although the authors think it is quite attractive.
1000: 
1001: Another interesting problem is an an extension of  
1002: parametric $SBE$ problem to the 
1003: $c$-edge-connectedness for $c \ge 2$. 
1004: Here, we hope we can develop 
1005: efficient solutions by combining geomertic methods and 
1006: graph theoretical methods\cite{EGI97,Fred91}.  
1007: 
1008: \subsection*{Acknowledgement}
1009: The authors gratefully acknowledge referees of the SOCG 
1010: conference for informing several references on 
1011: recent improved algorithms for computing $k$-level and 
1012: parametric minimum spanning trees. 
1013: 
1014: 
1015: %\newpage
1016: \begin{thebibliography}{99}
1017: 
1018: \bibitem{Aga}
1019: P. Agarwal, ``Range Searching,'' 
1020: Section 31 of {\em Handbook of Discrete and 
1021: Computational Geometry,} (1997), 575--598, CRC Press.
1022: 
1023: \bibitem{AACS98}
1024: P. Agarwal, B. Aronov, T. Chan, and  M. Sharir,
1025: ``On Levels in Arrangement of Lines, Segments, Planes, and 
1026: Triangles,'' 
1027: {\em Discrete \& Comput. Geom.,} {\bf 19} 
1028: (1998), pp. 315-331. 
1029: 
1030: \bibitem{AEGH98}
1031: P. Agarwal, D. Eppstein, L. Guibas, and M. Henzinger,
1032: ``Parametric and Kinetic Minimum Spanning Trees.'' 
1033: {\em Proc. 39th IEEE FOCS} (1998) pp.596-605.
1034: \bibitem{BGH97}
1035: J. Bash, L. Guibas, and H. Hershberger,
1036: ``Data Structures for Mobile Data,"
1037: {\em Proc. 8th ACM-SIAM Symp. on Disc. Alg.,} (1997), pp. 747-756. 
1038: \bibitem{BJ00}
1039: G. Brodal and R. Jacob,
1040: ``Dynamic Planar Convex Hull with Optimal 
1041: Query Time and $O(\log n \cdot \log\log n)$
1042: Update Time''
1043: {\em Proc. 7th SWAT, LNCS 1851} (2000),
1044: pp. 57-70. 
1045: 
1046: \bibitem{Chan99}
1047: T. Chan, 
1048: ``Dynamic Planar Convex Hull Operations
1049: in Near-Logarithmic Amortized Time,''
1050: {\em Proc. 40th IEEE FOCS} (1999) pp.92-99.
1051: 
1052: \bibitem{CSSS89}
1053: R. Cole, J. Salowe, W. Steiger, and E. Szemer\'{e}di,
1054: ``An Optimal Algorithm for Slope Selection,''
1055: {\em SIAM J. Comput.,} {\bf 18-4} (1989), pp. 792-810.
1056: 
1057: \bibitem{CSY87}
1058: R. Cole, M. Sharir, and C. Yap,
1059: ``On $K$-hulls and Related Problems,'' 
1060: {\em SIAM J. Comput.,} {\bf 16} (1987), pp. 61-77.
1061: 
1062: \bibitem{Chazelle93}
1063: B. Chazelle,
1064: ``Cutting Hyperplanes for Divide-And-Conquer'',
1065: {\em Discrete \& Comput. Geom.,} {\bf 9} (1993) pp. 145--158. 
1066: 
1067: \bibitem{Clarkson}
1068: K. Clarkson, 
1069: ``A Bound on Local Minima of Arrangement
1070: That Implies the Upper Bound Theorem,''
1071: {\em Discrete \& Comput. Geom.,} 10 (1993), pp. 427-433.
1072: 
1073: \bibitem{Dey97}
1074: T. Dey,
1075: ``Improved Bound on Planar K-Sets and Related Problems,'' 
1076: {\em Discrete \& Comput. Geom.,} 19 
1077: (1998), pp. 373-383. 
1078: 
1079: \bibitem{Edels}
1080: H. Edelsbrunner,
1081: {\em Algorithms in Combinatorial Geometry},
1082: ETACS Monographs on TCS 10, Springer-Verlag, 1987.
1083: 
1084: \bibitem{Eppstein95}
1085: D. Eppstein,
1086: ``Geometric Lower Bounds for Parametric Matroid Optimization,''
1087: {\em Discrete \& Comput. Geom.,} (1998), pp. 463-476.
1088: 
1089: \bibitem{EGI97}
1090: D. Eppstein, Z. Galil, G.F.Italiano, and A. Nissenzweig,
1091: ``Sparcification--A Technique for Speeding Up Dynamic
1092: Graph Algorithms,''
1093: {\em J. ACM,} {\bf 44-5} (1997), pp. 669-696. 
1094: 
1095: 
1096: \bibitem{FSE96}
1097: D. Fernandez-Baca, G. Slutki, and D. Eppstein,
1098: `` Using Sparcification for Parametric Minimum Spanning Tree
1099: Problems,'' {\em Nordic J. Computing,} {\bf 3-4} (1996), 
1100: pp. 352-366.
1101: 
1102: \bibitem{Fred91}
1103: G. Frederickson, 
1104: ``Ambivalent data structures for dynamic 2-edge-connectivity 
1105: and $k$-smallest spanning trees'' 
1106: {\em Proc. 32nd FOCS} (1991) 632--641.
1107: 
1108: 
1109: \bibitem{G79}
1110: D. Gusfield, 
1111: ``Bound for the Parametric Spanning Tree Problem,''
1112: {\em Proc. Humbolt Conf. Graph Theory, Combinatorics, 
1113: and Computing,}  (1979), pp. 173-183.
1114: 
1115: \bibitem{G80}
1116: D. Gusfield,
1117: {\em Sensitivity Analysis for Combinatorial Optimization,}
1118: Ph. D. Thesis, Memorandum No. UCB/ERL M80/22, U.C. Berkeley, 1980.
1119: 
1120: \bibitem{KIT95}
1121: N. Katoh, K. Iwano, and T. Tokuyama,
1122: ``On Minimum and Maximum Spanning 
1123: Trees of Linearly Moving Points,''
1124: {\em Discrete \& Comput. Geom.,} 13 (1995) pp. 161-176.
1125: 
1126: \bibitem{HP00}
1127: S. Har-Peled, 
1128: ``Taking a Walk in a Planar Arrangement''
1129: {\em SIAM J. Comput.} {\bf 30}
1130: (2000) pp. 1341-1367.
1131: 
1132: 
1133: \bibitem{KTT99}
1134: N. Katoh, H. Tamaki and T. Tokuyama,
1135: ``Parametric Polymatroid Optimization and Its Geometric Applications,''
1136: {\em Proc. 10th ACM-SIAM SODA,} (1999), pp. 517-526. 
1137: 
1138: \bibitem{KT99}
1139: N. Katoh and T. Tokuyama, 
1140: ``Lov\'{a}sz's Theorem for the $K$-level of an Arrangement of Concave 
1141: Surfaces and Its Applications," {\em Proceedings 
1142: of 40th IEEE FOCS,} (1999), pp. 389-398.
1143: 
1144: \bibitem{L71} 
1145: L. Lov\'{a}sz, 
1146: ``On the Number of Halving Lines,'' 
1147: {\em Ann. Univ. Sci. Budapest, Et\"{o}v\"{o}s, Sect. Math., 14}, 
1148: (1971) pp. 107-108.   
1149: 
1150: \bibitem{M91}
1151: J. Matou\v{s}ek, 
1152: ``Efficient Partition Trees,'' 
1153: {\em Discrete \& Comput.
1154: Geom.,} {\bf 10 }(1992), pp. 315--334.  
1155: 
1156: \bibitem{Me83}
1157: N. Megiddo, ``Applying Parallel Computation Algorithms
1158: in the Design of Serial Algorithms,''
1159: {\em J. ACM,} {\bf 30} (1983), pp.852--865.
1160: 
1161: \bibitem{RW94}
1162: T. Roos and P. Widmayer, 
1163: ``K-Violation Linear Programming,''
1164: {\em Information Processing Letters,} {\bf 52}
1165: (1994), pp. 109-114. 
1166: 
1167: \bibitem{Salowe97}
1168: J. Salowe, Parametric Search,
1169: Section 37 of {\em Handbook of Discrete and 
1170: Computational Geometry,} (1997), 683--695, CRC Press.
1171: 
1172: \bibitem{Toth00}
1173: G. T\'{o}th,
1174: ``Point Sets with Many $k$-sets,''
1175: {\em Proc. 16th SOCG,} (2000), pp. 37-42.
1176: 
1177: \bibitem{WEB}
1178: Web page on k-set, dissecting lines, and parametric optimization:  
1179: http://liinwww.ira.uka.de/searchbib/Theory/kset.
1180: 
1181: \end{thebibliography}
1182: 
1183:  
1184: \end{document}
1185: 
1186: 
1187: 
1188: 
1189: 
1190: 
1191: 
1192: 
1193: 
1194: 
1195: 
1196: 
1197: 
1198: 
1199: 
1200: 
1201: 
1202: 
1203: 
1204: 
1205: 
1206: 
1207: 
1208: 
1209: