当前课程知识点:计算几何 > 05. Delaunay Triangulation > F. Euclidean Traveling Salesman Problem > 05-F-03. Approximation
这个算法具体是什么样的呢
这样一个示意图
可以帮助我们
来了解它整个的过程
具体来说
我们首先要构造出
这个点集所对应的那个EMST
也就是那棵最小生成树
接下来我们要基于
这个最小生成树
得到一条初始的环路 环路
怎么得到呢
我们大致要回忆起
原来在DCEL结构中
类似的那种方法
也就是我们要将其中的每一条边
都拆解为两条方向互逆的有向边
我们称之为twin edges
你应该还记得
如果一条向下 另一条就向上
如果一条向左 另一条就向右
每一条都这么拆
拆完了之后
你可以想象得到
就像这个树如果是一个城市的话
而且这个城市的所有的街道
都按照刚才的那种来法
划分成了
左右的两个单行道合成的话
说服一下自己
我确实可以沿着
所有的这些单行道
对整个这个城市
做某种意义上的遍历
最终回到原处
所以得到了一个环路一个tour
问题是这个环路
离我们最终目标还有差异
第一 我们不能确定它是最短的
第二 其实它跟我们
原来说的那个TSP的环路
还是有区别的
因为TSP中的环路
要求经过每一个点
或者形象说每一个城市
一次且一次
可是在这里头呢
我们有可能会经过一个点多次
取决于它的度数
如果它的度数是d的话
那么它会被经过
各自一出一入2d次
比如像这个点是三度
所以它会被进入三次会退出三次
怎么办呢 没关系
我们可以在它的基础上
进一步的做优化
那么从而得到这样的一条环路
这条环路是怎么得到的呢
让我来说明一下
我们可以从某一个特定的点
比如说在全局来说
最左侧的这个点出发
沿着刚才你得到的那一条
初始的环路往前走
如果能够往前走
它就往前走
如果往前走
它就继续一直往前走
直到什么时候呢
直到按照刚才的那个初始回路
也就是这个绿色的这个回路
它试图回到
以前已经访问过一个点的时候
这个时候它干嘛呢
它只要跳过这个点就可以了
并且试图去尝试下一个点
如果有必要
再去尝试下下一个点
所以这样的话
它就会既完成刚才我们所说的
环游所有结点一次的任务
同时又确实能够
最终顺利的回到起点
这样的话
我们就确实得到了一个
不折不扣的tour
这个tour
是非常有用的一个tour
因为它就是我们要证明
我们这里一个算法
这个近似算法得到的
那样一个近似的解
让我来说明一下
这个近似解有多好
首先当然比如说
具体就这个例子而言
我们可以说这个解
显然是很差的
因为你注意到
在这个地方有一个交叉
其实对于欧式的这种
最短路径来说
有一个特性
首先至少不会有这种叉的
这种交叉
这种crossing是致命的
有了它
就说明它肯定不是最短
但是不要紧
因为好歹我们这里说的
只是个近似的
我们不妨来看一下
即便存在这种情况
它差差到哪儿去呢
我们能证明
不超过两倍
那么整个这个过程
是由这个一系列的不等式来界定的
我们来看一下
我们最终所得到的那样一条tour
如果命名为W的话
那么它的总权重会是多少呢
我们说它绝对不会超过
我们刚才所得到的那个
最小生成树的权重的两倍
在我们还没有优化之前
它应该恰好是等于
它的长度的两倍
因为每一条边都被用了两次
那么我们刚才说了
我们还有可能
对它进行优化
所以即便没有优化
也不过如此
接下来很重要的一条是说
我们会发现最小支撑树的总权重
其实是会严格的小于ETS那个环路
也就是那个tour的总周长的
也就是这个不等号
应该是会成立的
为什么呢
我想你已经想到答案了
我们说EMST是一棵树
而且是连接所有顶点的
最短的那棵树
而那个TSP tour
它是一个环路
我们不妨在这个环路上
随便的找一条边
并且把它剪除掉
这样的得到的
一个C形的一个结构
我们也可以称作它是一棵树
不要忘了
它确实也是一棵树
而且是连接了所有的n个点
总共有n-1条边
所构成的一棵树
后者在剪除一条边以后是树
前者也是树
而且前者号称是所有树中
代价最小的
所以这个EMST的总周长
也不会多余
那个剪除了一条边以后的
那棵树的周长
更不用说
再把刚才剪除的那条边
加上去以后的那个环路了
所以正因为这个原因
我们这个不等号才得以成立
所以现在
如果我们将中间的EMST
这个桥梁撤掉
我们就可以证明
这个最终所得到的近似环路
在周长上 在总长上
绝对不会超过最优解的两倍
正如我们刚才所宣称的那样
-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