throbber

`
`
`
`The Design and
`
`
`Analysis of
`
`Spatial Data
`
`Structures
`
`
`
`Page 1 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 1 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`
`
`
`The Design and
`
`
`Analysis of
`
`Spatial Data
`
`Structures
`
`
`
`
`Hanan Samet
`
`
`
`
`
`UNIVERSITY OF MARYLAND
`
`
`
`
`
`
`
`
`
`
`
`A
`VV
`
`
`
`
`ADDISON — WESLEY PUBLISHING COMPANY, INC.
`
`
`
`
`
`
`
`Reading, Massachusetts ° Menlo Park, California ° New York
`
`
`
`
`
`
`Don Mills, Ontario 0 Wokingham, England 0 Amsterdam
`
`
`
`
`
`
`
`Bonn 0 Sydney 0 Singapore 0 Tokyo 0 Madrid 0 San Juan
`
`
`
`Page 2 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 2 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`
`
`
`
`
`
`
`
`This book is in the Addison -Wesley Series in Computer Science
`
`
`
`
`
`Michael A. Harrison: Consulting Editor
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Many of the designations used by manufacturers and sellers to distinguish their products are claimed as
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`trademarks. Where those designations appear in this book, and Addison-Wesley was aware of a trademark
`
`
`
`
`
`
`
`
`
`
`
`
`claim, the designations have been printed in initial caps or all caps.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The programs and applications presented in this book have been included for their instructional value.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`They have been tested with care, but are not guaranteed for any particular purpose. The publisher does not
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`offer any warranties or representations, nor does it accept any liabilities with respect to the programs or
`
`applications.
`
`
`
`
`
`Library of Congress Cataloging-in-Publication Data
`
`
`
`Samet, Hanan.
`
`
`
`
`
`
`
`
`
`
`
`The Design and analysis of spatial data structures/by Hanan Samet.
`p.
`cm.
`
`
`
`
`Bibliography: p.
`Includes index.
`
`
`ISBN 0—201—50255—0
`
`
`
`
`
`
`1. Data structures (Computer science)
`I. Title.
`
`
`QA76.9.D35826
`005.7'3 —dc19
`
`
`
`
`1989
`
`
`
`
`
`
`
`2. Computer graphics.
`
`
`
`
`
`89—30382
`CIP
`
`
`
`
`
`
`
`
`Reprinted with corrections January, 1994
`
`
`
`
`
`
`
`
`
`
`Copyright © 1990 by Addison-Wesley Publishing Company, Inc.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmit—
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`prior written permission of the publisher. Printed in the United States of America. Published simultane-
`
`
`
`ously in Canada.
`
`
`456789 1011 12 13 14—MA-97 9695 94
`
`
`
`
`
`
`
`
`
`
`
`Credits:
`
`Thor Bestul created the cover art.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Gyun' Fekete generated Figure 1.16; Daniel DeMenthon, Figures 120, 1.21, and 1.23; Jiang-Hsing
`
`
`
`
`
`
`
`
`
`
`
`
`Chu, Figures 2.48 and 2.52; and Walid Aref, Figures 4.38 through 4.40.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figures 1.1, 4.9, and 4.10 are from H. Samet and R. E. Webber, On encoding boundaries with quad-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`trees, IEEE Transactions on Pattern Analysis and Machine Intelligence 6, 3 (May 1984), 365—369. © 1984
`
`
`
`
`
`
`IEEE. Reprinted by permission of IEEE.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figures 1.2, 1.3, 1.5 through 1.10, 1.12, 1.14, 1.25, 1.26, 2.3, 2.4, 2.18, 2.20, 2.30, 2.32, 2.53, 2.54,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`2.57, 2.58, 3.20, 3.21, 4.1 through 4.5, 4.7, 4.8, 4.11, and 5.2 are from H. Samet, The quadtree and related
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`hierarchical data structures, ACM Computing Surveys 16, 2 (June 1984), 187—260. Reprinted by permission
`of ACM.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figures 1.4 and 5.6 are from H. Samet and R. E. Webber, Hierarchical data structures and algorithms
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`for computer graphics. Part 1. Fundamentals, IEEE Computer Graphics and Applications 8, 3 (May 1988),
`
`
`
`
`
`
`
`
`
`48—68. © 1988 IEEE. Reprinted by permission of IEEE.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 1.30 is from M. Li, W. I. Grosky, and R. Jain, Normalized quadtrees with respect to transla-
`
`
`
`
`
`
`
`
`
`
`
`
`
`tions, Computer Graphics and Image Processing 20, 1 (September 1982), 72—81. Reprinted by permission
`of Academic Press.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`. Figures 2.7 and 2.10 through 2.15 are from H. Samet, Deletion in two-dimensional quad trees, Com-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`munications of the ACM 23, 12 (December 1980), 703—7 10. Reprinted by permission of ACM.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figures 2.26 and 2.27 are from D. T. Lee and C. K. Wong, Worst-case analysis for region and partial
`
`
`
`
`
`
`
`
`
`
`
`
`
`region searches in multidimensional binary search trees and quad trees, Acta Informatica 9. 1 (1977). 23—29-
`
`
`
`
`
`
`
`
`Reprinted by permrssron of Springer Verlag.
`
`
`
`
`Continued on p. 493
`
`
`
`
`
`
`Page 3 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 3 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`
`
`
`
`To my parents, Julius and Lotte
`
`
`
`Page 4 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 4 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`PREFACE
`
`
`
`
`
`
`
`
`
`
`
`
`
`Spatial data consist of points, lines, rectangles, regions, surfaces, and volumes. The
`
`
`
`
`
`
`
`
`
`
`
`representation of such data is becoming increasingly important
`in applications in
`
`
`
`
`
`
`
`
`computer graphics, computer vision, database management systems, computer-aided
`
`
`
`
`
`
`
`
`
`design, solid modeling, robotics, geographic information systems (GIS), image pro-
`
`
`
`
`
`
`
`
`
`
`cessing, computational geometry, pattern recognition, and other areas. Once an appli-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cation has been specified, it is common for the spatial data types to be more precise.
`
`
`
`
`
`
`
`
`
`
`
`
`
`For example, consider a geographic information system (GIS).
`In such a case, line
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`data are differentiated on the basis of whether the lines are isolated (e.g., earthquake
`
`
`
`
`
`
`
`
`
`
`
`
`faults), elements of tree-like structures (e.g., rivers and their tributaries), or elements
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`of networks (e.g., rail and highway systems). Similarly region data are often in the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`form of polygons that are isolated (e.g., lakes), adjacent (e.g., nations), or nested (e.g.,
`
`
`
`
`
`
`contours). Clearly the variations are large.
`
`
`
`
`
`
`
`
`
`
`
`
`Many of the data structures currently used to represent spatial data are hierarchi—
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cal. They are based on the principle of recursive decomposition (similar to divide and
`
`
`
`
`
`
`
`
`
`
`
`
`
`conquer methods [Aho74]). One such data structure is the quadtree (octree in three
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`dimensions). As we shall see, the term quadtree has taken on a generic meaning.
`In
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`this book, it is my goal to show how a number of hierarchical data structures used in
`
`
`
`
`
`
`
`
`
`
`
`
`different domains are related to each other and to quadtrees. My presentation concen-
`
`
`
`
`
`
`
`
`
`
`
`
`trates on these different representations and illustrates how a number of basic opera-
`
`
`
`
`
`
`tions that use them are performed.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Hierarchical data structures are useful because of their ability to focus on the
`
`
`
`
`
`
`
`
`
`
`
`
`
`interesting subsets of the data. This focusing results in an efficient representation and
`
`
`
`
`
`
`
`
`
`
`
`
`in improved execution times. Thus they are particularly convenient for performing set
`
`
`
`
`
`
`
`
`
`
`
`
`
`operations. Many of the operations described can often be performed as efficiently, or
`
`
`
`
`
`
`
`
`
`
`
`more so, with other data structures. Nevertheless hierarchical data structures are
`
`
`
`
`
`
`
`
`
`
`
`
`attractive because of their conceptual clarity and ease of implementation.
`In addition,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the use of some of them provides a spatial index. This is very useful in applications
`
`
`
`involving spatial databases.
`
`Page 5 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 5 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`viii
`
`
`n
`
`PREFACE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`As an example of the type of problems to which the techniques described in this
`
`
`
`
`
`
`
`
`
`
`
`book are applicable, consider a cartographic database consisting of a number of maps
`
`
`
`
`
`
`
`
`
`
`
`
`
`and some typical queries. The database contains a contour map, say at 50-foot eleva-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tion intervals, and a land use map classifying areas according to crop growth. Our
`
`
`
`
`
`
`
`
`
`
`
`
`goal is to determine all regions between 400- and 600-foot elevation levels where
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`wheat is grown. This will require an intersection operation on the tWO maps. Such an
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`analysis could be rather costly, depending on the way the maps are represented. For
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`example, since areas where Corn is grown are of no interest, we wish to spend a
`
`
`
`
`
`
`
`
`
`
`minimal amount of effort searching such regions. Yet traditional region representa-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tions such as the boundary code [Free74] are very local
`in application, making it
`
`
`
`
`
`
`
`
`
`
`
`
`difficult to avoid examining a com-growing area that meets the desired elevation
`
`
`
`
`
`
`
`
`
`
`
`criterion.
`In contrast, hierarchical representations such as the region quadtree are
`
`
`
`
`
`
`
`
`
`
`
`
`
`more global in nature and enable the elimination of larger areas from consideration.
`
`
`
`
`
`
`
`
`
`
`
`
`Another query might be to determine whether two roads intersect within a given
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`area. We could check them point by point; however, a more efficient method of
`
`
`
`
`
`
`
`
`
`
`
`
`
`analysis would be to represent them by a hierarchical sequence of enclosing rectangles
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`and to discover whether in fact the rectangles do overlap. If they do not, the search is
`
`
`
`
`
`
`
`
`
`
`
`
`
`terminated. If an intersection is possible, more work may have to be done, depending
`
`
`
`
`
`
`
`on which method of representation is used.
`
`
`
`
`
`
`
`
`
`
`
`
`A similar query can be constructed for point data—for example, to determine
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`all cities within 50 miles of St. Louis that have a population in excess of 20,000.
`
`
`
`
`
`
`
`
`
`
`
`
`Again we could check each city individually. However, using a representation that
`
`
`
`
`
`
`
`
`
`
`
`
`
`decomposes the United States into square areas having sides of length 100 miles
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`would mean that at most four squares need to be examined. Thus California and its
`
`
`
`
`
`
`adjacent states can be safely ignored.
`
`
`
`
`
`
`
`
`
`
`
`
`Finally, suppose we wish to integrate our queries over a database containing
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`many different types of data (e.g., points, lines, areas). A typical query might be,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`“Find all cities with a population in excess of 5,000 people in wheat-growing regions
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`within 20 miles of the Mississippi River.” In this book we will present a number of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`different ways of representing data so that such queries and other operations can be
`
`
`efficiently processed.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`This book is organized as follows. There is one chapter for each spatial data
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`type, in which I present a number of different data structures. The aim is to gain the
`
`
`
`
`
`
`
`
`
`
`
`
`
`ability to evaluate them and to determine their applicability. Two problems are treated
`
`
`
`
`
`
`
`
`
`
`
`
`
`in great detail:
`the rectangle intersection problem, discussed in the context of the
`
`
`
`
`
`
`
`
`
`
`
`
`representation of collections of small rectangles (Chapter 3), and the point location
`
`
`
`
`
`
`
`
`
`
`
`
`
`problem, discussed in the context of the representation of curvilinear data (Chapter 4).
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A comprehensive treatment of the use of quadtrees and octrees in other applications in
`
`
`
`
`
`
`
`
`
`
`computer graphics, image processing, and geographic information systems (GIS) can
`
`
`
`
`be found in [Same90b].
`
`
`
`
`
`
`
`
`
`
`
`Chapter 1 gives a general introduction to the principle of recursive decomposi-
`
`
`
`
`
`
`
`
`
`
`
`
`tion with a concentration on two-dimensional regions. Key properties, as well as a
`
`
`
`
`historical overview, are presented.
`
`
`
`Page 6 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 6 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`PREFACE
`
`
`II
`
`iX
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter 2 discusses hierarchical representations of multidimensional point data.
`
`
`
`
`
`
`
`
`
`
`
`These data structures are particularly useful in applications in database management
`
`
`
`
`
`
`
`
`
`
`
`systems because they are designed to facilitate responses to search queries.
`
`
`
`
`
`
`
`
`
`
`Chapter 3 examines the hierarchical representation of collections of small rec-
`
`
`
`
`
`
`
`
`
`
`
`tangles. Such data arise in applications in Computational geometry, very large-scale
`
`
`
`
`
`
`
`
`
`integrations (VLSI), cartography, and database management. Examples from these
`
`
`
`
`
`
`
`
`
`
`
`
`fields (e.g., the rectangle intersection problem) are used to illustrate their differences.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Many of the representations are closely related to those used for point data. This
`
`
`
`
`
`
`chapter is an expansion of [Same88a].
`
`
`
`
`
`
`
`
`
`
`Chapter 4 treats the hierarchical representation of curvilinear data. The primary
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`focus is on the representation of polygonal maps. The goal is to be able to Solvethe
`
`
`
`
`
`
`
`
`
`
`point location problem. Quadtree-like solutions are compared with those from Com-
`
`
`
`
`
`
`
`
`
`
`
`
`putational geometry such as the K-structure [Kirk83] and the layered dag [Edel86a].
`
`
`
`
`
`
`
`
`
`
`
`Chapter 5 looks at the representation of three-dimensional region data.
`In this
`
`
`
`
`
`
`
`
`
`
`
`
`
`case, a number of octree variants are examined, as well as constructive solid geometry
`
`
`
`
`
`
`
`
`
`
`(CSG) and the boundary model
`(BRep). Algorithms are discussed for converting
`
`
`
`
`
`
`
`
`
`
`between some of these representations. The representation of surfaces (i.e., 2.5-
`
`
`
`
`
`
`
`
`
`dimensional data) is also briefly discussed in this chapter.
`
`
`
`
`
`
`
`
`
`
`
`
`There are a number of topics for which justice requires a considerably more
`
`
`
`
`
`
`
`
`
`
`
`detailed treatment. However, due to space limitations, I have omitted a detailed dis-
`
`
`
`
`
`
`
`
`
`
`
`
`
`cussion of them and instead refer interested readers to the appropriate literature. For
`
`
`
`
`
`
`
`
`
`
`example, surface representations are discussed briefly with three-dimensional data in
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter 5 (also see Chapter 7 of [Same90b]). The notion of a pyramid is presented
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`only at a cursory level in Chapter 1 so that it can be contrasted with the quadtree.
`In
`
`
`
`
`
`
`
`
`
`
`
`
`particular, the pyramid is a multiresolution representation, whereas the quadtree is a
`
`
`
`
`
`
`
`
`
`
`variable resolution representation. Readers are referred to Tanimoto and Klinger
`
`
`
`
`
`
`
`
`
`
`
`
`
`[Tani80] and the Collection of papers edited by Rosenfeld [Rose83a] for a more
`
`
`
`
`comprehensive exposition on pyramids.
`
`
`
`
`
`
`
`
`
`
`Results from computational geometry, although related to many of the topics
`
`
`
`
`
`
`
`
`
`
`
`
`
`covered in this book, are discussed only in the context of representations for collec-
`
`
`
`
`
`
`
`
`
`
`
`
`
`tions of small rectangles (Chapter 3) and curvilinear data (Chapter 4). For more
`
`
`
`
`
`
`
`
`
`
`
`
`
`details on early work involving Some of these and related topics, interested readers
`
`
`
`
`
`
`
`
`
`
`
`should consult the surveys by Bentley and Friedman [Bent79b], Overmars [Over88a],
`
`
`
`
`
`
`
`
`
`Edelsbrunner [Edel84], Nagy and Wagle [Nagy79], Peuquet [Peuq84], Requicha
`
`
`
`
`
`
`
`
`
`[Requ80], Srihari
`[Srih81],‘ Samet and Rosenfeld [Same80d], Samet
`[Same84b,
`
`
`
`
`
`
`
`
`
`Same88a], Samet and Webber [Same88c, Same88d], and Toussaint [Tous80].
`
`
`
`
`
`
`
`
`
`
`
`
`There are aISO a number of excellent texts containing material related to the
`
`
`
`
`
`
`
`
`
`
`
`
`topics that I cover. Rosenfeld and Kak [Rose82a] should be consulted for an ency-
`
`
`
`
`
`
`
`
`
`
`clopedic treatment of image processing. Mantyla [Mant87] has written a comprehen-
`
`
`
`
`
`
`
`
`
`
`
`sive introduction to solid modeling. Burrough [Burr86] provides a survey of geo-
`
`
`
`
`
`
`
`
`
`
`graphic information systems (GIS). Overmars [Over83] has produced a particularly
`
`
`
`
`
`
`
`
`
`
`
`
`good treatment of multidimensional point data.
`In a similar vein, see Mehlhom’s
`
`
`
`
`
`
`
`
`[Mehl84] unified treatment of multidimensional
`searching and computational
`
`
`
`
`
`
`
`
`
`
`geometry. For thorough introductions to computational geometry, see Preparata and
`
`
`
`
`
`Page 7 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 7 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`PREFACE
`
`
`
`
`ii
`
`xiii
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`K-structure and the layered dag in Section 4.3 are relevant to computational geometry.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Bucket methods such as linear hashing, spiral hashing. grid file. and EXCELL. in Sec-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tion 2.8, and R-trees in Section 3.5.3 are important in the study of database manage-
`
`
`
`
`
`
`
`
`
`
`ment systems. Methods for multidimensional searching that are discussed include k—d
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`trees in Section 2.4, range trees and priority search trees in Section 2.5, and point-
`
`
`
`
`
`
`
`
`
`
`based rectangle representations in Section 3.4. The discussions of the representation
`
`
`
`
`
`
`
`
`
`
`
`of two-dimensional regions in Chapter 1. polygonal representations in Chapter 4, and
`
`
`
`
`
`
`
`
`
`
`
`
`
`use of point methods for focussing the Hough Transform are relevant to image pro-
`
`
`
`
`
`
`
`
`cessing. Finally the rectangle-representation methods and plane-sweep methods of
`
`
`
`
`
`
`
`
`
`Chapter 3 are important in the field of VLSI design.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The natural home for courses that use this book is in a Computer science depart-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ment, but the book Could also be used in a curriculum in geographic information
`
`
`
`
`
`
`
`
`
`
`
`
`
`systems (615). Such a course is offered in geography departments. The emphasis for
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a course in this area would be on the use of quadtree-like methods for representing
`
`
`spatial data.
`
`
`
`
`
`
`
`
`Page 8 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 8 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`x
`
`
`
`
`II
`
`PREFACE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Shamos [Prep85] and Edelsbrunner [Ede187] (also see [Prep83, ORou88]). A broader
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`view of the literature can be found in related bibliographies such as the ongoing col-
`
`
`
`
`
`
`
`
`
`lective effort coordinated by Edelsbrunner [Ede183c, Ede188], and Rosenfeld’s annual
`
`
`
`
`
`
`
`
`
`
`
`collection of references in the journal Computer Vision, Graphics, and Image Pro-
`
`
`
`cessing (e.g., [Rose88]).
`
`
`
`
`
`
`
`
`
`
`
`
`Nevertheless, given the broad and rapidly expanding nature of the field, I am
`
`
`
`
`
`
`
`
`
`
`
`
`bound to have omitted significant concepts and references.
`In addition at times I
`
`
`
`
`
`
`
`
`
`
`
`
`
`devote a disproportionate amount of attention to some concepts at the expense of oth-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ers. This is principally for expository purposes; I feel that it is better to understand
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`some structures well rather than to give readers a quick runthrough of buzzwords. For
`
`
`
`
`
`
`
`
`
`
`
`
`these indiscretions, I beg your pardon and hope you nevertheless bear with me.
`
`
`
`
`
`
`
`
`
`
`
`
`My approach is an algorithmic one. Whenever possible, I have tried to motivate
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`critical steps in the algorithms by a liberal use of examples.
`I feel
`that
`it
`is of
`
`
`
`
`
`
`
`
`
`
`
`
`
`paramount importance for readers to see the ease with which the representations can
`
`
`
`
`
`
`
`
`
`
`
`
`
`be implemented and used.
`In each chapter, except for the introduction (Chapter 1), I
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`give at least one detailed algorithm using pseudo-code so that readers can see how the
`
`
`
`
`
`
`
`
`
`
`
`
`
`ideas can be applied. The pseudo-code is a variant of the ALGOL [Naur60] program-
`
`
`
`
`
`
`
`
`
`
`
`
`ming language that has a data structuring facility incorporating pointers and record
`
`
`
`
`
`
`
`
`
`
`
`
`structures. Recursion is used heavily. This language has similarities to C [Kem78],
`
`
`
`
`
`
`
`
`
`
`
`
`PASCAL [Jens74], SAIL [Reis76], and ALGOL W [Baue68].
`Its basic features are
`
`
`
`
`
`
`
`
`
`
`
`
`
`described in the Appendix. However, the actual code is not crucial to understanding
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the techniques, and it may be skipped on a first reading. The index indicates the page
`
`
`
`
`
`
`
`
`
`numbers where the code for each algorithm is found.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`In many cases I also give an analysis of the space and time requirements of dif-
`
`
`
`
`
`
`
`
`
`
`
`
`
`ferent data structures and algorithms. The analysis is usually of an asymptotic nature
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`and is in terms of big 0 and Q notation [Knut76]. The big 0 notation denotes an
`
`
`
`
`
`
`
`
`
`
`
`
`
`upper bound. For example, if an algorithm takes 0(log2N) time, then its worst-case
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`behavior is never any worse than log2N. The Q notation denotes a lower bound. As
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`an example of its use, consider the problem of sorting N numbers. When we say that
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`sorting is Q(N-log2N) we mean that given any algorithm for sorting, there is some set
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ofN input values for which the algorithm will require at least this much time.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`At times I also describe implementations of some of the data structures for the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`purpose of comparison.
`In such cases counts, such as the number of fields in a record,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`are often given. These numbers are meant only to amplify the discussion. They are
`
`
`
`
`
`
`
`
`
`
`
`
`
`not to be taken literally. as improvements are always possible once a specific applica-
`
`
`
`
`
`tion is analyzed more carefully.
`
`
`
`
`
`
`
`
`
`
`
`Each chapter contains a substantial number of exercises. Many of the exercises
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`develop further the material in the text as a means of testing the reader’s understand-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ing, as well as suggesting future directions. When the exercise or its solution is not
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`my own, I have preceded it with the name of its originator. The exercises have not
`
`
`
`
`
`
`
`
`
`
`
`
`been graded by difficulty. They rarely require any mathematical skills beyond the
`
`
`
`
`
`
`
`
`
`
`
`
`
`undergraduate level for their solution. However, while some of the exercises are quite
`
`
`
`
`
`
`
`
`
`
`
`straightforward, others require some ingenuity. Solutions, or references to papers that
`
`
`
`
`
`
`Page 9 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 9 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`
`PREFACE
`
`
`H
`
`
`Xi
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`contain the Solution, are provided for a substantial number of the exercises that do not
`
`
`
`
`
`
`
`
`
`
`
`
`require programming. Readers are cautioned to try to solve the exercises before tum-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ing to the solutions.
`It is my belief that much can be learned this way (for the student
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`and, even more so, for the author). The motivation for undertaking this task was my
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`wonderful experience on my first encounter with the rich work on data structures by
`
`
`
`Knuth [Knut73a, Knut73b].
`
`
`
`
`
`
`
`
`
`
`
`
`An extensive bibliography is provided. It contains entries for both this book and
`
`
`
`
`
`
`
`
`
`
`
`
`
`the companion text [Same90b]. Not all of the references that appear in the bibliogra-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`phy are cited in the two texts. They are retained for the purpose of giving readers the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ability to access the entire body of literature relevant to the topics discussed in them.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Each reference is annotated with a key word(s) and a list of the numbers of the sec-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tions in which it is cited in either of the texts (including exercises and solutions).
`In
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`addition, a name and credit index is provided that indicates the page numbers in this
`
`
`
`
`
`
`
`
`
`
`
`
`book on which each author’s work is cited or a credit is made.
`
`
`
`
`
`
`ACKNOWLEDGMENTS
`
`
`
`me.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Over the years I have received help from many people, and I am extremely
`
`
`
`
`
`
`
`
`
`
`
`
`
`grateful to them.
`In particular Robert E. Webber, Markku Tamminen, and Michael B.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Dillencourt have generously given me much of their time and have gone over critical
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`parts of the book.
`I have drawn heavily on their knowledge of some of the topics
`
`
`
`
`
`
`
`
`
`
`
`
`
`covered here.
`I have also been extremely fortunate to work with Azriel Rosenfeld
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`over the past ten years. His dedication and scholarship have been a true inspiration to
`
`
`
`
`
`
`I deeply cherish our association.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`I was introduced to the field of spatial data structures by Gary D. Knott who
`
`
`
`
`
`
`
`
`
`
`
`
`
`asked “how to delete in point quadtrees.” Azriel Rosenfeld and Charles R. Dyer pro-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`vided much interaction in the initial phase of my research. Those discussions led to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the discovery of the neighbor-finding principle. It is during that time that many of the
`
`
`
`
`
`
`
`
`
`
`basic conversion algorithms between quadtrees and other image representations were
`
`
`
`
`
`
`
`
`
`
`
`
`
`developed as well.
`I learned much about image processing and computer vision from
`
`
`
`
`
`
`
`
`
`
`
`
`them. Robert E. Webber taught me computer graphics, Markku Tarnminen taught me
`
`
`
`
`
`
`
`
`
`
`
`solid modeling and representations for multiattribute data, and Michael B. Dillencour'
`
`
`
`
`
`taught me about computational geometry.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`During the time that this book was written, my research was supported, in part.
`
`
`
`
`
`
`
`
`
`
`
`by the National Science Foundation,
`the Defense Mapping Agency,
`the Harry
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Diamond Laboratory, and the Bureau of the Census.
`In particular I would like tn
`
`
`
`
`
`
`
`
`
`
`
`
`
`thank Richard Antony, Y. T. Chien, Su-shing Chen, Hank Cook, Phil Emmerrnan, In»:
`
`
`
`
`
`
`
`
`
`
`
`
`Rastatter, Alan Saalfeld, and Larry Tokarcik.
`I am appreciative of their support.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Many people helped me in the process of preparing the book for publication
`
`
`
`
`
`
`
`
`
`
`Acknowledgments are due to Rene McDonald for Coordinating the day-to—day matter:
`
`
`
`
`
`Page 10 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 10 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`Xil
`
`
`
`H
`
`PREFACE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`of getting the book out and copyediting; to Scott Carson, Emery Jou, and Jim Purtilo
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`for TROFF assistance beyond the call of duty; to Marisa Antoy and Sergio Antoy for
`
`
`
`
`
`
`
`
`
`
`
`
`designing and implementing the algorithm forrnatter used to typeset the algorithms; to
`
`
`
`
`
`
`
`
`
`
`
`
`
`Barbara Burnett, Michael B. Dillencourt, and Sandra German for help with the index;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to Jay Weber for setting up the TROFF macrofiles so that I can keep track of symbolic
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`names and thus be able to move text around without worrying about the numbering of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`exercises, sections, and chapters; to Liz Allen for early TROFF help; to Nono Kusuma,
`
`
`
`
`
`
`
`
`
`
`
`
`
`Mark Stanley, and Joan Wright Hamilton for drawing the figures; to Richard Muntz
`
`
`
`
`
`
`
`
`
`
`
`
`
`and Gerald Estrin for providing temporary office space and computer access at UCLA;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to Sandy German, Gwen Nelson, and Janet Salzman for help in initial typing of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`manuscript;
`to S. S. Iyengar, Duane Marble, George Nagy, and Terry Smith who
`
`
`
`
`
`
`
`
`
`
`
`
`
`reviewed the book; and to Peter Gordon, John Remington, and Keith Wollman at
`
`
`
`
`
`
`
`
`
`
`Addison-Wesley Publishing Company for their encouragement and confidence in this
`
`project.
`
`
`
`
`
`
`
`
`
`
`Aside from the individuals named above, I have also benefited from discussions
`
`
`
`
`
`
`
`
`
`
`
`
`
`with many other people over the past years. They have commented on various parts
`
`
`
`
`
`
`
`
`
`
`
`
`
`of the book and include Chuan-Heng Ang, Walid Aref, James Arvo, Harvey H. Atkin-
`
`
`
`
`
`
`
`
`
`
`
`son, Thor Bestul, Sharat Chandran, Chiun-Hong Chien, Jiang-Hsing Chu, Leila De
`
`
`
`
`
`
`
`
`Floriani, Roger Eastman, Herbert Edelsbrunner, Claudio Esperanca, Christos Falout—
`
`
`
`
`
`
`
`
`
`
`
`sos, George (Gyuri) Fekete, Kikuo Fujimura, John Gannon, John Goldak, Erik Hoel,
`
`
`
`
`
`
`
`
`
`
`
`
`Liuqing Huang, Frederik W. Jansen, Ajay Kela, David Kirk, Per Ake Larson, Dani
`
`
`
`
`
`
`
`
`
`
`Lischinski, Don Meagher, David Mount, Randal C. Nelson, Glenn Pearson, Ron
`
`
`
`
`
`
`
`
`
`
`Sacks-Davis, Timos Sellis, Clifford A. Shaffer, Deepak Sherlekar, Li Tong, Brian
`
`
`
`
`
`
`
`
`
`
`
`
`Von Herzen, Peter Widmayer, and David Wise.
`I deeply appreciate their help.
`
`
`
`
`
`
`
`
`
`
`
`
`
`A GUIDE TO THE INSTRUCTOR
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`This book can be used in a second data structures course, one with emphasis on
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the representation of spatial data. The focus is on the use of the principle of divide-
`
`
`
`
`
`
`
`
`
`
`and-conquer for which hierarchical data structures provide a good demonstration.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Throughout the book both worst-case optimal methods and methods that work well in
`
`
`
`
`
`
`
`
`
`
`
`
`practice are emphasized in conformance with my view that the well-rounded computer
`
`
`
`
`
`
`
`
`
`
`
`
`
`scientist should be conversant with both types of algorithms. This material is more
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`than can be covered in one semester; but the instructor can reduce it as necessary. For
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`example, the detailed examples can be skipped or used as a basis of a term project or
`
`
`programming assignments.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The book can also be used to organize a course to be prerequisite to courses in
`
`
`
`
`
`
`
`
`computer graphics and solid modeling, computational geometry, database manage-
`
`
`
`
`
`
`
`
`
`
`ment systems, multidimensional searching, image processing, and VLSI design. The
`
`
`
`
`
`
`
`
`
`
`
`discussions of the representations of two-dimensional regions in Chapter 1, polygonal
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`representations in Chapter 4, and most of Chapter 5 are relevant to computer graphics
`
`
`
`
`
`
`
`
`
`
`
`and solid modeling. The discussions of plane-sweep methods and their associated
`
`
`
`
`
`
`
`
`
`
`
`
`
`data structures such as segment trees, interval trees, and priority search trees in Sec—
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(ions 3.2 and 3.3 and point
`location and associated data structures such as the
`
`Page 11 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`Page 11 of 448
`
`Unified Patents Exhibit 1005 App'x A-N
`
`

`

`CONTENTS
`
`
`
`Preface
`
`
`
`
`vii
`
`
`INTRODUCTION
`
`
`
`Basic Definitions
`
`
`
`
`
`
`1.2 Overview of Quadtrees and Octrees
`
`
`
`
`
`
`
`
`1.3 History of the Use of Quadtrees and Octrees
`
`
`
`
`1.4
`Space Decomposition Methods
`
`
`
`Polygonal Tilings
`1.4.1
`
`
`1.4.2 Nonpolygonal Tilings
`
`
`Space Requirements
`
`1.1
`
`1.5
`
`
`
`
`
`1
`
`
`
`2
`
`
`
`
`
`10
`
`
`
`
`
`
`
`17
`
`26
`
`32
`
`16
`
`
`43
`
`44
`
`46
`
`48
`
`49
`
`54
`
`64
`
`66
`
`68
`
`73
`
`77
`
`8O
`
`80
`
`85
`
`86
`
`92
`
`
`
`
`
`
`
`POINT DATA
`
`
`Introduction
`2.1
`
`
`
`2.2 Nonhierarchical Data S

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket