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: