Heuristics for Semi-External Depth-First Search on Directed Graphs
|
|
- Briana Bryan
- 5 years ago
- Views:
Transcription
1 Heuristics for Semi-External Depth-First Search on Directed Graphs Jop F. Sibeyn Institut für Informatik, Universität Halle, Germany jopsi James Abello ATT Labs Research, Florham Park, USA abello Ulrich Meyer Max-Planck-Institut für Informatik, Saarbrücken, Germany MPI Informatik Ulrich Meyer
2 The Problem: Depth-First Search (DFS) Graph: G = (V, E), V = n, E = m, directed, artificial source node. Find: Some valid DFS tree: 0 self loop backward tree edge backward cross edge 9 10 forward tree edge 4 forward cross edge 11 Standard implementation for internal memory: O(n + m) time. MPI Informatik Ulrich Meyer
3 The External Memory (EM) Model [VS94] CPU main memory of size M c secondary memory = D independent disks data is transfered in blocks of size Memory M up to D data per I/O step goal is to minimize the number of I/O steps scanning x items takes scan(x) := O( x D ) I/Os Disk 1 Disk i Disk D sorting x items takes sort(x) := O( x D log M/ x ) I/Os MPI Informatik Ulrich Meyer
4 Previous Work on External DFS Simulate IM Algorithm with EM Data Structures Fully-External (M n): 95 Chiang et al. O(n + M n scan(n + m)) I/Os. 96 Kumar/Schwabe O((n + D m ) log 2 n) I/Os, undirected 00 uchsbaum et al. O((n + D m ) log 2 n) I/Os, directed Special graph classes, e.g., planar graphs: O(sort(n + m)) I/Os. Semi-External (Θ(n) M m): O(n + m D ) I/Os. General sparse graphs nothing gained due to Ω(n) unstructured I/Os!! MPI Informatik Ulrich Meyer
5 Do we have a problem at all? Why DFS: - Central procedure to find Strongly Connected Components Identify communities in the web. - DFS can be used for topological sorting. ig graphs: WWW: n , m ; Telephone call graphs, GIS, etc. Slow disks: 1 I/O 10 msec; I/Os 230 days, infeasable!! Why not internal: - Economical reasons (m/n small) - Absolutely impossible (m/n huge) Constants matter: Less usefull if alg. requires M c n for some large c. MPI Informatik Ulrich Meyer
6 Key Difficulties in External-Memory DFS nodes are reached in unpredictable order: resulting unstructured access to adjacency lists seems to require one I/O per node. remembering visited nodes asks for a data structure to store the set of reached nodes; otherwise one I/O per edge. graph nodes s external adjacency lists the second problem disappears in semi-external setting: internal bit-vector: O(n + scan(n + m)) I/Os. our heuristics mostly overcome the first problem, too: times faster than n unstructured I/Os. MPI Informatik Ulrich Meyer
7 asic Idea for Semi-External DFS Maintain a tentative tree in internal memory. Gradually improve it towards a DFS tree using blocked I/O. Test for termination. RISK: Never converging to a final state. Next: First solution for undirected graphs. MPI Informatik Ulrich Meyer
8 MPI Informatik Ulrich Meyer EDGE-Y-EDGE (undirected) Edges from external memory are considered cyclically one-by-one. Cross edge found cutting and relinking in the tentative tree. Internal Memory A Internal Memory External Memory External Memory E G H C I L M Q D P O N J K A K L K O P O G C D H L K G L P P J E P L G K L A K O O G C D H M L D A E J K N O G P I Q C H Termination: Complete scan without any cross edge.
9 EDGE-Y-EDGE (cont d) Internal Tree: Construct on the fly during first scan. Each op. O(logn) amortortized time [ST85]. Performance: Processing x edges needs: O(x/) I/Os & O(x logn) time. 2 m x? x depends on: Modification rule: Initial order of edges: removing a cross edge may create new ones. may take long to find the next cross edge. MPI Informatik Ulrich Meyer
10 Modification rule & initial edge ordering "cut on lower side" "cut on higher side" 1 A A A 1 2 F F 2 3 D G C G C 3 4 C E D D 4 5 E E F 5 6 G 6 cut on the higher side : depths never decrease random cutting : no harm, no progress cut on the lower side : reached depths may decrease For each rule there are graphs and edge orders that require Ω() rounds Ω(m) I/Os. UT: Initial randomization and filtering of multi-edges can reduce # phases. MPI Informatik Ulrich Meyer
11 Edge-by-Edge Experiments Cutting on the higher side & edge randomization / filtering performs best. We never experienced more than log 2 n rounds cross edges m = 50 * n m = 25 * n m = 10 * n m = 5 * n m = 3 * n scanned edges * m UT: Only for undirected graphs. UT: Internal dynamic trees are relatively slow. UT: 20 integers/pointers storage per internal node, too much! MPI Informatik Ulrich Meyer
12 Omit complicated data structures. ATCHED PROCESSING At all times n edges giving a tree rooted at n. Internal edges maintained in adjacency lists, external edges as node pairs in initially random order. Repeatedly perform: read next n edges from file. insert new edges into adjacency lists. perform internal DFS on the 2 n edges. update set of internal/external edges. Termination when tree remains unchanged during a round, i.e., processing all m/n batches. MPI Informatik Ulrich Meyer
13 Tricks (1): Rearrangements of Adjacency Lists Problem: Unguided batched processing has slow convergence. Idea: Make the internal DFS search more goal directed; find some equivalent to the Cutting on the higher side rule. After each batch, rearrange order of the adjacency lists for internal DFS: give preference to edges already existing in the tentative tree. give preference to edges towards nodes that are roots of large subtrees. Internal tree trends to grow deep faster. # removed cross-edges trends to be larger than # newly created forw. cross-edges. MPI Informatik Ulrich Meyer
14 Example for Rearrangements DFS tree of a random graph is long and skinny. This is already true for very sparse graphs, i.e., after the first few batches. Wrong arrangements could destroy previous achievements. MPI Informatik Ulrich Meyer
15 Tricks (2): Reductions General Idea: After each full round compare tree with tree before the round and look at the edges on the file. Determine hereby passive nodes, having reached final positions. Reduce tree and edges on file accordingly. Aggressive Reduction: Throw out nodes and edges that are probably not needed anymore. Perform main loop until separate test shows that # cross-edges = 0. Gentle Reduction: Throw out nodes and edges that are certainly not needed anymore. Termination when # edges is small enough for internal processing. MPI Informatik Ulrich Meyer
16 Gentle Reduction Experience: Gentle reduction has proven to be best. Three sources of passive nodes: Stable initial part of the tentative tree (smallest preorder numbers). Stable final part of the tentative tree (highest preoder numbers). No passing edge. MPI Informatik Ulrich Meyer
17 Example for Reduction 1e+10 edges scanned so far edges scanned in round active nodes 1e+09 1e+08 1e+07 1e round... for a graph model of the WWW. MPI Informatik Ulrich Meyer
18 The program written in C. Internal-memory space requirements: ( 3 size(int) + 3 size(bool) ) n n bytes (reusing arrays; recomputing data). External-memory space requirements: 4 size(int) m 16 m bytes (core functionality: 2 size(int) m). Extra features: renumbering nodes consecutively; eliminating multiple edges and self loops; randomizing the input file; making the graph undirected; statistics & correctness checkers; input generators; MPI Informatik Ulrich Meyer
19 Performance (1) Random Graphs: After first round almost all nodes and edges eliminated; only about 10 times slower than internal algorithm. Web Graphs Models: For sparse graphs and growing n: slowly increasing # rounds, with strongly decreasing problem size; a bit worse on denser graphs. Worst Case: idirectional cycles. Additional preprocessing with randomization helps. Right now we do not know any natural class of graphs not efficiently tackled. Knowing what the program is doing and disallowing randomization, one can easily construct bad examples though. MPI Informatik Ulrich Meyer
20 Performance (2) For graphs with n = and m = n I/Os sec. r = # scanned and processed edges /m. Graph First DFS Second DFS r T tot [sec] T I/O [sec] r T tot [sec] T I/O [sec] RAND CYCLE GEOM-1D GEOM-2D CF-WE SIMPLE-WE OUT-STAR IN-OUT-STAR ACYC our approach is not I/O-bound; current gains: factor with increasing PU speed it will be even more efficient. MPI Informatik Ulrich Meyer
21 Influence of the average node degree: Depending on the graph class Performance (3) (a) dense graphs are more difficult: (b) dense graphs are easier: r 7 r OUT-STAR IN-OUT-STAR CF-Web Simple-Web n 1e m/n n e m/n MPI Informatik Ulrich Meyer
22 Conclusions Seen: Efficient heuristic for Semi-External DFS. Also tested on real world data: Input: Aggregated call graph from ATT; n 10 7, m Our heuristic on a Pentium III with 1 GHz: SCC ( 2 times DFS ) takes about 4 hours (2 n I/Os 55 hours). Some open problems: In [MehMey, ESA02] we show that FS can be solved using o(n) +O(sort(n + m)) I/Os in the worst-case. Can we obtain similar results for DFS? Is there an ω(sort(n + m)) I/O lower bound for sparse graphs? MPI Informatik Ulrich Meyer
Algorithms for Memory-Hierarchies Ulrich Meyer
Algorithms for Memory-Hierarchies Ulrich Meyer Max-Planck-Institut für Informatik www.uli-meyer.de Algorithms for Memory-Hierarchies Ulrich Meyer p. 1 The Problem: RAM Model vs. Real Computer Time real
More informationExternal-Memory Breadth-First Search with Sublinear I/O
External-Memory Breadth-First Search with Sublinear I/O Kurt Mehlhorn and Ulrich Meyer Max-Planck-Institut für Informatik Stuhlsatzenhausweg 85, 66123 Saarbrücken, Germany. Abstract. Breadth-first search
More informationOn External-Memory Planar Depth-First Search
On External-Memory Planar Depth-First Search Laura Toma Duke University Lars Arge Ulrich Meyer Norbert Zeh Duke University Max-Plank Institute Carlton University August 2 External Graph Problems Applications
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17
601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17 5.1 Introduction You should all know a few ways of sorting in O(n log n)
More informationSorting and Selection
Sorting and Selection Introduction Divide and Conquer Merge-Sort Quick-Sort Radix-Sort Bucket-Sort 10-1 Introduction Assuming we have a sequence S storing a list of keyelement entries. The key of the element
More informationA Bandwidth Latency Tradeoff for Broadcast and Reduction
A Bandwidth Latency Tradeoff for Broadcast and Reduction Peter Sanders and Jop F. Sibeyn Max-Planck-Institut für Informatik Im Stadtwald, 66 Saarbrücken, Germany. sanders, jopsi@mpi-sb.mpg.de. http://www.mpi-sb.mpg.de/sanders,
More informationCOMPSCI 311: Introduction to Algorithms First Midterm Exam, October 3, 2018
COMPSCI 311: Introduction to Algorithms First Midterm Exam, October 3, 2018 Name: ID: Answer the questions directly on the exam pages. Show all your work for each question. More detail including comments
More informationLecture 7. Transform-and-Conquer
Lecture 7 Transform-and-Conquer 6-1 Transform and Conquer This group of techniques solves a problem by a transformation to a simpler/more convenient instance of the same problem (instance simplification)
More informationChapter 3: The Efficiency of Algorithms. Invitation to Computer Science, C++ Version, Third Edition
Chapter 3: The Efficiency of Algorithms Invitation to Computer Science, C++ Version, Third Edition Objectives In this chapter, you will learn about: Attributes of algorithms Measuring efficiency Analysis
More informationCSC Design and Analysis of Algorithms
CSC : Lecture 7 CSC - Design and Analysis of Algorithms Lecture 7 Transform and Conquer I Algorithm Design Technique CSC : Lecture 7 Transform and Conquer This group of techniques solves a problem by a
More informationCSIT5300: Advanced Database Systems
CSIT5300: Advanced Database Systems L08: B + -trees and Dynamic Hashing Dr. Kenneth LEUNG Department of Computer Science and Engineering The Hong Kong University of Science and Technology Hong Kong SAR,
More informationSTXXL: Standard Template Library for XXL Data Sets
University of Karlsruhe Max Planck Institut Informatik STXXL: Standard Template Library for XXL Data Sets Roman Dementiev, Peter Sanders Fakultät für Informatik, Universität Karlsruhe [dementiev,sanders]@ira.uka.de
More informationLecture 3: Sorting 1
Lecture 3: Sorting 1 Sorting Arranging an unordered collection of elements into monotonically increasing (or decreasing) order. S = a sequence of n elements in arbitrary order After sorting:
More informationCSC Design and Analysis of Algorithms. Lecture 7. Transform and Conquer I Algorithm Design Technique. Transform and Conquer
// CSC - Design and Analysis of Algorithms Lecture 7 Transform and Conquer I Algorithm Design Technique Transform and Conquer This group of techniques solves a problem by a transformation to a simpler/more
More informationCS350: Data Structures B-Trees
B-Trees James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Introduction All of the data structures that we ve looked at thus far have been memory-based
More informationI/O-Efficient Undirected Shortest Paths
I/O-Efficient Undirected Shortest Paths Ulrich Meyer 1, and Norbert Zeh 2, 1 Max-Planck-Institut für Informatik, Stuhlsatzhausenweg 85, 66123 Saarbrücken, Germany. 2 Faculty of Computer Science, Dalhousie
More informationChapter 3: The Efficiency of Algorithms
Chapter 3: The Efficiency of Algorithms Invitation to Computer Science, Java Version, Third Edition Objectives In this chapter, you will learn about Attributes of algorithms Measuring efficiency Analysis
More informationINF2220: algorithms and data structures Series 7
Universitetet i Oslo nstitutt for nformatikk. Yu,. arabeg uiologo NF2220: algorithms and data structures Series 7 Topic ore on graphs: FS, iconnectivity, and strongly connected components (Exercises with
More informationChapter 3: The Efficiency of Algorithms Invitation to Computer Science,
Chapter 3: The Efficiency of Algorithms Invitation to Computer Science, Objectives In this chapter, you will learn about Attributes of algorithms Measuring efficiency Analysis of algorithms When things
More informationChapter 12: Indexing and Hashing. Basic Concepts
Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition
More informationCSE373: Data Structure & Algorithms Lecture 21: More Comparison Sorting. Aaron Bauer Winter 2014
CSE373: Data Structure & Algorithms Lecture 21: More Comparison Sorting Aaron Bauer Winter 2014 The main problem, stated carefully For now, assume we have n comparable elements in an array and we want
More informationENGINEERING AN EXTERNAL MEMORY MINIMUM SPANNING TREE ALGORITHM*
ENGINEERING AN EXTERNAL MEMORY MINIMUM SPANNING TREE ALGORITHM* Roman Dementiev, Peter Sanders, Dominik Schultes Max-Planck-Institut f. Informatik, 66123 Saarbrücken, Germany {dementiev,sanders}@mpi-sb.mpg.de,mail@dominik-schultes.de
More informationChapter 12: Indexing and Hashing
Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL
More information1 The range query problem
CS268: Geometric Algorithms Handout #12 Design and Analysis Original Handout #12 Stanford University Thursday, 19 May 1994 Original Lecture #12: Thursday, May 19, 1994 Topics: Range Searching with Partition
More informationCSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting. Dan Grossman Fall 2013
CSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting Dan Grossman Fall 2013 Introduction to Sorting Stacks, queues, priority queues, and dictionaries all focused on providing one element
More informationComputing Visibility on Terrains in External Memory
Computing Visibility on Terrains in External Memory Herman Haverkort Laura Toma Yi Zhuang TU. Eindhoven Netherlands Bowdoin College USA Visibility Problem: visibility map (viewshed) of v terrain T arbitrary
More informationAn O(n 2.75 ) algorithm for online topological ordering 1
Electronic Notes in Discrete Mathematics 25 (2006) 7 12 www.elsevier.com/locate/endm An O(n 2.75 ) algorithm for online topological ordering 1 Deepak Ajwani a,2, Tobias Friedrich a and Ulrich Meyer a a
More informationAnalyze the obvious algorithm, 5 points Here is the most obvious algorithm for this problem: (LastLargerElement[A[1..n]:
CSE 101 Homework 1 Background (Order and Recurrence Relations), correctness proofs, time analysis, and speeding up algorithms with restructuring, preprocessing and data structures. Due Thursday, April
More informationarxiv: v2 [cs.ds] 9 Apr 2009
Pairing Heaps with Costless Meld arxiv:09034130v2 [csds] 9 Apr 2009 Amr Elmasry Max-Planck Institut für Informatik Saarbrücken, Germany elmasry@mpi-infmpgde Abstract Improving the structure and analysis
More informationData Structures Question Bank Multiple Choice
Section 1. Fundamentals: Complexity, Algorthm Analysis 1. An algorithm solves A single problem or function Multiple problems or functions Has a single programming language implementation 2. A solution
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 Equivalence Relations A equivalence relation R is defined on a set S, if for every pair of elements (a,b) in S, a R b is either false or true
More informationCS 350 : Data Structures B-Trees
CS 350 : Data Structures B-Trees David Babcock (courtesy of James Moscola) Department of Physical Sciences York College of Pennsylvania James Moscola Introduction All of the data structures that we ve
More informationCSE100. Advanced Data Structures. Lecture 8. (Based on Paul Kube course materials)
CSE100 Advanced Data Structures Lecture 8 (Based on Paul Kube course materials) CSE 100 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs
More informationn 2 ( ) ( ) Ο f ( n) ( ) Ω B. n logn Ο
CSE 220 Name Test Fall 20 Last 4 Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. 4 points each. The time to compute the sum of the n elements of an integer array is in:
More informationStrong Bridges and Strong Articulation Points of Directed Graphs
Strong Bridges and Strong Articulation Points of Directed Graphs Giuseppe F. Italiano Univ. of Rome Tor Vergata Based on joint work with Donatella Firmani, Luigi Laura, Alessio Orlandi and Federico Santaroni
More informationAlgorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms
Algorithm Efficiency & Sorting Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Overview Writing programs to solve problem consists of a large number of decisions how to represent
More informationCOMP 251 Winter 2017 Online quizzes with answers
COMP 251 Winter 2017 Online quizzes with answers Open Addressing (2) Which of the following assertions are true about open address tables? A. You cannot store more records than the total number of slots
More informationTrees. Reading: Weiss, Chapter 4. Cpt S 223, Fall 2007 Copyright: Washington State University
Trees Reading: Weiss, Chapter 4 1 Generic Rooted Trees 2 Terms Node, Edge Internal node Root Leaf Child Sibling Descendant Ancestor 3 Tree Representations n-ary trees Each internal node can have at most
More informationModels of distributed computing: port numbering and local algorithms
Models of distributed computing: port numbering and local algorithms Jukka Suomela Adaptive Computing Group Helsinki Institute for Information Technology HIIT University of Helsinki FMT seminar, 26 February
More informationBasic Search Algorithms
Basic Search Algorithms Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Abstract The complexities of various search algorithms are considered in terms of time, space, and cost
More informationGraphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes
Graphs Graphs A graph is a data structure consisting of nodes (or vertices) and edges An edge is a connection between two nodes A D B E C Nodes: A, B, C, D, E Edges: (A, B), (A, D), (D, E), (E, C) Nodes
More informationIntroduction Alternative ways of evaluating a given query using
Query Optimization Introduction Catalog Information for Cost Estimation Estimation of Statistics Transformation of Relational Expressions Dynamic Programming for Choosing Evaluation Plans Introduction
More information) $ f ( n) " %( g( n)
CSE 0 Name Test Spring 008 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to compute the sum of the n elements of an integer array is: # A.
More informationCSC Design and Analysis of Algorithms. Lecture 7. Transform and Conquer I Algorithm Design Technique. Transform and Conquer
CSC 83- Design and Analysis of Algorithms Lecture 7 Transform and Conuer I Algorithm Design Techniue Transform and Conuer This group of techniues solves a problem by a transformation to a simpler/more
More informationLimitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and
Computer Language Theory Chapter 4: Decidability 1 Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and
More informationLecture 5. Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs
Lecture 5 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs Reading: Randomized Search Trees by Aragon & Seidel, Algorithmica 1996, http://sims.berkeley.edu/~aragon/pubs/rst96.pdf;
More informationChapter 11: Indexing and Hashing
Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL
More informationCPS 616 TRANSFORM-AND-CONQUER 7-1
CPS 616 TRANSFORM-AND-CONQUER 7-1 TRANSFORM AND CONQUER Group of techniques to solve a problem by first transforming the problem into one of: 1. a simpler/more convenient instance of the same problem (instance
More informationQuery Processing & Optimization
Query Processing & Optimization 1 Roadmap of This Lecture Overview of query processing Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Introduction
More informationNetwork Algorithms. Distributed Sorting
Network Algorithms Distributed Sorting Stefan Schmid @ T-Labs, 2 Sorting Distributed Sorting Graph with n nodes {v,,v n } and n values. Goal: node vi should store i-th smallest value. v 6 v 2 2 v 3 7 v
More informationIntroduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Dynamic Programming I Date: 10/6/16
600.463 Introduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Dynamic Programming I Date: 10/6/16 11.1 Introduction Dynamic programming can be very confusing until you ve used it a
More informationSorting (Chapter 9) Alexandre David B2-206
Sorting (Chapter 9) Alexandre David B2-206 Sorting Problem Arrange an unordered collection of elements into monotonically increasing (or decreasing) order. Let S = . Sort S into S =
More informationHow to speed up a database which has gotten slow
Triad Area, NC USA E-mail: info@geniusone.com Web: http://geniusone.com How to speed up a database which has gotten slow hardware OS database parameters Blob fields Indices table design / table contents
More informationLecture Summary CSC 263H. August 5, 2016
Lecture Summary CSC 263H August 5, 2016 This document is a very brief overview of what we did in each lecture, it is by no means a replacement for attending lecture or doing the readings. 1. Week 1 2.
More informationAll-Pairs Nearly 2-Approximate Shortest-Paths in O(n 2 polylog n) Time
All-Pairs Nearly 2-Approximate Shortest-Paths in O(n 2 polylog n) Time Surender Baswana 1, Vishrut Goyal 2, and Sandeep Sen 3 1 Max-Planck-Institut für Informatik, Saarbrücken, Germany. sbaswana@mpi-sb.mpg.de
More informationChapter 8 DOMINATING SETS
Chapter 8 DOMINATING SETS Distributed Computing Group Mobile Computing Summer 2004 Overview Motivation Dominating Set Connected Dominating Set The Greedy Algorithm The Tree Growing Algorithm The Marking
More informationOutline. Graphs. Divide and Conquer.
GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.
More informationn 2 C. Θ n ( ) Ο f ( n) B. n 2 Ω( n logn)
CSE 0 Name Test Fall 0 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to find the maximum of the n elements of an integer array is in: A.
More informationGIAN Course on Distributed Network Algorithms. Network Topologies and Local Routing
GIAN Course on Distributed Network Algorithms Network Topologies and Local Routing Stefan Schmid @ T-Labs, 2011 GIAN Course on Distributed Network Algorithms Network Topologies and Local Routing If you
More informationCMSC th Lecture: Graph Theory: Trees.
CMSC 27100 26th Lecture: Graph Theory: Trees. Lecturer: Janos Simon December 2, 2018 1 Trees Definition 1. A tree is an acyclic connected graph. Trees have many nice properties. Theorem 2. The following
More informationThe Limits of Sorting Divide-and-Conquer Comparison Sorts II
The Limits of Sorting Divide-and-Conquer Comparison Sorts II CS 311 Data Structures and Algorithms Lecture Slides Monday, October 12, 2009 Glenn G. Chappell Department of Computer Science University of
More informationChapter 8 DOMINATING SETS
Distributed Computing Group Chapter 8 DOMINATING SETS Mobile Computing Summer 2004 Overview Motivation Dominating Set Connected Dominating Set The Greedy Algorithm The Tree Growing Algorithm The Marking
More informationScan Primitives for GPU Computing
Scan Primitives for GPU Computing Agenda What is scan A naïve parallel scan algorithm A work-efficient parallel scan algorithm Parallel segmented scan Applications of scan Implementation on CUDA 2 Prefix
More informationSelection, Bubble, Insertion, Merge, Heap, Quick Bucket, Radix
Spring 2010 Review Topics Big O Notation Heaps Sorting Selection, Bubble, Insertion, Merge, Heap, Quick Bucket, Radix Hashtables Tree Balancing: AVL trees and DSW algorithm Graphs: Basic terminology and
More informationChapter 12: Indexing and Hashing
Chapter 12: Indexing and Hashing Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree
More information4.4 Algorithm Design Technique: Randomization
TIE-20106 76 4.4 Algorithm Design Technique: Randomization Randomization is one of the design techniques of algorithms. A pathological occurence of the worst-case inputs can be avoided with it. The best-case
More informationD. Θ nlogn ( ) D. Ο. ). Which of the following is not necessarily true? . Which of the following cannot be shown as an improvement? D.
CSE 0 Name Test Fall 00 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to convert an array, with priorities stored at subscripts through n,
More informationAdam Blank Lecture 2 Winter 2017 CSE 332. Data Structures and Parallelism
Adam Blank Lecture 2 Winter 2017 CSE 332 Data Structures and Parallelism CSE 332: Data Structures and Parallelism Algorithm Analysis 1 Outline 1 Comparing Algorithms 2 Asymptotic Analysis Comparing Programs
More informationMemory Bandwidth and Low Precision Computation. CS6787 Lecture 10 Fall 2018
Memory Bandwidth and Low Precision Computation CS6787 Lecture 10 Fall 2018 Memory as a Bottleneck So far, we ve just been talking about compute e.g. techniques to decrease the amount of compute by decreasing
More informationGraph Algorithms. Definition
Graph Algorithms Many problems in CS can be modeled as graph problems. Algorithms for solving graph problems are fundamental to the field of algorithm design. Definition A graph G = (V, E) consists of
More informationStrongly Connected Components. Andreas Klappenecker
Strongly Connected Components Andreas Klappenecker Undirected Graphs An undirected graph that is not connected decomposes into several connected components. Finding the connected components is easily solved
More informationSorting (Chapter 9) Alexandre David B2-206
Sorting (Chapter 9) Alexandre David B2-206 1 Sorting Problem Arrange an unordered collection of elements into monotonically increasing (or decreasing) order. Let S = . Sort S into S =
More informationB-Trees. Disk Storage. What is a multiway tree? What is a B-tree? Why B-trees? Insertion in a B-tree. Deletion in a B-tree
B-Trees Disk Storage What is a multiway tree? What is a B-tree? Why B-trees? Insertion in a B-tree Deletion in a B-tree Disk Storage Data is stored on disk (i.e., secondary memory) in blocks. A block is
More informationChapter 6 DOMINATING SETS
Chapter 6 DOMINATING SETS Distributed Computing Group Mobile Computing Summer 2003 Overview Motivation Dominating Set Connected Dominating Set The Greedy Algorithm The Tree Growing Algorithm The Marking
More informationFaloutsos 1. Carnegie Mellon Univ. Dept. of Computer Science Database Applications. Outline
Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications Lecture #14: Implementation of Relational Operations (R&G ch. 12 and 14) 15-415 Faloutsos 1 introduction selection projection
More information2. Instance simplification Solve a problem s instance by transforming it into another simpler/easier instance of the same problem
CmSc 20 Intro to Algorithms Chapter 6. Transform and Conquer Algorithms. Introduction This group of techniques solves a problem by a transformation to a simpler/more convenient instance of the same problem
More information21# 33# 90# 91# 34# # 39# # # 31# 98# 0# 1# 2# 3# 4# 5# 6# 7# 8# 9# 10# #
1. Prove that n log n n is Ω(n). York University EECS 11Z Winter 1 Problem Set 3 Instructor: James Elder Solutions log n n. Thus n log n n n n n log n n Ω(n).. Show that n is Ω (n log n). We seek a c >,
More informationCSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting. Ruth Anderson Winter 2019
CSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting Ruth Anderson Winter 2019 Today Sorting Comparison sorting 2/08/2019 2 Introduction to sorting Stacks, queues, priority queues, and
More informationAlgorithms and Data Structures
Algorithms and Data Structures Graphs: Introduction and First Algorithms Ulf Leser This Course Introduction 2 Abstract Data Types 1 Complexity analysis 1 Styles of algorithms 1 Lists, stacks, queues 2
More informationBACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY
BACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY General definitions; Representations; Graph Traversals; Topological sort; Graphs definitions & representations Graph theory is a fundamental tool in sparse
More informationStorage capacity of labeled graphs
Dana Angluin 1 James Aspnes 1 Rida A. Bazzi 2 Jiang Chen 3 David Eisenstat 4 Goran Konjevod 2 1 Department of Computer Science, Yale University 2 Department of Computer Science and Engineering, Arizona
More informationI/O Efficieny of Highway Hierarchies
I/O Efficieny of Highway Hierarchies Riko Jacob Sushant Sachdeva Departement of Computer Science ETH Zurich, Technical Report 531, September 26 Abstract Recently, Sanders and Schultes presented a shortest
More informationMemory Bandwidth and Low Precision Computation. CS6787 Lecture 9 Fall 2017
Memory Bandwidth and Low Precision Computation CS6787 Lecture 9 Fall 2017 Memory as a Bottleneck So far, we ve just been talking about compute e.g. techniques to decrease the amount of compute by decreasing
More informationParallel Graph Partitioning for Complex Networks
Parallel Graph Partitioning for Complex Networks Henning Meyerhenke, Peter Sanders, Christian Schulz High-performance Graph Algorithms and Applications in Computational Science Dagstuhl 1 Christian Schulz:
More informationAlgorithm Engineering with PRAM Algorithms
Algorithm Engineering with PRAM Algorithms Bernard M.E. Moret moret@cs.unm.edu Department of Computer Science University of New Mexico Albuquerque, NM 87131 Rome School on Alg. Eng. p.1/29 Measuring and
More informationA Computational Study of External-Memory BFS Algorithms
A Computational Study of External-Memory BFS Algorithms Deepak Ajwani Roman Dementiev Ulrich Meyer Abstract Breadth First Search (BFS) traversal is an archetype for many important graph problems. However,
More information( ) ( ) C. " 1 n. ( ) $ f n. ( ) B. " log( n! ) ( ) and that you already know ( ) ( ) " % g( n) ( ) " #&
CSE 0 Name Test Summer 008 Last 4 Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time for the following code is in which set? for (i=0; i
More informationTheory and Algorithms Introduction: insertion sort, merge sort
Theory and Algorithms Introduction: insertion sort, merge sort Rafael Ramirez rafael@iua.upf.es Analysis of algorithms The theoretical study of computer-program performance and resource usage. What s also
More informationI/O-Algorithms Lars Arge
I/O-Algorithms Fall 203 September 9, 203 I/O-Model lock I/O D Parameters = # elements in problem instance = # elements that fits in disk block M = # elements that fits in main memory M T = # output size
More informationEXTERNAL SORTING. Sorting
EXTERNAL SORTING 1 Sorting A classic problem in computer science! Data requested in sorted order (sorted output) e.g., find students in increasing grade point average (gpa) order SELECT A, B, C FROM R
More informationA Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components
A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components Ingo Wegener FB Informatik, LS2, Univ. Dortmund, 44221 Dortmund, Germany wegener@ls2.cs.uni-dortmund.de
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 The Union-Find Data Structure Purpose: Great for disjoint sets Operations: Union ( S 1, S 2 ) Find ( x ) Performs a union of two disjoint sets
More informationBidirectional search and Goal-directed Dijkstra
Computing the shortest path Bidirectional search and Goal-directed Dijkstra Alexander Kozyntsev October 18, 2010 Abstract We study the problem of finding a shortest path between two vertices in a directed
More informationSearching, Sorting. part 1
Searching, Sorting part 1 Week 3 Objectives Searching: binary search Comparison-based search: running time bound Sorting: bubble, selection, insertion, merge Sorting: Heapsort Comparison-based sorting
More informationLECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS
Department of Computer Science University of Babylon LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS By Faculty of Science for Women( SCIW), University of Babylon, Iraq Samaher@uobabylon.edu.iq
More informationSEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY
1 A3 and Prelim 2 SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY Lecture 11 CS2110 Fall 2016 Deadline for A3: tonight. Only two late days allowed (Wed-Thur) Prelim: Thursday evening. 74 conflicts! If you
More informationSuppose you are accessing elements of an array: ... or suppose you are dereferencing pointers: temp->next->next = elem->prev->prev;
CSE 100: B-TREE Memory accesses Suppose you are accessing elements of an array: if ( a[i] < a[j] ) {... or suppose you are dereferencing pointers: temp->next->next = elem->prev->prev;... or in general
More information1 Start with each vertex being its own component. 2 Merge two components into one by choosing the light edge
Taking Stock IE170: in Systems Engineering: Lecture 19 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University March 16, 2007 Last Time Minimum This Time More Strongly Connected
More informationIntroduction to Algorithms 6.046J/18.401J
Introduction to Algorithms 6.046J/18.401J LECTURE 1 Analysis of Algorithms Insertion sort Merge sort Prof. Charles E. Leiserson Course information 1. Staff. Prerequisites 3. Lectures 4. Recitations 5.
More information11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions
Introduction Chapter 9 Graph Algorithms graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 2 Definitions an undirected graph G = (V, E) is
More information