Fast Sequential Summation Algorithms Using Augmented Data Structures
|
|
|
- Jeffrey Conley
- 9 years ago
- Views:
Transcription
1 Fast Sequential Summation Algorithms Using Augmented Data Structures Vadim Stadnik Abstract This paper provides an introduction to the design of augmented data structures that offer an efficient representation of a mathematical sequence and fast sequential summation algorithms, which guarantee both logarithmic running time and logarithmic computational cost in terms of the total number of operations. In parallel summation algorithms, logarithmic running time is achieved by high linear computational cost with a linear number of processors. The important practical advantage of the fast sequential summation algorithms is that they do not require supercomputers and can run on the cheapest single processor systems. Layout 1. Motivation 2. Parallel Summation Algorithms 3. Choice of Data Structure 4. Geometric Interpretation 5. Representation of Sequence 6. Fast Sequential Summation Algorithms 7. Mean Value and Standard Deviation 8. Other Data Structures 1. Motivation The original version of the fast sequential summation algorithms described here was implemented in C++ using data structures that support interfaces of STL containers [1]. These interesting and important algorithms can be implemented in many other programming languages. This discussion provides an introduction to the design of data structures, which significantly improve performance of summation algorithms. The fast summation algorithms have been developed by applying the method of augmenting data structures [2]. This powerful method can be used to solve a wide range of problems. It helps design advanced data structures that support more efficient algorithms than basic data structures. The main disadvantage of this method is its complexity, which makes the use of this method difficult in practice. For this reason, we consider the fast summation algorithms from perspectives that simplify the explanation. The discussion should also help better understand the design principles for quite complex augmented data structures. Here we focus on the efficient representation of a mathematical sequence and the efficient summation algorithms. For the implementation of update operations on augmented data structures, we refer the reader to the detailed description of the method of augmenting in [2]. To highlight the main ideas, we use simplified variants of the data structures originally implemented in C++.
2 2. Parallel Summation Algorithms The summation algorithms are fundamental to a wide range of applications from scientific to commercial. The linear running time of the standard sequential summation is acceptable for processing small data sets, but can become a bottleneck for large and huge data sets. Any improvement in the running time of summation algorithms in performance critical applications is of significant importance. Recent progress in computer technology has enabled the development of effective parallel summation algorithms. Most modern computers have a very small number of processors compared to a typical number of elements processed. The running time of parallel summation on these computers is linear, with optimal improvement over the standard sequential summation proportional to the number of processors. This performance improvement might be significant for some applications, but not acceptable for others. If an algorithm has a performance bottleneck caused by the standard sequential summation, it will not be removed by the parallel summation, which has the same asymptotical running time. The barrier of linear running time can be broken using the ideal parallel machine. The summation algorithm shown in Figure 1 computes the sum in logarithmic time. Figure 1: A diagram of a parallel summation algorithm for 16 elements. The algorithm takes 4 time steps and performs 15 additions. A brief discussion of this simple parallel summation algorithm is useful for gaining insight into efficient sequential algorithms. The ideal parallel summation algorithm achieves considerable performance gain by applying the divide and conquer technique, which avoids sequential processing of a large number of elements that has linear running time. The algorithm uses system processors to divide a given data set into pairs of adjacent elements. The sums of all of the pairs are computed simultaneously and become elements of a new data set to be processed at the next stage of the computations. Each stage of processing decreases the number of elements and involved processors by a factor of 2. The last stage computes the total sum of all of the elements in the given data set. The running time of this algorithm is determined by the number of stages, which is logarithmic in the number of elements.
3 One of the main features of the parallel summation algorithm is that its logarithmic running time is achieved by high computational cost and, thus, high energy consumption. The total number of operations performed by the parallel algorithm may be even greater than the number of operations performed by the standard sequential algorithm [3]. The drawback of the parallel summation algorithm is that it is designed to compute one value of the total sum of all of the elements in a data set and throws away all of the results computed at intermediate stages. When the processed data set is modified by a small number of operations, such as appending new elements, many intermediate results remain valid and might be reused in subsequent computations. The recomputation of all of the valid data, which is performed by the parallel summation algorithm, incurs additional computational cost and seems to be unnecessary. This observation leads to the problem of the development of an optimal summation algorithm that performs the minimal number of operations by using precomputed data and avoiding the recomputation of valid data when a data set is modified. The fast sequential summation algorithms described below provide a solution to this problem. These algorithms guarantee both logarithmic running time and logarithmic computational cost in terms of the total number of operations. They do not require a supercomputer and can run on the cheapest single processor systems, including mobile devices. 3. Choice of Data Structure The implementation of the new summation algorithms requires a data structure that stores and efficiently updates the precomputed data. The choice of the most suitable data structure plays a critical role in the design of such algorithms. In general, the maximum efficiency of an algorithm is limited by the complexity and effectiveness of structural relationships between data items stored in a data structure. For example, both linked lists and balanced trees can store the same data set. A list provides search operations with linear running time only, whereas a tree guarantees significantly better logarithmic running time. The sequential summation algorithms that operate on linked lists have the same performance characteristics. These basic data structures cannot achieve a running time better than linear. The performance of the sequential summation can be improved using data structures that are more complex than a linked list or an array. The discussed parallel summation algorithm suggests a data structure that can support the fast sequential summation algorithms. The diagram of the dynamics of parallel computations (see Figure 1) shows the dependencies between the summation operations as a directed acyclic graph. The structural relationships between intermediate results computed by the parallel algorithm at current and next stages are the same as child-parent links in a binary tree. This property of the parallel summation algorithm implies that the implementation of the fast sequential summation algorithms might be based on a binary tree. This is a good option, but not the only one. There are several other data structures suitable for this task. In the context of the development of the fast sequential summation algorithms, a B+ tree has a number of advantages over other types of trees. One of them is the globally balanced structure. This feature of B+ trees simplifies the design and development of new summation algorithms by using the similarity with the parallel algorithm. A data set stored at one level of a B+ tree can be regarded as a counterpart
4 of a data set computed at one stage of the parallel summation algorithm. The difference between these two data sets is in the method of grouping elements. A B+ tree that stores precomputed data for summation algorithms can be built in linear time by the following bottom-up algorithm (see Figure 2). The process starts with the construction of a doubly linked list that represents the original numeric sequence. Each next level is built on the top of the previous level. All of the nodes at a new level are linked in a doubly linked list. Each node at a new level is the parent of a group of nodes at the previous level. For illustration purposes, this variant of a B+ tree supports the reduced set of child-parent links: only a parent and its first child are linked. The parent node stores the sum of the values of its child nodes. As the construction proceeds, the number of nodes at a new top level quickly decreases. The process stops when the number of nodes at the top level is less than the maximum size of a group of child nodes. The obtained data structure represents a level-linked B+ tree [4, 5]. Figure 2: A level-linked B+ tree that stores precomputed data for sequential summation algorithms. 4. Geometric Interpretation This variant of a B+ tree offers the advantage of visualizing summation algorithms in one dimensional space (see Figure 3). An element of a sequence of positive numbers can be represented as a line segment with the length equal to the element value. The geometric interpretation combines the representation of a line segment with the representation of the corresponding horizontal link from the current node to the next node. In this data structure, a group of consecutive nodes and a linked list of any level represent a polygonal chain or polyline. Figure 3: A geometric representation of the B+ tree shown in Figure 2. A sum stored in a node in the original tree is mapped to the length of a line segment between the current node and the next node. In a more detailed representation, each horizontal link might be drawn with a length proportional to a
5 corresponding sum. This drawing method is not used here to make the geometric representation more compact. In contrast to the horizontal dimension, the vertical dimension of the data structure shown does not exist physically. It is only a feature of the schematic representation of this data structure. This dimension is used to separate horizontally linked lists of different levels and to show the child-parent links that connect these levels. The vertical child-parent links are perpendicular to line segments at any level and, thus, their projections on the horizontal dimension do not have lengths. At any internal level, the start and end points of a parent line segment coincide with the start point of its first child segment and the end point of its last child segment, respectively. The relationship between a parent node and its children can be regarded as a partition of the parent line segment into a polygonal chain of its child line segments. The deepest level of such a geometric data structure stores line segments that correspond to all of the elements in the original sequence. At all other levels, each line segment has a length equal to the sum of the lengths of its child line segments. When an algorithm moves up, the number of line segments at the current level quickly decreases and the length of each line segment increases. A line segment at an internal level covers a large number of consecutive line segments at the deepest level. The total length of a polyline at each level remains constant, despite the numbers and the lengths of line segments possibly varying quite significantly. In terms of processing the original sequence, the length of a line segment at an internal level of the geometric data structure represents a sum of a large number of original consecutive elements. The line segment at the top level has a length equal to the total length of all line segments at the deepest level. This result is equivalent to the top node in the original data structure storing the sum of all of the elements. The geometric data structure of line segments helps explain the following simple rules for the development of new sequential summation algorithms: 1. When an algorithm traverses a horizontal link from the current to the next node (from left to right in Figure 3), it adds the length of the visited line segment. This traversal is equivalent to the addition operation. 2. When an algorithm traverses a horizontal link from the current to the previous node (from right to left in Figure 3), it subtracts the length of the visited line segment. This traversal is equivalent to the subtraction operation. 3. A traversal of a vertical link has no effect on the value of an accumulated sum. The fast sequential summation algorithms can be developed using the observation that the line segments at high levels of this data structure provide the total length for large numbers of consecutive line segments at the deepest level. Thus, using high levels would be beneficial for the performance of such algorithms. Figure 4 illustrates the idea of the top down processing that finds a sum of the first consecutive elements. For comparison, this figure also shows the sequential summation of elements in a basic linked list.
6 Figure 4: A geometric illustration of the idea of efficient sequential summation using a B+ tree with precomputed data. A sum of first elements can be computed by top down traversal of the tree. The path drawn in red color has 4 horizontal line segments with the total length equal to the total length of 23 line segments in a linked list shown at the bottom. The optimal implementation of the top down algorithm can be expected to find the minimum possible number of line segments that cover the corresponding polyline of the deepest level. The algorithm visits all of the levels of the data structure. The number of levels is logarithmic in the number of sequence elements. The number of nodes visited at each level does not exceed the maximum size of a single group. Thus, it can be expected that the proposed data structure supports an algorithm that computes the sum of any number of first consecutive elements of a sequence in logarithmic time. 5. Representation of Sequence The proper implementation of summation algorithms based on the ideas discussed so far faces the following problems. First of all, it is desirable to develop a summation algorithm that operates on any consecutive elements, not just the first ones. The second problem is that the data structure, which stores summation data only, does not yet have a method to identify the elements to be processed. Unlike basic search trees, the value or key of an element cannot be used as an identifier for the element. The summation rules are formulated for sequences, which can contain elements with multiple and unique values in sorted or random order. A mathematical sequence is formally defined as a function that maps an element of the set of nonnegative integers, which represent ranks, into an element of a given set. Each element in a sequence is uniquely identified by its rank. Note that the rank of an element is also called the subscript, the index or the position in linear order. Any consecutive elements of a sequence are defined through the ranks of the first and last elements. The formal definition requires implementing an efficient data structure that stores elements of a given set and provides access to any element specified by its rank. The proposed data structure meets the requirements for a sequence, since it stores elements in a linked list of the deepest level. A doubly linked list also provides optimal constant time access to previous
7 and next elements. The problem for the data structure is how to support the rank of each element with efficiency sufficient for the fast summation algorithm. The straightforward method of counting elements in a sequence using the links between the nodes in the list of the deepest level is not acceptable. This method has linear running time. It is too slow for the fast summation algorithm, which is expected to run in logarithmic time. An interesting and probably surprising fact is that the idea of the discussed fast sequential summation algorithm using the proposed data structure hints at the solution to this problem. This conclusion follows from the observation that the rank of an element in a sequence, by definition, is the number of elements preceding this element. In other words, the rank is a special sum, which is also called the count. With the aid of the proposed data structure and the fast summation algorithm, the count and, thus, the rank can be quickly computed if each node at the deepest level stores the integer value 1 (see Figure 5). Figure 5: A B+ tree that stores counts of nodes at the deepest level. The bottom line shows the ranks of these nodes. Each parent node in this tree has the same number of child nodes as the matching parent node in the tree shown in Figure 2. Due to the close similarity, the data structure of counts can be regarded as a special variant of the previously discussed data structure of sums (compare Figure 5 with Figure 2). It differs only in the type of data it stores. Its nodes store the counts of nodes at the deepest level, which are equal to the counts of sequence elements, instead of the sums of the values of elements in the same counted external nodes. At high levels, the count in a node represents the number of sequence elements in a sub-tree rooted at this node. The algorithm for the computation of the rank of a sequence element can be implemented using the idea of the discussed fast sequential summation algorithm (see Figure 4) that operates on the data structure of counts shown in Figure 5. This algorithm represents a top down search for a node at the deepest level that stores a sequence element associated with a given rank. The algorithm uses the total count of nodes at the deepest level. As the algorithm scans through the linked list of a current level, it updates the total count using the counts stored in visited nodes. The algorithm initializes the total count to zero and starts the search at the first node at the top level. The algorithm scans forward through the current level while the total count is less than the given rank. If the current level is the deepest one, the search stops and the algorithm returns the current node. Otherwise the algorithm moves down to the next level and continues the forward scan and search.
8 The running time of this top down algorithm is guaranteed to be logarithmic in the number of sequence elements. It is determined by the number of levels, which is logarithmic, and the maximum size of a single group of child nodes in a B+ tree, which is constant. The data structure that stores only the integer value 1 in each node at the deepest level is not particularly useful in practice. A general sequence stores elements of an application specific set. In order to take advantage of the efficient support for the rank and obtain a general representation of a sequence, the data structure of counts must be combined with a data structure that stores elements of the application specific set. A B+ tree is one of the most appropriate choices for this purpose, because a tree of this type is implemented as a combination of two data structures [4]. An application data set is stored in a linear data structure that supports efficient sequential access to the data. The other data structure, which is connected to the linear structure, is a B-tree. This tree stores implementation specific data and supports fast search and random access to the elements of the application data set. The B+ trees are well-studied and offer a wide variety of options for specific implementations. The discussed data structure uses the simple combination of a level-linked B-tree with a doubly linked list. The main focus of this discussion is on the design of fast summation algorithms. To avoid confusion, it is necessary to clarify the following aspect of the representation of a mathematical sequence. The formal definition of a sequence does not require that its elements support the addition operation. A general sequence can be used to store elements of various types, not just numerical. A classical example of a non-numeric sequence is a string of characters (see Figure 6). The summation of characters is meaningless from a human perspective. Figure 6: An example of a representation of a sequence of characters using a B+ tree that provides efficient sequential and random access to elements. The internal nodes store counts of characters. The counts of 1 s and links between nodes at the deepest level are omitted from this figure. The obtained data structure with efficient counting nodes at the deepest level satisfies the requirements for a mathematical sequence. The doubly linked list of the deepest level can store any data as it does a basic linked list. In addition to this, the method for the fast computation of the rank provides efficient random access to sequence elements. Normally, it should be used for distant elements, since access to adjacent elements is optimal through links to next and previous nodes. Because of these properties, the data structure that implements the discussed counting can be regarded as a linked list with improved efficiency of access to distant elements.
9 6. Fast Sequential Summation Algorithms Efficient access to elements does not guarantee high performance of summation algorithms. If a data structure does not implement proper facilities, it can support only sequential summation, which has linear running time. The data structure that supports a fast sequential summation algorithm is more complex than the efficient data structure, which implements a general sequence. In order to efficiently support both the summation operations and the rank method, the internal nodes of this data structure must store both sums of the values of elements in a sequence and counts of these elements. Such a data structure is a combination of the sub-structures of sums and counts (see Figure 7). Figure 7: A B+ tree that provides an efficient representation of a sequence and supports fast sequential summation algorithms. The tree is a combination of the trees shown in Figures 2 and 5. Each node in this tree stores both a count and a sum of the values of elements in a sequence. All of the trees in Figures 2, 5 and 7 have an identical structure. Despite the fact that, in theory, the sub-structure of sums supersedes the sub-structure of counts, the former does not replace the latter in a summation algorithm. These sub-structures store two different data sets and support different algorithms. The sub-structure of counts stores only non-negative integers, whereas the sub-structure of sums can store elements of any type that support the addition operation, for example, complex numbers. A fast sequential summation algorithm involves the facilities of both sub-structures. The sub-structure of counts plays an essential role, since the summation of sequence elements is specified through their ranks. Without the sub-structure of counts that supports the efficient rank method, a summation algorithm cannot efficiently identify the elements to be processed. The proposed level-linked data structure shown in Figure 7 can support two variants of efficient sequential summation algorithms that are useful in applications. The fast sequential algorithm for a partial sum that computes the sum of the first n consecutive elements
10 can be implemented as an extension to the efficient algorithm for the rank of an element in a sequence discussed in Section 5. This summation algorithm employs the additional variable, which represents the total sum of processed sequence elements. The algorithm starts at the first node at the top level and moves to the last node at the deepest level along a path detected by the rank algorithm. As the algorithm visits a node on the path, it uses the sum stored in the node to update the total sum. With this partial sum algorithm, a sum of any consecutive elements in a sequence can be easily computed as the difference between the sum of the first n elements and the sum of the first m elements. This simple method offers good running time, which is logarithmic in the number of elements in a sequence, but it has a few issues. The method has excessive cost associated with the sum of the first m elements, which is computed twice. This computation is unnecessary to some degree, since this sum does not contribute to the result. In addition to this, there is a possibility that the sum of the first m elements has a huge value compared to the result value. This possibility may cause an accuracy problem in practical applications. The optimal algorithm computes a sum of only consecutive elements specified by the lower and upper limits of the summation (see Figure 8). Its implementation avoids the unnecessary computation of a sum of the first m elements by processing that starts and ends at the deepest level of the data structure, which stores all of the elements in a sequence. Figure 8: A geometric illustration of a fast sequential summation algorithm using a shortest path between two nodes at the deepest level. The algorithm visits 8 nodes (excluding the node associated with the end of the last visited line segment) at the three lowest levels and finds 4 horizontal line segments with the total length equal to the total length of 22 line segments in a linked list shown at the bottom. This algorithm uses the given summation limits to obtain the ranks of the first and last elements to be processed. These ranks enable the algorithm to identify the nodes at the deepest level that store the first and last elements. The fast summation algorithm uses the sub-structure of counts to find a shortest path (not necessarily unique) from the first node to the last node. This implementation detail of the summation algorithm is similar to the finger search algorithm in search trees [5, 6]. The levellinked data structure provides the set of links between nodes, which is optimized for local search and allows the algorithm to use the minimum number of low levels. The algorithm reaches the top level only when the number of elements to be processed approaches the total number of elements in a sequence.
11 A shortest path guarantees the most efficient computation of a sum of all of the elements between two end nodes at the deepest level. As the algorithm visits nodes on the path, it uses sums stored in the nodes to compute the total sum. The summation algorithm based on a shortest path performs the minimum number of computational operations. The summation algorithm based on finger search addresses all of the issues of the partial sum algorithm. Generally, it is more efficient, since its running time is logarithmic in the number of specified consecutive elements against the number of all of the elements in a sequence. The algorithm based on finger search does not sum up elements before the lower summation limit and, thus, provides basically the same accuracy of the result as the standard sequential summation. This advantage can be important in practice to minimize computational numerical errors. Compared to the partial sum algorithm, the summation algorithm based on finger search is more general. It can be applied to any consecutive elements in a sequence, not just the first ones. From an implementation perspective, both summation algorithms are quite similar (see Figures 4 and 8). Each algorithm computes a sum using a shortest path from the first node to the last node. The main difference is in the choice of the first node. The partial sum algorithm starts at the first node at the top level, whereas the finger search algorithm starts at the node at the deepest level that corresponds to the lower limit of the summation. For both algorithms, a path terminates at the same last node at the deepest level that corresponds to the upper limit of the summation. Note also that search operations on counts that support the efficient rank method and shortest path algorithms are similar to search operations on keys in a search tree. The difference is that a search for a key involves comparisons only while the search operations on counts use addition and comparison with an accumulated value. 7. Mean Value and Standard Deviation The summation algorithms with logarithmic running time can significantly improve the efficiency of solutions in numerous application areas, such as numerical integration, statistics, data analysis, etc. For example, the computation of important statistical parameters, such as the mean value and the standard deviation, using normal sequential summation takes linear time. With the fast summation algorithms, these parameters can be computed in logarithmic time only. This result follows from the fact that the running times of the computation of both parameters are determined by summation operations. The number of involved elements is calculated in constant time through the specified summation limits or the ranks of corresponding elements. This operation has no significant effect on the total running time. The mean value of any consecutive elements is simply computed by dividing an obtained sum by the number of elements The standard deviation can be computed simultaneously with the mean value. The straightforward method is to create a new augmented data structure, which implements the fast summation of squared values of sequence elements. The more advanced method is to store the sums of squared values of elements in the nodes of the available data structure that implements a fast summation algorithm. These additional data enable the summation of squared values with the same efficiency as the
12 summation of values of specified consecutive elements. The standard deviation is computed by taking the square root of the variance 8. Other Data Structures Efficient representations of a mathematical sequence and sequential summation algorithms with logarithmic running time can be devised with various data structures. Several well-known and widely used data structures are briefly considered here. The proposed data structures and algorithms have been developed using the method of augmenting. A general explanation of this method is provided in [2]. The underlying data structure used in specific examples is a red-black tree. Another application of this method to binary trees is available in [7]. These books show how the method of augmenting a data structure improves the performance of orderstatistic queries and range queries. There are also thorough descriptions of update operations on the augmented red-black and binary trees. In terms of the method of augmenting, a data structure that efficiently supports a sequence implements single augmenting with counts of elements. A data structure that supports a fast sequential summation algorithm implements double augmenting with both counts and sums of element values. Every augmenting uses a basic data structure to build its own sub-structure with a specific data set. Multiple augmenting can be regarded as implementing several data structures within one. For example, the discussed fast computation of the standard deviation is achieved by triple augmenting. The method of augmenting can be applied several times to one data structure to achieve the best efficiency of an algorithm. The augmented red-black and binary trees [2, 7] efficiently support counting and the rank of an element. These facilities can be used in algorithms for the representation of a mathematical sequence. The fast sequential summation algorithms can be obtained through augmenting that creates a substructure of sums of element values. The second augmenting is not expected to be challenging because of the close similarity of the sub-structures of counts and sums. The augmented red-black and binary trees have, however, one important limitation, namely that they do not provide efficient finger search, which is quite useful in practice for summation algorithms. Another data structure suitable for implementing fast sequential summation algorithms is a randomized skip list. Its simple insertion, deletion and traversal operations significantly reduce the cost of development. In the context of implementing summation algorithms, this data structure has the important advantage that it provides both top down and finger searches. A skip list can support both variants of fast sequential summation algorithms described here, since the efficient rank and summation algorithms are based on these searches in augmented data structures. The basic data structure used here for the description of fast sequential summation algorithms represents a level-linked B+ tree with the minimal number of child-parent links. It is equivalent to a deterministic skip list [8, 9]. The methods of augmenting this basic data structure and a randomized skip list are identical. For augmenting a skip list with the counts of elements, see [10].
13 The benefit of the low cost of the development of an augmented skip list comes at the expense of the disadvantages that might result from the randomization of its structure and loss of balance. A skip list guarantees logarithmic running time of the discussed algorithms on average only. In addition to this, random deviations from a shortest path may lead to a loss in accuracy of the summation result. References 1. V. Stadnik. STL extensions based on advanced data structures T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein. Introduction to Algorithms. Second Edition, MIT Press and McGraw-Hill, Cambridge (MA), G.E. Blelloch and B.M. Maggs. Parallel Algorithms. In Computer Science Handbook, Second Edition, A.B. Tucker (Editor), CRC Press, D. Comer. The Ubiquitous B-trees. ACM Computing Surveys, 11(2), pages , P. Brass. Advanced Data Structures. Cambridge University Press, Cambridge, G.S. Brodal. Finger Search Trees. In Handbook of Data Structures and Applications, D. Mehta and S. Sahni (Editors), CRC Press, R. Sedgewick and K. Wayne. Algorithms. Fourth Edition, Addison-Wesley, Boston, P. Bose, K. Douïeb, S. Langerman. Dynamic Optimality for Skip Lists and B-Trees. In Proceedings of the 19th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2008), pages , M.G. Lamoureux and B.G. Nickerson. On the Equivalence of B-trees and Deterministic Skip Lists. University of New Brunswick Technical Report, TR96-102, January W. Pugh. A skip list cookbook. Technical Report CS-TR , Department of Computer Science, University of Maryland, College Park, MD, July 1989.
Data Structures and Algorithms Written Examination
Data Structures and Algorithms Written Examination 22 February 2013 FIRST NAME STUDENT NUMBER LAST NAME SIGNATURE Instructions for students: Write First Name, Last Name, Student Number and Signature where
A Comparison of Dictionary Implementations
A Comparison of Dictionary Implementations Mark P Neyer April 10, 2009 1 Introduction A common problem in computer science is the representation of a mapping between two sets. A mapping f : A B is a function
Persistent Binary Search Trees
Persistent Binary Search Trees Datastructures, UvA. May 30, 2008 0440949, Andreas van Cranenburgh Abstract A persistent binary tree allows access to all previous versions of the tree. This paper presents
Skip List Data Structure Based New Searching Algorithm and Its Applications: Priority Search
Skip List Data Structure Based New Searching Algorithm and Its Applications: Priority Search Mustafa Aksu Department of Computer Technologies Vocational School of Technical Sciences, Sutcu Imam University
Triangulation by Ear Clipping
Triangulation by Ear Clipping David Eberly Geometric Tools, LLC http://www.geometrictools.com/ Copyright c 1998-2016. All Rights Reserved. Created: November 18, 2002 Last Modified: August 16, 2015 Contents
Optimal Binary Search Trees Meet Object Oriented Programming
Optimal Binary Search Trees Meet Object Oriented Programming Stuart Hansen and Lester I. McCann Computer Science Department University of Wisconsin Parkside Kenosha, WI 53141 {hansen,mccann}@cs.uwp.edu
Vector storage and access; algorithms in GIS. This is lecture 6
Vector storage and access; algorithms in GIS This is lecture 6 Vector data storage and access Vectors are built from points, line and areas. (x,y) Surface: (x,y,z) Vector data access Access to vector
- Easy to insert & delete in O(1) time - Don t need to estimate total memory needed. - Hard to search in less than O(n) time
Skip Lists CMSC 420 Linked Lists Benefits & Drawbacks Benefits: - Easy to insert & delete in O(1) time - Don t need to estimate total memory needed Drawbacks: - Hard to search in less than O(n) time (binary
IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE OPERATORS
Volume 2, No. 3, March 2011 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE
Current Standard: Mathematical Concepts and Applications Shape, Space, and Measurement- Primary
Shape, Space, and Measurement- Primary A student shall apply concepts of shape, space, and measurement to solve problems involving two- and three-dimensional shapes by demonstrating an understanding of:
A Non-Linear Schema Theorem for Genetic Algorithms
A Non-Linear Schema Theorem for Genetic Algorithms William A Greene Computer Science Department University of New Orleans New Orleans, LA 70148 bill@csunoedu 504-280-6755 Abstract We generalize Holland
Linear Programming. March 14, 2014
Linear Programming March 1, 01 Parts of this introduction to linear programming were adapted from Chapter 9 of Introduction to Algorithms, Second Edition, by Cormen, Leiserson, Rivest and Stein [1]. 1
Efficient Data Structures for Decision Diagrams
Artificial Intelligence Laboratory Efficient Data Structures for Decision Diagrams Master Thesis Nacereddine Ouaret Professor: Supervisors: Boi Faltings Thomas Léauté Radoslaw Szymanek Contents Introduction...
Outline BST Operations Worst case Average case Balancing AVL Red-black B-trees. Binary Search Trees. Lecturer: Georgy Gimel farb
Binary Search Trees Lecturer: Georgy Gimel farb COMPSCI 220 Algorithms and Data Structures 1 / 27 1 Properties of Binary Search Trees 2 Basic BST operations The worst-case time complexity of BST operations
Why? A central concept in Computer Science. Algorithms are ubiquitous.
Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online
Lecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 17 October 23, 2014 1 Introduction In this lecture, we will continue considering associative
How To Understand And Solve Algebraic Equations
College Algebra Course Text Barnett, Raymond A., Michael R. Ziegler, and Karl E. Byleen. College Algebra, 8th edition, McGraw-Hill, 2008, ISBN: 978-0-07-286738-1 Course Description This course provides
CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) 3 4 4 7 5 9 6 16 7 8 8 4 9 8 10 4 Total 92.
Name: Email ID: CSE 326, Data Structures Section: Sample Final Exam Instructions: The exam is closed book, closed notes. Unless otherwise stated, N denotes the number of elements in the data structure
Prentice Hall Mathematics: Course 1 2008 Correlated to: Arizona Academic Standards for Mathematics (Grades 6)
PO 1. Express fractions as ratios, comparing two whole numbers (e.g., ¾ is equivalent to 3:4 and 3 to 4). Strand 1: Number Sense and Operations Every student should understand and use all concepts and
International Journal of Advanced Research in Computer Science and Software Engineering
Volume 3, Issue 7, July 23 ISSN: 2277 28X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Greedy Algorithm:
Measurement with Ratios
Grade 6 Mathematics, Quarter 2, Unit 2.1 Measurement with Ratios Overview Number of instructional days: 15 (1 day = 45 minutes) Content to be learned Use ratio reasoning to solve real-world and mathematical
Sample Questions Csci 1112 A. Bellaachia
Sample Questions Csci 1112 A. Bellaachia Important Series : o S( N) 1 2 N N i N(1 N) / 2 i 1 o Sum of squares: N 2 N( N 1)(2N 1) N i for large N i 1 6 o Sum of exponents: N k 1 k N i for large N and k
Binary search tree with SIMD bandwidth optimization using SSE
Binary search tree with SIMD bandwidth optimization using SSE Bowen Zhang, Xinwei Li 1.ABSTRACT In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous
DATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
Data Structure [Question Bank]
Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:
CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
RESEARCH PAPERS FACULTY OF MATERIALS SCIENCE AND TECHNOLOGY IN TRNAVA SLOVAK UNIVERSITY OF TECHNOLOGY IN BRATISLAVA
RESEARCH PAPERS FACULTY OF MATERIALS SCIENCE AND TECHNOLOGY IN TRNAVA SLOVAK UNIVERSITY OF TECHNOLOGY IN BRATISLAVA 2010 Number 29 3D MODEL GENERATION FROM THE ENGINEERING DRAWING Jozef VASKÝ, Michal ELIÁŠ,
Heaps & Priority Queues in the C++ STL 2-3 Trees
Heaps & Priority Queues in the C++ STL 2-3 Trees CS 3 Data Structures and Algorithms Lecture Slides Friday, April 7, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks
The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge,
The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge, cheapest first, we had to determine whether its two endpoints
PES Institute of Technology-BSC QUESTION BANK
PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
5. Binary objects labeling
Image Processing - Laboratory 5: Binary objects labeling 1 5. Binary objects labeling 5.1. Introduction In this laboratory an object labeling algorithm which allows you to label distinct objects from a
ALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite
ALGEBRA Pupils should be taught to: Generate and describe sequences As outcomes, Year 7 pupils should, for example: Use, read and write, spelling correctly: sequence, term, nth term, consecutive, rule,
VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills
VISUALIZING HIERARCHICAL DATA Graham Wills SPSS Inc., http://willsfamily.org/gwills SYNONYMS Hierarchical Graph Layout, Visualizing Trees, Tree Drawing, Information Visualization on Hierarchies; Hierarchical
International Journal of Software and Web Sciences (IJSWS) www.iasir.net
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International
Shortest Inspection-Path. Queries in Simple Polygons
Shortest Inspection-Path Queries in Simple Polygons Christian Knauer, Günter Rote B 05-05 April 2005 Shortest Inspection-Path Queries in Simple Polygons Christian Knauer, Günter Rote Institut für Informatik,
Storing Measurement Data
Storing Measurement Data File I/O records or reads data in a file. A typical file I/O operation involves the following process. 1. Create or open a file. Indicate where an existing file resides or where
Data storage Tree indexes
Data storage Tree indexes Rasmus Pagh February 7 lecture 1 Access paths For many database queries and updates, only a small fraction of the data needs to be accessed. Extreme examples are looking or updating
Binary Heap Algorithms
CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks [email protected] 2005 2009 Glenn G. Chappell
The Goldberg Rao Algorithm for the Maximum Flow Problem
The Goldberg Rao Algorithm for the Maximum Flow Problem COS 528 class notes October 18, 2006 Scribe: Dávid Papp Main idea: use of the blocking flow paradigm to achieve essentially O(min{m 2/3, n 1/2 }
Student Performance Q&A:
Student Performance Q&A: 2008 AP Calculus AB and Calculus BC Free-Response Questions The following comments on the 2008 free-response questions for AP Calculus AB and Calculus BC were written by the Chief
SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS
UDC: 004.8 Original scientific paper SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS Tonimir Kišasondi, Alen Lovren i University of Zagreb, Faculty of Organization and Informatics,
Graph Theory Problems and Solutions
raph Theory Problems and Solutions Tom Davis [email protected] http://www.geometer.org/mathcircles November, 005 Problems. Prove that the sum of the degrees of the vertices of any finite graph is
Converting a Number from Decimal to Binary
Converting a Number from Decimal to Binary Convert nonnegative integer in decimal format (base 10) into equivalent binary number (base 2) Rightmost bit of x Remainder of x after division by two Recursive
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
Clustering & Visualization
Chapter 5 Clustering & Visualization Clustering in high-dimensional databases is an important problem and there are a number of different clustering paradigms which are applicable to high-dimensional data.
Sequential Data Structures
Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year
Operation Count; Numerical Linear Algebra
10 Operation Count; Numerical Linear Algebra 10.1 Introduction Many computations are limited simply by the sheer number of required additions, multiplications, or function evaluations. If floating-point
Data Structures Fibonacci Heaps, Amortized Analysis
Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure:
Algebra 2 Chapter 1 Vocabulary. identity - A statement that equates two equivalent expressions.
Chapter 1 Vocabulary identity - A statement that equates two equivalent expressions. verbal model- A word equation that represents a real-life problem. algebraic expression - An expression with variables.
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS Systems of Equations and Matrices Representation of a linear system The general system of m equations in n unknowns can be written a x + a 2 x 2 + + a n x n b a
Distance Degree Sequences for Network Analysis
Universität Konstanz Computer & Information Science Algorithmics Group 15 Mar 2005 based on Palmer, Gibbons, and Faloutsos: ANF A Fast and Scalable Tool for Data Mining in Massive Graphs, SIGKDD 02. Motivation
Physical Data Organization
Physical Data Organization Database design using logical model of the database - appropriate level for users to focus on - user independence from implementation details Performance - other major factor
Lecture 10: Regression Trees
Lecture 10: Regression Trees 36-350: Data Mining October 11, 2006 Reading: Textbook, sections 5.2 and 10.5. The next three lectures are going to be about a particular kind of nonlinear predictive model,
Common Core Unit Summary Grades 6 to 8
Common Core Unit Summary Grades 6 to 8 Grade 8: Unit 1: Congruence and Similarity- 8G1-8G5 rotations reflections and translations,( RRT=congruence) understand congruence of 2 d figures after RRT Dilations
Performance Level Descriptors Grade 6 Mathematics
Performance Level Descriptors Grade 6 Mathematics Multiplying and Dividing with Fractions 6.NS.1-2 Grade 6 Math : Sub-Claim A The student solves problems involving the Major Content for grade/course with
5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
Hierarchical Data Visualization
Hierarchical Data Visualization 1 Hierarchical Data Hierarchical data emphasize the subordinate or membership relations between data items. Organizational Chart Classifications / Taxonomies (Species and
A binary heap is a complete binary tree, where each node has a higher priority than its children. This is called heap-order property
CmSc 250 Intro to Algorithms Chapter 6. Transform and Conquer Binary Heaps 1. Definition A binary heap is a complete binary tree, where each node has a higher priority than its children. This is called
Operating Systems CSE 410, Spring 2004. File Management. Stephen Wagner Michigan State University
Operating Systems CSE 410, Spring 2004 File Management Stephen Wagner Michigan State University File Management File management system has traditionally been considered part of the operating system. Applications
Data Warehousing und Data Mining
Data Warehousing und Data Mining Multidimensionale Indexstrukturen Ulf Leser Wissensmanagement in der Bioinformatik Content of this Lecture Multidimensional Indexing Grid-Files Kd-trees Ulf Leser: Data
GRID SEARCHING Novel way of Searching 2D Array
GRID SEARCHING Novel way of Searching 2D Array Rehan Guha Institute of Engineering & Management Kolkata, India Abstract: Linear/Sequential searching is the basic search algorithm used in data structures.
Chapter 10: Network Flow Programming
Chapter 10: Network Flow Programming Linear programming, that amazingly useful technique, is about to resurface: many network problems are actually just special forms of linear programs! This includes,
1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)
Chapter 7 Data Structures for Computer Graphics (This chapter was written for programmers - option in lecture course) Any computer model of an Object must comprise three different types of entities: 1.
SIMS 255 Foundations of Software Design. Complexity and NP-completeness
SIMS 255 Foundations of Software Design Complexity and NP-completeness Matt Welsh November 29, 2001 [email protected] 1 Outline Complexity of algorithms Space and time complexity ``Big O'' notation Complexity
Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams
Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams André Ciré University of Toronto John Hooker Carnegie Mellon University INFORMS 2014 Home Health Care Home health care delivery
BookTOC.txt. 1. Functions, Graphs, and Models. Algebra Toolbox. Sets. The Real Numbers. Inequalities and Intervals on the Real Number Line
College Algebra in Context with Applications for the Managerial, Life, and Social Sciences, 3rd Edition Ronald J. Harshbarger, University of South Carolina - Beaufort Lisa S. Yocco, Georgia Southern University
Chapter 15: Dynamic Programming
Chapter 15: Dynamic Programming Dynamic programming is a general approach to making a sequence of interrelated decisions in an optimum way. While we can describe the general characteristics, the details
11 Finger Search Trees
11 Finger Search Trees Gerth Stølting Brodal University of Aarhus 11.1 Finger Searching... 11-1 11.2 Dynamic Finger Search Trees... 11-2 11.3 Level Linked (2,4)-Trees... 11-3 11.4 Randomized Finger Search
Pre-Algebra 2008. Academic Content Standards Grade Eight Ohio. Number, Number Sense and Operations Standard. Number and Number Systems
Academic Content Standards Grade Eight Ohio Pre-Algebra 2008 STANDARDS Number, Number Sense and Operations Standard Number and Number Systems 1. Use scientific notation to express large numbers and small
Introduction to Parallel Programming and MapReduce
Introduction to Parallel Programming and MapReduce Audience and Pre-Requisites This tutorial covers the basics of parallel programming and the MapReduce programming model. The pre-requisites are significant
A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:
Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)
Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C
Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate
Problem of the Month: Once Upon a Time
Problem of the Month: The Problems of the Month (POM) are used in a variety of ways to promote problem solving and to foster the first standard of mathematical practice from the Common Core State Standards:
MATH 10034 Fundamental Mathematics IV
MATH 0034 Fundamental Mathematics IV http://www.math.kent.edu/ebooks/0034/funmath4.pdf Department of Mathematical Sciences Kent State University January 2, 2009 ii Contents To the Instructor v Polynomials.
6.4 Normal Distribution
Contents 6.4 Normal Distribution....................... 381 6.4.1 Characteristics of the Normal Distribution....... 381 6.4.2 The Standardized Normal Distribution......... 385 6.4.3 Meaning of Areas under
EE602 Algorithms GEOMETRIC INTERSECTION CHAPTER 27
EE602 Algorithms GEOMETRIC INTERSECTION CHAPTER 27 The Problem Given a set of N objects, do any two intersect? Objects could be lines, rectangles, circles, polygons, or other geometric objects Simple to
DNS LOOKUP SYSTEM DATA STRUCTURES AND ALGORITHMS PROJECT REPORT
DNS LOOKUP SYSTEM DATA STRUCTURES AND ALGORITHMS PROJECT REPORT By GROUP Avadhut Gurjar Mohsin Patel Shraddha Pandhe Page 1 Contents 1. Introduction... 3 2. DNS Recursive Query Mechanism:...5 2.1. Client
Completion Time Scheduling and the WSRPT Algorithm
Completion Time Scheduling and the WSRPT Algorithm Bo Xiong, Christine Chung Department of Computer Science, Connecticut College, New London, CT {bxiong,cchung}@conncoll.edu Abstract. We consider the online
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding
Symbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
Partitioning and Divide and Conquer Strategies
and Divide and Conquer Strategies Lecture 4 and Strategies Strategies Data partitioning aka domain decomposition Functional decomposition Lecture 4 and Strategies Quiz 4.1 For nuclear reactor simulation,
arxiv:0909.4913v2 [math.ho] 4 Nov 2009
IRRATIONALITY FROM THE BOOK STEVEN J. MILLER AND DAVID MONTAGUE arxiv:0909.4913v2 [math.ho] 4 Nov 2009 A right of passage to theoretical mathematics is often a proof of the irrationality of 2, or at least
Dynamic Programming 11.1 AN ELEMENTARY EXAMPLE
Dynamic Programming Dynamic programming is an optimization approach that transforms a complex problem into a sequence of simpler problems; its essential characteristic is the multistage nature of the optimization
VISUAL ALGEBRA FOR COLLEGE STUDENTS. Laurie J. Burton Western Oregon University
VISUAL ALGEBRA FOR COLLEGE STUDENTS Laurie J. Burton Western Oregon University VISUAL ALGEBRA FOR COLLEGE STUDENTS TABLE OF CONTENTS Welcome and Introduction 1 Chapter 1: INTEGERS AND INTEGER OPERATIONS
Let s explore the content and skills assessed by Heart of Algebra questions.
Chapter 9 Heart of Algebra Heart of Algebra focuses on the mastery of linear equations, systems of linear equations, and linear functions. The ability to analyze and create linear equations, inequalities,
DATABASE DESIGN - 1DL400
DATABASE DESIGN - 1DL400 Spring 2015 A course on modern database systems!! http://www.it.uu.se/research/group/udbl/kurser/dbii_vt15/ Kjell Orsborn! Uppsala Database Laboratory! Department of Information
National 5 Mathematics Course Assessment Specification (C747 75)
National 5 Mathematics Course Assessment Specification (C747 75) Valid from August 013 First edition: April 01 Revised: June 013, version 1.1 This specification may be reproduced in whole or in part for
NEW MEXICO Grade 6 MATHEMATICS STANDARDS
PROCESS STANDARDS To help New Mexico students achieve the Content Standards enumerated below, teachers are encouraged to base instruction on the following Process Standards: Problem Solving Build new mathematical
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS. + + x 2. x n. a 11 a 12 a 1n b 1 a 21 a 22 a 2n b 2 a 31 a 32 a 3n b 3. a m1 a m2 a mn b m
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS 1. SYSTEMS OF EQUATIONS AND MATRICES 1.1. Representation of a linear system. The general system of m equations in n unknowns can be written a 11 x 1 + a 12 x 2 +
Glencoe. correlated to SOUTH CAROLINA MATH CURRICULUM STANDARDS GRADE 6 3-3, 5-8 8-4, 8-7 1-6, 4-9
Glencoe correlated to SOUTH CAROLINA MATH CURRICULUM STANDARDS GRADE 6 STANDARDS 6-8 Number and Operations (NO) Standard I. Understand numbers, ways of representing numbers, relationships among numbers,
Instituto de Engenharia de Sistemas e Computadores de Coimbra Institute of Systems Engineering and Computers INESC Coimbra
Instituto de Engenharia de Sistemas e Computadores de Coimbra Institute of Systems Engineering and Computers INESC Coimbra João Clímaco and Marta Pascoal A new method to detere unsupported non-doated solutions
Clustering. Danilo Croce Web Mining & Retrieval a.a. 2015/201 16/03/2016
Clustering Danilo Croce Web Mining & Retrieval a.a. 2015/201 16/03/2016 1 Supervised learning vs. unsupervised learning Supervised learning: discover patterns in the data that relate data attributes with
Extend Table Lens for High-Dimensional Data Visualization and Classification Mining
Extend Table Lens for High-Dimensional Data Visualization and Classification Mining CPSC 533c, Information Visualization Course Project, Term 2 2003 Fengdong Du [email protected] University of British Columbia
Distributed Computing over Communication Networks: Maximal Independent Set
Distributed Computing over Communication Networks: Maximal Independent Set What is a MIS? MIS An independent set (IS) of an undirected graph is a subset U of nodes such that no two nodes in U are adjacent.
In mathematics, there are four attainment targets: using and applying mathematics; number and algebra; shape, space and measures, and handling data.
MATHEMATICS: THE LEVEL DESCRIPTIONS In mathematics, there are four attainment targets: using and applying mathematics; number and algebra; shape, space and measures, and handling data. Attainment target
R-trees. R-Trees: A Dynamic Index Structure For Spatial Searching. R-Tree. Invariants
R-Trees: A Dynamic Index Structure For Spatial Searching A. Guttman R-trees Generalization of B+-trees to higher dimensions Disk-based index structure Occupancy guarantee Multiple search paths Insertions
1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
CATIA V5 Surface Design
CATIA V5 Training Foils CATIA V5 Surface Design Version 5 Release 19 August 2008 EDU_CAT_EN_V5S_FI_V5R19 1 Lesson 1: Introduction to Generative Shape Design About this Course Introduction CATIA is a robust
Scope and Sequence KA KB 1A 1B 2A 2B 3A 3B 4A 4B 5A 5B 6A 6B
Scope and Sequence Earlybird Kindergarten, Standards Edition Primary Mathematics, Standards Edition Copyright 2008 [SingaporeMath.com Inc.] The check mark indicates where the topic is first introduced
