scholarly journals Persistent triangulations

2001 ◽  
Vol 11 (5) ◽  
pp. 441-466 ◽  
Author(s):  
GUY BLELLOCH ◽  
HAL BURCH ◽  
KARL CRARY ◽  
ROBERT HARPER ◽  
GARY MILLER ◽  
...  

Triangulations of a surface are of fundamental importance in computational geometry, computer graphics, and engineering and scientific simulations. Triangulations are ordinarily represented as mutable graph structures for which both adding and traversing edges take constant time per operation. These representations of triangulations make it difficult to support persistence, including ‘multiple futures’, the ability to use a data structure in several unrelated ways in a given computation; ‘time travel’, the ability to move freely among versions of a data structure; or parallel computation, the ability to operate concurrently on a data structure without interference. We present a purely functional interface and representation of triangulated surfaces, and more generally of simplicial complexes in higher dimensions. In addition to being persistent in the strongest sense, the interface more closely matches the mathematical definition of triangulations (simplicial complexes) than do interfaces based on mutable representations. The representation, however, comes at the cost of requiring O(lg n) time for traversing or adding triangles (simplices), where n is the number of triangles in the surface. We show both analytically and experimentally that for certain important cases, this extra cost does not seriously affect end-to-end running time. Analytically, we present a new randomized algorithm for 3-dimensional Convex Hull based on our representations for which the running time matches the Ω(n lg n) lower-bound for the problem. This is achieved by using only O(n) traversals of the surface. Experimentally, we present results for both an implementation of the 3-dimensional Convex Hull and for a terrain modeling algorithm, which demonstrate that, although there is some cost to persistence, it seems to be a small constant factor.

2012 ◽  
Vol 22 (04) ◽  
pp. 341-364 ◽  
Author(s):  
TIMOTHY M. CHAN

We present three results related to dynamic convex hulls: • A fully dynamic data structure for maintaining a set of n points in the plane so that we can find the edges of the convex hull intersecting a query line, with expected query and amortized update time O( log 1+εn) for an arbitrarily small constant ε > 0. This improves the previous bound of O( log 3/2n). • A fully dynamic data structure for maintaining a set of n points in the plane to support halfplane range reporting queries in O( log n+k) time with O( polylog n) expected amortized update time. A similar result holds for 3-dimensional orthogonal range reporting. For 3-dimensional halfspace range reporting, the query time increases to O( log 2n/ log log n + k). • A semi-online dynamic data structure for maintaining a set of n line segments in the plane, so that we can decide whether a query line segment lies completely above the lower envelope, with query time O( log n) and amortized update time O(nε). As a corollary, we can solve the following problem in O(n1+ε) time: given a triangulated terrain in 3-d of size n, identify all faces that are partially visible from a fixed viewpoint.


1996 ◽  
Vol 06 (02) ◽  
pp. 231-241 ◽  
Author(s):  
OMER BERKMAN ◽  
BARUCH SCHIEBER ◽  
UZI VISHKIN

We present a parallel algorithm for finding the convex hull of a sorted point set. The algorithm runs in O( log log n) (doubly logarithmic) time using n/ log log n processors on a Common CRCW PRAM. To break the Ω( log n/ log log n) time barrier required to output the convex hull in a contiguous array, we introduce a novel data structure for representing the convex hull. The algorithm is optimal in two respects: (1) the time-processor product of the algorithm, which is linear, cannot be improved, and (2) the running time, which is doubly logarithmic, cannot be improved even by using a linear number of processors. The algorithm demonstrates the power of the “the divide-and-conquer doubly logarithmic paradigm” by presenting a non-trivial extension to situations that previously were known to have only slower algorithms.


2011 ◽  
Vol 03 (04) ◽  
pp. 423-431
Author(s):  
JIN-YI LIU

The problem considered in this paper is: Given an integer k > 0 and a set P of n points in the plane each with a corresponding nonnegative weight, find a step function f with k steps that minimize the maximum weighted vertical distance between f and all the points in P. We present a randomized algorithm to solve the problem in O(n log n) expected running time. The bound is obviously optimal for the unsorted input. The previously best known algorithm runs in O(n log 2 n) worst-case time. Another merit of the algorithm is its simplicity. The algorithm is just a randomized implementation of Frederickson and Johnson's matrix searching technique, and it only exploits a simple data structure.


2021 ◽  
Author(s):  
ZEGOUR Djamel Eddine

Abstract Today, Red-Black trees are becoming a popular data structure typically used to implement dictionaries, associative arrays, symbol tables within some compilers (C++, Java …) and many other systems. In this paper, we present an improvement of the delete algorithm of this kind of binary search tree. The proposed algorithm is very promising since it colors differently the tree while reducing color changes by a factor of about 29%. Moreover, the maintenance operations re-establishing Red-Black tree balance properties are reduced by a factor of about 11%. As a consequence, the proposed algorithm saves about 4% on running time when insert and delete operations are used together while conserving search performance of the standard algorithm.


1996 ◽  
Vol 3 (37) ◽  
Author(s):  
Gerth Stølting Brodal ◽  
Chris Okasaki

