Topological Algorithms for Geographic and Geometric Graphs
Total Page:16
File Type:pdf, Size:1020Kb

Load more
Recommended publications
-
Persistent Predecessor Search and Orthogonal Point Location on the Word
Persistent Predecessor Search and Orthogonal Point Location on the Word RAM∗ Timothy M. Chan† August 17, 2012 Abstract We answer a basic data structuring question (for example, raised by Dietz and Raman [1991]): can van Emde Boas trees be made persistent, without changing their asymptotic query/update time? We present a (partially) persistent data structure that supports predecessor search in a set of integers in 1,...,U under an arbitrary sequence of n insertions and deletions, with O(log log U) { } expected query time and expected amortized update time, and O(n) space. The query bound is optimal in U for linear-space structures and improves previous near-O((log log U)2) methods. The same method solves a fundamental problem from computational geometry: point location in orthogonal planar subdivisions (where edges are vertical or horizontal). We obtain the first static data structure achieving O(log log U) worst-case query time and linear space. This result is again optimal in U for linear-space structures and improves the previous O((log log U)2) method by de Berg, Snoeyink, and van Kreveld [1995]. The same result also holds for higher-dimensional subdivisions that are orthogonal binary space partitions, and for certain nonorthogonal planar subdivisions such as triangulations without small angles. Many geometric applications follow, including improved query times for orthogonal range reporting for dimensions 3 on the RAM. ≥ Our key technique is an interesting new van-Emde-Boas–style recursion that alternates be- tween two strategies, both quite simple. 1 Introduction Van Emde Boas trees [60, 61, 62] are fundamental data structures that support predecessor searches in O(log log U) time on the word RAM with O(n) space, when the n elements of the given set S come from a bounded integer universe 1,...,U (U n). -
X-Fast and Y-Fast Tries
x-Fast and y-Fast Tries Outline for Today ● Bitwise Tries ● A simple ordered dictionary for integers. ● x-Fast Tries ● Tries + Hashing ● y-Fast Tries ● Tries + Hashing + Subdivision + Balanced Trees + Amortization Recap from Last Time Ordered Dictionaries ● An ordered dictionary is a data structure that maintains a set S of elements drawn from an ordered universe � and supports these operations: ● insert(x), which adds x to S. ● is-empty(), which returns whether S = Ø. ● lookup(x), which returns whether x ∈ S. ● delete(x), which removes x from S. ● max() / min(), which returns the maximum or minimum element of S. ● successor(x), which returns the smallest element of S greater than x, and ● predecessor(x), which returns the largest element of S smaller than x. Integer Ordered Dictionaries ● Suppose that � = [U] = {0, 1, …, U – 1}. ● A van Emde Boas tree is an ordered dictionary for [U] where ● min, max, and is-empty run in time O(1). ● All other operations run in time O(log log U). ● Space usage is Θ(U) if implemented deterministically, and O(n) if implemented using hash tables. ● Question: Is there a simpler data structure meeting these bounds? The Machine Model ● We assume a transdichotomous machine model: ● Memory is composed of words of w bits each. ● Basic arithmetic and bitwise operations on words take time O(1) each. ● w = Ω(log n). A Start: Bitwise Tries Tries Revisited ● Recall: A trie is a simple data 0 1 structure for storing strings. 0 1 0 1 ● Integers can be thought of as strings of bits. 1 0 1 1 0 ● Idea: Store integers in a bitwise trie. -
Lock-Free Concurrent Van Emde Boas Array
Lock-free concurrent van Emde Boas Array Ziyuan Guo Reiji Suda (Adviser) [email protected] [email protected] The University of Tokyo Graduate School of Information Science and Technology Tokyo, Japan ABSTRACT To unleash the power of modern multi-core processors, concur- Lock-based data structures have some potential issues such as dead- rent data structures are needed in many cases. Comparing to lock- lock, livelock, and priority inversion, and the progress can be de- based data structures, lock-free data structures can avoid some po- layed indefinitely if the thread that is holding locks cannot acquire tential issues such as deadlock, livelock, and priority inversion, and a timeslice from the scheduler. Lock-free data structures, which guarantees the progress [5]. guarantees the progress of some method call, can be used to avoid these problems. This poster introduces the first lock-free concur- 2 OBJECTIVES rent van Emde Boas Array which is a variant of van Emde Boas • Create a lock-free search tree based on van Emde Boas Tree. Tree. It’s linearizable and the benchmark shows significant per- • Get better performance and scalability. formance improvement comparing to other lock-free search trees • Linearizability, i.e., each method call should appear to take when the date set is large and dense enough. effect at some instant between its invocation and response [5]. CCS CONCEPTS • Computing methodologies → Concurrent algorithms. 3 RELATED WORK The base of our data structure is van Emde Boas Tree, whichis KEYWORDS named after P. van Emde Boas, the inventor of this data structure [7]. -
Approximation Algorithms for Polynomial-Expansion and Low-Density Graphs∗
Approximation Algorithms for Polynomial-Expansion and Low-Density Graphs∗ Sariel Har-Peledy Kent Quanrudz September 23, 2015 Abstract We investigate the family of intersection graphs of low density objects in low dimensional Eu- clidean space. This family is quite general, includes planar graphs, and in particular is a subset of the family of graphs that have polynomial expansion. We present efficient (1 + ")-approximation algorithms for polynomial expansion graphs, for Independent Set, Set Cover, and Dominating Set problems, among others, and these results seem to be new. Naturally, PTAS's for these problems are known for subclasses of this graph family. These results have immediate interesting applications in the geometric domain. For example, the new algorithms yield the only PTAS known for covering points by fat triangles (that are shallow). We also prove corresponding hardness of approximation for some of these optimization problems, characterizing their intractability with respect to density. For example, we show that there is no PTAS for covering points by fat triangles if they are not shallow, thus matching our PTAS for this problem with respect to depth. 1. Introduction Many classical optimization problems are intractable to approximate, let alone solve. Motivated by the discrepancy between the worst-case analysis and real-world success of algorithms, more realistic models of input have been developed, alongside algorithms that take advantage of their properties. In this paper, we investigate approximability of some classical optimization problems (e.g., set cover and independent set, among others) for two closely-related families of graphs: Graphs with polynomially- bounded expansion, and intersection graphs of geometric objects with low-density. -
Introduction to Algorithms, 3Rd
Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Introduction to Algorithms Third Edition The MIT Press Cambridge, Massachusetts London, England c 2009 Massachusetts Institute of Technology All rights reserved. No part of this book may be reproduced in any form or by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. For information about special quantity discounts, please email special [email protected]. This book was set in Times Roman and Mathtime Pro 2 by the authors. Printed and bound in the United States of America. Library of Congress Cataloging-in-Publication Data Introduction to algorithms / Thomas H. Cormen ...[etal.].—3rded. p. cm. Includes bibliographical references and index. ISBN 978-0-262-03384-8 (hardcover : alk. paper)—ISBN 978-0-262-53305-8 (pbk. : alk. paper) 1. Computer programming. 2. Computer algorithms. I. Cormen, Thomas H. QA76.6.I5858 2009 005.1—dc22 2009008593 10987654321 Index This index uses the following conventions. Numbers are alphabetized as if spelled out; for example, “2-3-4 tree” is indexed as if it were “two-three-four tree.” When an entry refers to a place other than the main text, the page number is followed by a tag: ex. for exercise, pr. for problem, fig. for figure, and n. for footnote. A tagged page number often indicates the first page of an exercise or problem, which is not necessarily the page on which the reference actually appears. ˛.n/, 574 (set difference), 1159 (golden ratio), 59, 108 pr. jj y (conjugate of the golden ratio), 59 (flow value), 710 .n/ (Euler’s phi function), 943 (length of a string), 986 .n/-approximation algorithm, 1106, 1123 (set cardinality), 1161 o-notation, 50–51, 64 O-notation, 45 fig., 47–48, 64 (Cartesian product), 1162 O0-notation, 62 pr. -
Lock-Free Van Emde Boas Array Lock-Free Van Emde Boas
Lock-free van Emde Boas Array Ziyuan Guo, Reiji Suda (Adviser) Graduate School of Information Science and Technology, The University of Tokyo Introduction Structure Insert Insert operation will put a descriptor on the first node Results that it should modify to effectively lock the entire path of This poster introduces the first lock-free concurrent van Emde The original plan was to implement a van Emde Boas Tree by the modification. Then help itself to finish the work by We compared the thoughput of our implementation with the Boas Array which is a variant of van Emde Boas Tree (vEB effectively using the cooperate technique as locks. However, execute CAS operations stored in the descriptor. lock-free binary search tree and skip-lists implemented by K. 1 bool insert(x) { tree). It's linearizable and the benchmark shows significant a vEB tree stores maximum and minimum elements on the 2 if (not leaf) { Fraser. performance improvement comparing to other lock-free search root node of each sub-tree, which create a severe scalability 3 do { Benchmark Environment 4 start_over: trees when the date set is large and dense enough. bottleneck. Thus, we choose to not store the maximum and 5 summary_snap = summary; • Intel Xeon E7-8890 v4 @ 2.2GHz Although van Emde Boas tree is not considered to be practical minimum element on each node, and use a fixed degree (64 6 if (summary_snap & (1 << HIGH(x))) 7 if (cluster[HIGH(x)].insert(LOW(x))) • 32GB DDR4 2133MHz before, it still can outperform traditional search trees in many on modern 64bit CPUs) for every node, then use a bit vec- 8 return true; 9 else • qemu-kvm 0.12.1.2-2.506.el6 10.1 situations, and there is no lock-free concurrent implementation tor summary to store whether the corresponding sub-tree is 10 goto start_over; 11 if (needs_help(summary_snap)) { • Kernel 5.1.15-300.fc30.x86 64 yet. -
Measuring Sparsity
Chapter 1: Measuring sparsity Compilation date: January 24, 2020 1 Motivating examples and concepts Before we start delving into the theory of structural sparsity, we present a number of classic concepts in graph theory, on which many of abstract notion will built later on. These concepts include both classes of sparse graphs and various decomposition notions. 1.1 Planar graphs We start our story with probably the most important class of starse graphs: planar graphs. Since we do not want to put an emphasis on the topological aspects of graph embeddings (and only slide over embeddings into surfaces of higher genera), we will rely here on the intuitive understanding of an embedding. Readers interested in more intricate aspects of graph embeddings are referred to an excellent monograph of Mohar and Thomassen. A plane embedding of a graph G is a mapping that assigns to every vertex of G a distinct point of the two dimensional sphere and to every edge of G a Jordan curve without self-intersections that connects the images of the endpoints of the edge. Distinct edges share no points except for the necessary case: when two edges are incident with the same vertex, the images of the curves meet at their endpoints at the image of the vertex in question. A plane graph is a graph G together with its plane embedding. A graph G is planar if it admits a plane embedding. A face of an embedding is a connected component of the sphere minus the image of the graph. An embedding is cellular if every face is homomorphic to a disc. -
On Quasi-Planar Graphs: Clique-Width and Logical Description
On quasi-planar graphs : clique-width and logical description Bruno Courcelle To cite this version: Bruno Courcelle. On quasi-planar graphs : clique-width and logical description. Discrete Applied Mathematics, Elsevier, 2018, 10.1016/j.dam.2018.07.022. hal-01735820v2 HAL Id: hal-01735820 https://hal.archives-ouvertes.fr/hal-01735820v2 Submitted on 3 Mar 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. On quasi-planar graphs : clique-width and logical description. Bruno Courcelle Labri, CNRS and Bordeaux University∗ 33405 Talence, France email: [email protected] June 19, 2018 Abstract Motivated by the construction of FPT graph algorithms parameterized by clique-width or tree-width, we study graph classes for which tree- width and clique-width are linearly related. This is the case for all graph classes of bounded expansion, but in view of concrete applications, we want to have "small" constants in the comparisons between these width parameters. We focus our attention on graphs that can be drawn in the plane with limited edge crossings, for an example, at most p crossings for each edge. These graphs are called p-planar. We consider a more general situation where the graph of edge crossings must belong to a fixed class of graphs . -
Memory Optimization
Memory Optimization Some slides from Christer Ericson Sony Computer Entertainment, Santa Monica Overview ► We have seen how to reorganize matrix computations to improve temporal and spatial locality § Improving spatial locality required knowing the layout of the matrix in memory ► Orthogonal approach § Change the representation of the data structure in memory to improve locality for a given pattern of data accesses from the computation § Less theory exists for this but some nice results are available for trees: van Emde Boas tree layout ► Similar ideas can be used for graph algorithms as well § However there is usually not as much locality in graph algorithms Data cache optimization ► Compressing data ► Prefetching data into cache ► Cache-conscious data structure layout § Tree data structures ► Linearization caching Prefetching ► Software prefetching § Not too early – data may be evicted before use § Not too late – data not fetched in time for use § Greedy ► Instructions § iA-64: lfetch (line prefetch) ► Options: § Intend to write: begins invalidations in other caches § Which level of cache to prefetch into § Compilers and programmers can access through intrinsics Software prefetching // Loop through and process all 4n elements for (int i = 0; i < 4 * n; i++) Process(elem[i]); const int kLookAhead = 4; // Some elements ahead for (int i = 0; i < 4 * n; i += 4) { Prefetch(elem[i + kLookAhead]); Process(elem[i + 0]); Process(elem[i + 1]); Process(elem[i + 2]); Process(elem[i + 3]); } Greedy prefetching void PreorderTraversal(Node *pNode) -
Predecessor Search
Predecessor Search GONZALO NAVARRO and JAVIEL ROJAS-LEDESMA, Millennium Institute for Foundational Research on Data (IMFD), Department of Computer Science, University of Chile, Santiago, Chile. The predecessor problem is a key component of the fundamental sorting-and-searching core of algorithmic problems. While binary search is the optimal solution in the comparison model, more realistic machine models on integer sets open the door to a rich universe of data structures, algorithms, and lower bounds. In this article we review the evolution of the solutions to the predecessor problem, focusing on the important algorithmic ideas, from the famous data structure of van Emde Boas to the optimal results of Patrascu and Thorup. We also consider lower bounds, variants and special cases, as well as the remaining open questions. CCS Concepts: • Theory of computation → Predecessor queries; Sorting and searching. Additional Key Words and Phrases: Integer data structures, integer sorting, RAM model, cell-probe model ACM Reference Format: Gonzalo Navarro and Javiel Rojas-Ledesma. 2019. Predecessor Search. ACM Comput. Surv. 0, 0, Article 0 ( 2019), 37 pages. https://doi.org/0 1 INTRODUCTION Assume we have a set - of = keys from a universe * with a total order. In the predecessor problem, one is given a query element @ 2 * , and is asked to find the maximum ? 2 - such that ? ≤ @ (the predecessor of @). This is an extension of the more basic membership problem, which only aims to find whether @ 2 -. Both are fundamental algorithmic problems that compose the “sorting and searching” core, which lies at the base of virtually every other area and application in Computer Science (e.g., see [7, 22, 37, 58, 59, 65, 75]). -
An Annotated Bibliography on 1-Planarity
An annotated bibliography on 1-planarity Stephen G. Kobourov1, Giuseppe Liotta2, Fabrizio Montecchiani2 1Dep. of Computer Science, University of Arizona, Tucson, USA [email protected] 2Dip. di Ingegneria, Universit`adegli Studi di Perugia, Perugia, Italy fgiuseppe.liotta,[email protected] July 21, 2017 Abstract The notion of 1-planarity is among the most natural and most studied generalizations of graph planarity. A graph is 1-planar if it has an embedding where each edge is crossed by at most another edge. The study of 1-planar graphs dates back to more than fifty years ago and, recently, it has driven increasing attention in the areas of graph theory, graph algorithms, graph drawing, and computational geometry. This annotated bibliography aims to provide a guiding reference to researchers who want to have an overview of the large body of literature about 1-planar graphs. It reviews the current literature covering various research streams about 1-planarity, such as characterization and recognition, combinatorial properties, and geometric representations. As an additional contribution, we offer a list of open problems on 1-planar graphs. 1 Introduction Relational data sets, containing a set of objects and relations between them, are commonly modeled by graphs, with the objects as the vertices and the relations as the edges. A great deal is known about the structure and properties of special types of graphs, in particular planar graphs. The class of planar graphs is fundamental for both Graph Theory and Graph Algorithms, and is extensively studied. Many structural properties of planar graphs are known and these properties can be used in the development of efficient algorithms for planar graphs, even where the more general problem is NP-hard [11]. -
Cache-Friendly Search Trees; Or, in Which Everything Beats Std::Set
Cache-Friendly Search Trees; or, In Which Everything Beats std::set Jeffrey Barratt Brian Zhang jbarratt bhz July 4, 2019 1 Introduction While a lot of work in theoretical computer science has gone into optimizing the runtime and space usage of data structures, such work very often neglects a very important component of modern computers: the cache. In doing so, very often, data structures are developed that achieve theoretically-good runtimes but are slow in practice due to a large number of cache misses. In 1999, Frigo et al. [1999] introduced the notion of a cache-oblivious algorithm: an algorithm that uses the cache to its advantage, regardless of the size or structure of said cache. Since then, various authors have designed cache-oblivious algorithms and data structures for problems from matrix multiplication to array sorting [Demaine, 2002]. We focus in this work on cache-oblivious search trees; i.e. implementing an ordered dictionary in a cache-friendly manner. We will start by presenting an overview of cache-oblivious data structures, especially cache-oblivious search trees. We then give practical results using these cache-oblivious structures on modern-day machinery, comparing them to the standard std::set and other cache-friendly dictionaries such as B-trees. arXiv:1907.01631v1 [cs.DS] 2 Jul 2019 2 The Ideal-Cache Model To discuss caches theoretically, we first need to give a theoretical model that makes use of a cache. The ideal-cache model was first introduced by Frigo et al. [1999]. In this model, a computer's memory is modeled as a two-level hierarchy with a disk and a cache.