当前课程知识点:计算几何 > 06. Point Location > G. Kirkpatrick Structure > 06-G-11. DAG
接下来
我们就来从总体上
对Kirkpatrick这个算法
它的过程
它的结果以及构造出来的
那个structure的一些性质
来做一个分析和把握
我们所说的Kirkpatrick structure
从逻辑上看
其实就是这么样一个层次化的
一个结构
在这里
每一个点
其实代表的都是一个三角剖分中的三角形
比如在这里
最初的也是最密集的
那样一个三角剖分
是由1到15
总共15个三角形构成的
我们整个的这个构造过程
实际上是自底而上完成的
按照我们刚才所说的
我们要去抽析
不断不断的
最后构成
最上边
也就是由唯一的
原来那个bounding triangle
所构成的一个最粗糙的三角剖分
那么纵观这样的一个结构
我们可以发现
其中的每一个节点
的确有可能会有多个孩子
有的是在
紧接着下一层
有的会在再下一层
有的甚至可能会在更下的一层
没有关系
我们刚才讲过
因为我们选取的方法非常得当
所以能够保证每一个节点
向下的这种粗度
是有一个上线的
具体来说不会超过8
另外
反过来我们也会发现
每一个节点
向上有可能不止一个父亲
比如20
有可能既是26的孩子
也可能是27的孩子
有两个父亲
如果你在观察一下的话
发现这种现象
实际上非常的普遍
所以
严格的说
我们这样的一个结构
并不是一棵树
而是一个DAG
所谓的directed acyclic graph
有向无环图
没有关系
请说服一下自己
即便是这样一个有向无环图
我们依然可以利用它
来做类似于树的
那样的搜索
也就是说
在任何一个位置上
我们都可以根据
当前查找的条件
找到正确的下行的方向
而且这样的一个搜索
必然是迟早会终止
在最后最底层
那样一个最精细的subdivision上
当然
如果更严谨的话
我们不仅要证明这种查找
是或早或晚必然会终止的
而且应该
更准确的要估计出
在终止之前
我们总共花费了多少时间
刚才我们讲过
每一步分杈是常数的
所以从同一层
到下一层所需要的时间
总是常数
也就是说
所有的时间消耗
主要取决于我们这个结构
从顶到底
累计有多少层
那么现在
您应该终于能够理解
我们刚才为什么要求
在构造的时候
当我们从任何一层上升
到上一层的时候
为了做粗糙化
我们所需要选取
并且删除的点
要足够的多
至少要是原来的一个
常数的比例
比如说1/5
1/100
都可以
为什么呢
因为这样的话
我们由底到上一直至顶层
各层的顶点数
它的上界可以构成一个几何奇数
当然
是一个逐层递减的一个几何奇数
几何奇数是什么意思呢
不要忘了
在计算机科学中
几何奇数是一个
非常非常好的技术
因为
既然它是几何奇数
如果从最初的规模开始
要按照这个奇数最终衰减到一个常数
我们所需要的步数
会足够的少
具体少到多少
原来这个规模
倒过来看是一个指数
所以反过来这个层数
也必定是一个对数
所以渐进的来说
如果原先的规模是n的话
这个structure的规模
它的高度
必然不会超过O(logn)
然而需要强调的是
这样的一个结论
只具有理论的意义
在实际中
如果你要对它的性能进行分析的话
还需要格外的小心一些
原因在于
我们这里采用的那个比例
是1/18
或者甚至是1/27
我们估且使用Kirkpatrick
所建议的那个1/18
也就是说
相对于前一层
再接下来这一层
至少要减少
1/18的点
那么剩下来的呢
有可能会还多达17/18
所以这样一个递减的比率
实际上是17/18
这个数的倒数
也就是17/18
其实才是这个对数的
真正的底数
你可以回去估算一下
按照这样的一个推算
在这个O(logn)前面
所隐藏着那个所谓的常系数
有多大
我可以告诉你的是说
在实际的应用中
这个常系数其实并不是
可以轻易的
就忽略掉的
当然
无论如何
我们至少从理论上证明了
这个层次
是渐进
O(logn)层的
所以相应的查找时间
也就可以渐进的控制在
O(logn)的范围之内
当然采用这种几何奇数的
另一个好处
就是
这样的一个结构
从空间复杂度的角度来看
也可以控制的非常好
你能看出其中的原因吗
没错
如果你还记得邓老师所讲的数据结构
你就会知道
这个几何奇数的累计的总和
其实从渐进的角度来看
只取决于它的最大的那一项
也就是底层
换句话说
也就是最原始的
输入的那个subdivision
它有多大
比如是n
那么整体所消耗的空间
也自然就可以控制在O(n)的范围之内
这个O(n)既包括了
本一层上的三角形的数目
也包括了连接于这些三角形之间的
这些边的数目
合计不超过线性
-Before we start
--html
-Evaluation
--html
-Online Judge
--html
-Lecture notes
--html
-Discussion
--html
-A. History of This Course
--00-A. History of This Course
-B. What's Computational Geometry
--00-B. What's Computational Geometry
-B. What's Computational Geometry--作业
-C. How to Learn CG Better
--00-C. How to Learn CG Better
-C. How to Learn CG Better--作业
-D. Why English
-A. Convexity
-A. Convexity--作业
-B. Extreme Points
-B. Extreme Points--作业
-C. Extreme Edges
-C. Extreme Edges--作业
-D. Incremental Construction
--01-D-01. Decrease and Conquer
--01-D-02. In-Convex-Polygon Test
--01-D-03. Why Not Binary Search
-D. Incremental Construction--作业
-E. Jarvis March
--01-E-06. Lowest-Then-Leftmost
-E. Jarvis March--作业
-F. Lower Bound
--01-F-02. CAO Chong's Methodology
-F. Lower Bound--作业
-G. Graham Scan: Algorithm
-G. Graham Scan: Algorithm--作业
-H. Graham Scan: Example
-H. Graham Scan: Example--作业
-I. Graham Scan: Correctness
-I. Graham Scan: Correctness--作业
-J. Graham Scan: Analysis
-J. Graham Scan: Analysis--作业
-K. Divide-And-Conquer (1)
-K. Divide-And-Conquer (1)--作业
-L. Divide-And-Conquer (2)
--01-L-03. Topmost + Bottommost ?
--01-L-07. More Considerations
-L. Divide-And-Conquer (2)--作业
-M. Wrap-Up
-0. Introduction
-0. Introduction--作业
-A. Preliminary
-A. Preliminary--作业
-B. Interval Intersection Detection
-B. Interval Intersection Detection--作业
-C. Segment Intersection Reporting
-C. Segment Intersection Reporting--作业
-D. BO Algorithm: Strategy
--02-D-01. Proximity & Separability
--02-D-02. Comparability & Ordering
-D. BO Algorithm: Strategy--作业
-E. BO Algorithm: Implementation
--02-E-03. Events & Operations
-E. BO Algorithm: Implementation--作业
-F. BO Algorithm: Analysis
--02-F-04. Complexity of Event Queue
--02-F-05. Complexity of Status Structure
-F. BO Algorithm: Analysis--作业
-G. Convex Polygon Intersection Detection
--02-G-01. Problem Specification
--02-G-02. Monotone Partitioning
--02-G-04. Decrease-And-Conquer
-G. Convex Polygon Intersection Detection--作业
-H. Edge Chasing
--02-H-01. Eliminating Sickles
-H. Edge Chasing--作业
-I. Plane Sweeping
-I. Plane Sweeping--作业
-J. Halfplane Intersection Construction
-J. Halfplane Intersection Construction--作业
-0. Methodology
-0. Methodology--作业
-A. Art Gallery Problem
--03-A-02. Lower & Upper Bounds
--03-A-04. Approximation & Classification
-A. Art Gallery Problem--作业
-B. Art Gallery Theorem
--03-B-01. Necessity of floor(n/3)
--03-B-02. Sufficiency by Fan Decomposition
-B. Art Gallery Theorem--作业
-C. Fisk's Proof
--03-C-04. Pigeon-Hole Principle
-C. Fisk's Proof--作业
-D. Orthogonal Polygons
--03-D-01. Necessity of floor(n/4)
--03-D-02. Sufficiency by Convex Quadrilateralization
-D. Orthogonal Polygons--作业
-E. Triangulation
-E. Triangulation--作业
-F. Triangulating Monotone Polygons
--03-F-02. Monotonicity Testing
--03-F-04. Stack-Chain Consistency
-F. Triangulating Monotone Polygons--作业
-G. Monotone Decomposition
-G. Monotone Decomposition--作业
-I. Tetrahedralization
--03-I-01. Polyhedron Decomposition
--03-I-02. Schonhardt's Polyhedron
-I. Tetrahedralization--作业
-A. Introduction
--04-A-02. Dining Halls on Campus
--04-A-03. More Analogies & Applications
-A. Introduction--作业
-B. Terminologies
--04-B-02. Intersecting Halfspaces
--04-B-04. Planar Voronoi Diagram
-B. Terminologies--作业
-C. Properties
--04-C-03. Nearest = Concyclic
--04-C-04. Number of Nearest Sites = Degree
-C. Properties--作业
-D. Complexity
-D. Complexity--作业
-E. Representation
-E. Representation--作业
-F. DCEL
-F. DCEL--作业
-G. Hardness
--04-G-03. Voronoi Diagram In General Position
-G. Hardness--作业
-H. Sorted Sets
--04-H-01. Convex Hull Made Easier
--04-H-02. Convex Hull As A Combinatorial Structure
--04-H-03. Voronoi Diagram As A Geometric Structure
-H. Sorted Sets--作业
-I. VD_sorted
--04-I-06. Sorting Not Made Easier
-I. VD_sorted--作业
-J. Naive Construction
-J. Naive Construction--作业
-K. Incremental Construction
-K. Incremental Construction--作业
-L. Divide-And-Conquer
--04-L-09. Intersecting with Cells
-L. Divide-And-Conquer--作业
-M. Plane-Sweep
--04-M-09. Circle Event: What, When & Where
-M. Plane-Sweep--作业
-A. Point Set Triangulation
-A. Point Set Triangulation--作业
-B. Delaunay Triangulation
-B. Delaunay Triangulation--作业
-C. Properties
-C. Properties--作业
-D. Proximity Graph
--05-D-02. Relative Neighborhood Graph
-D. Proximity Graph--作业
-E. Euclidean Minimum Spanning Tree
-E. Euclidean Minimum Spanning Tree--作业
-F. Euclidean Traveling Salesman Problem
-G. Minimum Weighted Triangulation
-G. Minimum Weighted Triangulation--作业
-H. Construction
--05-H-03. Maximizing The Minimum Angle
--05-H-04. Evolution By Edge Flipping
-H. Construction--作业
-I. RIC With Example
-I. RIC With Example--作业
-J. Randomized Incremental Construction
--05-J-01. Recursive Implementation
--05-J-02. Iterative Implementation
-J. Randomized Incremental Construction--作业
-K. RIC Analysis
--05-K-04. Types Of Edge Change
--05-K-05. Number Of Edge Changes
--05-K-07. Number Of Rebucketings
--05-K-08. Probability For Rebucketing
--05-K-10. Further Consideration
-0. Online/Offline Algorithms
--06-0. Online/Offline Algorithms
-0. Online/Offline Algorithms--作业
-A. Introduction
--06-A-03. Assumptions For Clarity
--06-A-05. Performance Measurements
-A. Introduction--作业
-B. Slab Method
--06-B-02. Ordering Trapezoids
-B. Slab Method--作业
-C. Persistence
--06-C-01. Ephemeral Structure
--06-C-02. Persistent Structure
-C. Persistence--作业
-D. Path Copying
--06-D-03. Storage Optimization
-D. Path Copying--作业
-E. Node Copying
-E. Node Copying--作业
-F. Limited Node Copying
-G. Kirkpatrick Structure
--06-G-01. Optimal And Simpler
--06-G-06. The More The Better
--06-G-07. The Fewer The Better
--06-G-09. Existence Of Independent Subset
--06-G-10. Construction Of Independent Subset
-G. Kirkpatrick Structure--作业
-H. Trapezoidal Map
--06-H-03. Properties & Complexity
--06-H-04. Search Structure: Example
--06-H-05. Search Structure: Nodes
--06-H-06. Search Structure: Performance
-H. Trapezoidal Map--作业
-I. Constructing Trapezoidal Map
--06-I-04. Case 1: Two Endpoints
--06-I-05. Case 2: One Endpoint
--06-I-06. Case 3: No Endpoints
-J. Performance Of Trapezoidal Map
--06-J-03. Number Of Ray Trimmed
--06-J-04. Number Of Trapezoidals Created (1)
--06-J-05. Number Of Trapezoidals Created (2)
--06-J-06. Time For Point Location
--06-J-07. Size Of Search Structure
--06-J-08. Fixed Query Point + Randomly Created Maps
--06-J-10. Probability Of Enclosing Trapezoid Changed
-A. Range Query
--07-A-01. 1-Dimensional Range Query
-A. Range Query--作业
-B. BBST
--07-B-02. Lowest Common Ancestor
-B. BBST--作业
-C. kd-Tree: Structure
-C. kd-Tree: Structure--作业
-D. kd-Tree: Algorithm
-D. kd-Tree: Algorithm--作业
-E. kd-Tree: Performance
--07-E-01. Preprocessing Time + Storage
-E. kd-Tree: Performance--作业
-F. Range Tree: Structure
--07-F-03. x-Query * y-Queries
-F. Range Tree: Structure--作业
-G. Range Tree: Query
-G. Range Tree: Query--作业
-H. Range Tree: Performance
-H. Range Tree: Performance--作业
-I. Range Tree: Optimization
--07-I-04. Fractional Cascading
-A. Orthogonal Windowing Query
-A. Orthogonal Windowing Query--作业
-B. Stabbing Query
-C. Interval Tree: Construction
-C. Interval Tree: Construction--作业
-D. Interval Tree: Query
-D. Interval Tree: Query--作业
-E. Stabbing With A Segment
--08-E-03. Query Algorithm (1)
--08-E-04. Query Algorithm (2)
-F. Grounded Range Query
--08-F-03. 1D-GRQ Using Range Tree
--08-F-04. 1D-GRQ By Linear Scan
-G. 1D-GRQ Using Heap
-G. 1D-GRQ Using Heap--作业
-H. Priority Search Tree
--08-H-03. Sibling Partitioning
-H. Priority Search Tree--作业
-I. 2D-GRQ Using PST
-I. 2D-GRQ Using PST--作业
-J. Segment Tree
--08-J-01. General Windowing Query
--08-J-02. Elementary Interval
--08-J-06. Solving Stabbing Query
--08-J-11. Constructing A Segment Tree
--08-J-12. Inserting A Segment (1)
--08-J-13. Inserting A Segment (2)
--08-J-14. Inserting A Segment (3)
-K. Vertical Segment Stabbing Query