Brodal recently introduced the first implementation of imperative priority queues to support findMin, insert, and meld in O(1) worst-case time, and deleteMin in O(log n) worst-case time. These bounds are asymptotically optimal among all comparison-based priority queues. In this paper, we adapt<br />Brodal's data structure to a purely functional setting. In doing so, we both simplify the data structure and clarify its relationship to the binomial queues of Vuillemin, which support all four operations in O(log n) time. Specifically, we derive our implementation from binomial queues in three steps: first, we reduce the running time of insert to O(1) by eliminating the possibility of cascading links; second, we reduce the running time of findMin to O(1) by adding a global root to hold the minimum element; and finally, we reduce the running time of meld to O(1) by allowing priority queues to contain other<br />priority queues. Each of these steps is expressed using ML-style functors. The last transformation, known as data-structural bootstrapping, is an interesting<br />application of higher-order functors and recursive structures.


Author(s):  
M. McDermott ◽  
S. K. Prasad ◽  
S. Shekhar ◽  
X. Zhou

Discovery of interesting paths and regions in spatio-temporal data sets is important to many fields such as the earth and atmospheric sciences, GIS, public safety and public health both as a goal and as a preliminary step in a larger series of computations. This discovery is usually an exhaustive procedure that quickly becomes extremely time consuming to perform using traditional paradigms and hardware and given the rapidly growing sizes of today’s data sets is quickly outpacing the speed at which computational capacity is growing. In our previous work (Prasad et al., 2013a) we achieved a 50 times speedup over sequential using a single GPU. We were able to achieve near linear speedup over this result on interesting path discovery by using Apache Hadoop to distribute the workload across multiple GPU nodes. Leveraging the parallel architecture of GPUs we were able to drastically reduce the computation time of a 3-dimensional spatio-temporal interest region search on a single tile of normalized difference vegetative index for Saudi Arabia. We were further able to see an almost linear speedup in compute performance by distributing this workload across several GPUs with a simple MapReduce model. This increases the speed of processing 10 fold over the comparable sequential while simultaneously increasing the amount of data being processed by 384 fold. This allowed us to process the entirety of the selected data set instead of a constrained window.


2020 ◽  
Author(s):  
Shalin Shah

<p>A clique in a graph is a set of vertices that are all directly connected</p><p>to each other i.e. a complete sub-graph. A clique of the largest size is</p><p>called a maximum clique. Finding the maximum clique in a graph is an</p><p>NP-hard problem and it cannot be solved by an approximation algorithm</p><p>that returns a solution within a constant factor of the optimum. In this</p><p>work, we present a simple and very fast randomized algorithm for the</p><p>maximum clique problem. We also provide Java code of the algorithm</p><p>in our git repository. Results show that the algorithm is able to find</p><p>reasonably good solutions to some randomly chosen DIMACS benchmark</p><p>graphs. Rather than aiming for optimality, we aim to find good solutions</p><p>very fast.</p>


2020 ◽  
Author(s):  
Shalin Shah

<p>A clique in a graph is a set of vertices that are all directly connected</p><p>to each other i.e. a complete sub-graph. A clique of the largest size is</p><p>called a maximum clique. Finding the maximum clique in a graph is an</p><p>NP-hard problem and it cannot be solved by an approximation algorithm</p><p>that returns a solution within a constant factor of the optimum. In this</p><p>work, we present a simple and very fast randomized algorithm for the</p><p>maximum clique problem. We also provide Java code of the algorithm</p><p>in our git repository. Results show that the algorithm is able to find</p><p>reasonably good solutions to some randomly chosen DIMACS benchmark</p><p>graphs. Rather than aiming for optimality, we aim to find good solutions</p><p>very fast.</p>


2021 ◽  
Vol 182 (3) ◽  
pp. 219-242
Author(s):  
Mostafa Haghir Chehreghani ◽  
Albert Bifet ◽  
Talel Abdessalem

Graphs (networks) are an important tool to model data in different domains. Realworld graphs are usually directed, where the edges have a direction and they are not symmetric. Betweenness centrality is an important index widely used to analyze networks. In this paper, first given a directed network G and a vertex r ∈ V (G), we propose an exact algorithm to compute betweenness score of r. Our algorithm pre-computes a set ℛ𝒱(r), which is used to prune a huge amount of computations that do not contribute to the betweenness score of r. Time complexity of our algorithm depends on |ℛ𝒱(r)| and it is respectively Θ(|ℛ𝒱(r)| · |E(G)|) and Θ(|ℛ𝒱(r)| · |E(G)| + |ℛ𝒱(r)| · |V(G)| log |V(G)|) for unweighted graphs and weighted graphs with positive weights. |ℛ𝒱(r)| is bounded from above by |V(G)| – 1 and in most cases, it is a small constant. Then, for the cases where ℛ𝒱(r) is large, we present a simple randomized algorithm that samples from ℛ𝒱(r) and performs computations for only the sampled elements. We show that this algorithm provides an (ɛ, δ)-approximation to the betweenness score of r. Finally, we perform extensive experiments over several real-world datasets from different domains for several randomly chosen vertices as well as for the vertices with the highest betweenness scores. Our experiments reveal that for estimating betweenness score of a single vertex, our algorithm significantly outperforms the most efficient existing randomized algorithms, in terms of both running time and accuracy. Our experiments also reveal that our algorithm improves the existing algorithms when someone is interested in computing betweenness values of the vertices in a set whose cardinality is very small.


Sign in / Sign up

Export Citation Format

Share Document