山东大学 Computational Geometry 2019年 期末考试

Summary of Computational Geometry Course

明天下午 Computational Geometry 期末考试,再次总结下这门课程作为个人的再次复习。课程成绩为最后的期末考试成绩。以下内容包括教材信息以及各章节的内容总结
刚刚考完,附上回忆版试题

Textbook

 《计算几何及应用》 by 汪嘉业
  Temporary Link:[Buy PDF]

Chapters of textbook

  1. Chapter 1 Geometric Preliminaries

    a) Line segment
    在d维的欧几里得空间中,点表示为d元组(x1,x2,…xd).在Ed中给定两个不同的点q1和q2,其线性组合
           a ∗ q a*q aq1+ ( 1 − a ) ∗ q (1-a)*q (1a)q2     a ∈ R a∈R aR
    代表Ed的一条直线
    如果 0 ≤ a ≤ 1 0≤a≤1 0a1,则上式是两点的凸组合,也代表连接两点的线段

    b)** Convex set**
    一个在 Ed 中的域 D 为凸集,如果对于 D 中任意两点 q q q1 q q q2 ,线段 q q q1 q q q2 都全部包含在D中。
    c) Convex hull
    一个在 Ed 中的点集 S 的凸包为在 Ed 中包含S的最小图域的边界
    d) Polygon
    一个在E2中的多边形定义为一个有限的段集,其中每个段的端点都刚好连接两条边并且任何边的子集不含有相同属性。这些段为多边形的边,他们的端点成为多边形的顶点。一个n条边的多边形叫做n边形
    e) Simple Polygon
    如果一个多边形中没有一对不连续却共享一个点的边,则多边形是简单的。简单多边形把平面划分为两个不相交的区域,由多边形分割的内部(有界)和外部(无界)
    f) Planer graph
    如果一个图 G = ( V , E ) ( 点 集 V , 边 集 E ) G=(V,E) (点集 V ,边集 E ) G=(V,E)(V,E)可以不交叉的嵌入到一个平面上,则 G G G 为平面图.一个平面图决定了一个平面的划分,叫做平面细分或平面图。令 v , e , f v,e,f v,e,f分别代表点,边,面,这些变量由经典欧拉公式相关联
         v − e + f = 2 v-e+f=2 ve+f=2
    g) Triangulation
    如果一个平面划分的有界区域都是三角形,则它为三角剖分。
    一个有限点集S的三角剖分是一个平面图 G = ( V , E ) G=(V,E) G=(V,E) 其中 V = S V=S V=S.(这相当于说,S的三角p剖分是通过不相交的线段连接S的点来获得的,因此S凸包内部的每个区域都是三角形)
    h) Star-shaped Polygon
    如果多边形P中存在一个内部点z,使得P中所有的点p与z的线段zp都全部包含在p中,则P为 星形多边形(凸多边形也是星形多边形)
    i) Kernel of Star-shaped Polygon&O(nlogn)
    星形多边形的内部点z为P的核

    O(nlogn)算法

    1. 核是O(n)个三角形的交
    2. O(n+m)计算n边凸包和m边凸包的交
    3. O(n)三角合并成O(n/2)三角对。每对求交。再合并为O(n/4)三角对,每对求交。继续知道得到一个凸多边形
    4. 这个过程重复O(logn)。一共花费O(nlogn)

    j) Voronoi region
    山东大学 Computational Geometry 2019年 期末考试_第1张图片
    山东大学 Computational Geometry 2019年 期末考试_第2张图片
    k) Voronoi diagram
    Voronoi图为所有站点的Voronoi区域的并集
    l) Delaunay triangulation
    Voronoi图的对偶图(连接Voronoi边的关联站点)
    m) AVL tree
    一个二叉树是AVL树。如果T是一个非空二叉树,TL和TR是任意非叶节点的左右子树。如果 1) TL和TR 是二叉树, 2) |hL-hR|≤1,其中 hL 和 hR 是 TL和TR 的深度。
    AVL树的添删操作为O(logn)

  2. Chapter 2 Geometry Searching

    a) Describing definition of Range searching-count and algorithm which query time is O(logn), process time is O(n2) and space complexity is O(n2) ,then prove it
    平面上n个点划分为n2个正交矩阵,每个矩阵里存放右上角的点p左下方的点的个数 Q ( p ) Q(p) Q(p),对于查询矩阵 a b c d abcd abcd a b c d abcd abcd中包含点的个数
         N ( a , b , c , d ) = Q ( a ) − Q ( b ) − Q ( d ) + Q ( c ) N(a,b,c,d)=Q(a)-Q(b)-Q(d)+Q(c) N(a,b,c,d)=Q(a)Q(b)Q(d)+Q(c)
    需要实现保存划分后的正交矩阵,空间复杂度为O(n2)
    对于每个正交矩阵进行统计点的个数操作,预处理时间复杂度为O(n2)
    查询需要查找查询矩阵的位置,通过二分法在正交矩阵中查找O(logn)
    b) Describing definition of Determining the point inside or outside the convex polygon and algorithm which query time is O(logn), process time is O(n) and space complexity is O(n) ,then prove it
    在多边形中找一点o,向多边形各定点pi作线段opi,分为n个楔形(倒三角形),按照opi与ox轴的有向夹角排序。
    预处理:对于多边形n个顶点连线,并根据夹角排序,共O(n)时间复杂度
    需要保存n条有序的边opi,空间复杂度为O(n)
    对于查询点z,根据oz与ox轴的夹角在n条线段opi中二分查找,找到包含其的pipi+1,然后判断z在 pipi+1哪侧,时间复杂度为O(logn)
    c) Describing definition of Searching point in planer graph and algorithm which query time is O(logn), process time is O(n2) and space complexity is O(n2) ,then prove it
    对于每个点画一条平行于x轴的直线,并按照y坐标值进行排序,得到数组A。对于每个Ai保存划分出的梯形并排序。
    由于y坐标上有n个点,每个点的直线划分可能有O(n)个梯形,所以需要O(n2)空间复杂度
    对于从下到上的每一层Ai,只对最下面一层进行排序,在处理上一层时,在下层的基础上进行梯形在顶点处的修改,每层需要O(n)+O(k),所以预处理时间复杂度为O(n2)
    查询时,先通过二分查找在A中找到Ai,再通过二分查找再Ai中找到相应位置
    b) How to construct a Kd-tree, How to search a Kd-tree for Range searching problem
    将点集P分别按照x和y排序,得到两个序列p1x和p1y,对于第一个队列用O(1)找到x方向的中间点p1.
    对于树的第二层,把序列px和py根据x1和x>1,用O(n)划分为新的四个序列.
    以此类推,每层需要O(n),一共O(logn)层,预处理时间复杂度为O(nlogn)。一共存储n个点,空间复杂度为O(n)。时间复杂度为O(m+√n),其中m为查询矩阵包含的点数

  3. Chapter 3 Hulls in Two Dimensions

    a) Gift Wrapping Algorithm

    Algorithm:山东大学 Computational Geometry 2019年 期末考试_第3张图片
    Time Complexity:山东大学 Computational Geometry 2019年 期末考试_第4张图片
    b) QuickHull

    Algorithm:山东大学 Computational Geometry 2019年 期末考试_第5张图片
    Time Complexity:
    山东大学 Computational Geometry 2019年 期末考试_第6张图片
    山东大学 Computational Geometry 2019年 期末考试_第7张图片
    c) Incremental Algorithm

    Algorithm:山东大学 Computational Geometry 2019年 期末考试_第8张图片
    Time Complexity:
    山东大学 Computational Geometry 2019年 期末考试_第9张图片
    d) Graham’s Algorithm
    Algorithm:
    山东大学 Computational Geometry 2019年 期末考试_第10张图片
    Time Complexity:山东大学 Computational Geometry 2019年 期末考试_第11张图片
    e) Divide and Conquer Algorithm
    Algorithm:山东大学 Computational Geometry 2019年 期末考试_第12张图片
    Time Complexity:
    山东大学 Computational Geometry 2019年 期末考试_第13张图片

  4. Chapter 4 Convex Hull in Three Dimensions
    a) Polyhedon.
    多面体的一个空间区域,其边界由有限个平面多边形组成。

    1. 对于任意两个面,他们要么不相交,要么交于一个点,要么交于两个点及其连线
    2. 每个点的邻域在拓扑上是一个开的圆盘(open disk)
    3. 多面体的表面都是连通的

    b) Prove that there are only five kinds of regular polyhedrons.
    山东大学 Computational Geometry 2019年 期末考试_第14张图片
    c) Gift Wrapping Algorithm
    Algorithm:
    山东大学 Computational Geometry 2019年 期末考试_第15张图片
    Time Complexity:
    山东大学 Computational Geometry 2019年 期末考试_第16张图片
    d) Divide and Conquer Algorithm

    Algorithm & Time Complexity 山东大学 Computational Geometry 2019年 期末考试_第17张图片

  5. Chapter 5 Voronoi Diagrams
    a) Describe Voronoi图的增量算法
    山东大学 Computational Geometry 2019年 期末考试_第18张图片
    山东大学 Computational Geometry 2019年 期末考试_第19张图片
    b) Describe Divide and Conquer Algorithm of Voronoi diagram
    山东大学 Computational Geometry 2019年 期末考试_第20张图片
    c) Describe and prove Voronoi 图和Delaunay triangulation 的性质(Page27,Page38)
    山东大学 Computational Geometry 2019年 期末考试_第21张图片
    证明一:
    半平面法生成Voronoi图时,每次平面划分都不会生成非凸包
    证明二:
    山东大学 Computational Geometry 2019年 期末考试_第22张图片
    山东大学 Computational Geometry 2019年 期末考试_第23张图片
    山东大学 Computational Geometry 2019年 期末考试_第24张图片

    d) **Delaunay triangulation 的边和空圆的关系(证明Theorem 5.1, Theorem 5.2, Theorem 5.3) **
    山东大学 Computational Geometry 2019年 期末考试_第25张图片
    山东大学 Computational Geometry 2019年 期末考试_第26张图片
    山东大学 Computational Geometry 2019年 期末考试_第27张图片

在这里插入图片描述
山东大学 Computational Geometry 2019年 期末考试_第28张图片
在这里插入图片描述
山东大学 Computational Geometry 2019年 期末考试_第29张图片
e) Prove Delaunay triangulation 是一个三角剖分和平面图
三角剖分见d
山东大学 Computational Geometry 2019年 期末考试_第30张图片
f) If two adjacent triangles are not Delauney triangles. After an “edge flip”, the smallest angle of the six angles of the new triangles is greater than the one of the original triangles. (Lemma 5.2 )
在这里插入图片描述
山东大学 Computational Geometry 2019年 期末考试_第31张图片山东大学 Computational Geometry 2019年 期末考试_第32张图片
g) Describe “Legal Triangulation(T)” algorithm, prove its convergence and Theorem 5.4.
山东大学 Computational Geometry 2019年 期末考试_第33张图片
h) 何谓CVT? 生成CVT的算法
山东大学 Computational Geometry 2019年 期末考试_第34张图片
山东大学 Computational Geometry 2019年 期末考试_第35张图片
山东大学 Computational Geometry 2019年 期末考试_第36张图片
i) 用Voronoi图解决最近点搜索和最大空圆搜索算法及复杂性分析。
最近点搜索山东大学 Computational Geometry 2019年 期末考试_第37张图片
最大空圆
山东大学 Computational Geometry 2019年 期末考试_第38张图片
山东大学 Computational Geometry 2019年 期末考试_第39张图片
山东大学 Computational Geometry 2019年 期末考试_第40张图片

  1. Chapter 6 Triangulation and Visibility
    a) Lemma 6.1, Lemma 6.2, Lemma 6.3, Theorem 6.1
    山东大学 Computational Geometry 2019年 期末考试_第41张图片
    在这里插入图片描述
    山东大学 Computational Geometry 2019年 期末考试_第42张图片
    山东大学 Computational Geometry 2019年 期末考试_第43张图片
    山东大学 Computational Geometry 2019年 期末考试_第44张图片
    b) Triangulation by 单调多边形算法, 算法的时间复杂性分析
    山东大学 Computational Geometry 2019年 期末考试_第45张图片
    山东大学 Computational Geometry 2019年 期末考试_第46张图片
    c) Art gallery problem要解决的是什么问题?结论是什么? 证明该结论?
    山东大学 Computational Geometry 2019年 期末考试_第47张图片
    在这里插入图片描述
    山东大学 Computational Geometry 2019年 期末考试_第48张图片
    山东大学 Computational Geometry 2019年 期末考试_第49张图片
  2. Chapter 7 Polygon Intersection
    a) 两个凸多边形求交线性时间复杂性算法及时间复杂性证明
    山东大学 Computational Geometry 2019年 期末考试_第50张图片
    b) 一直线和一凸多边形求交的 O(logn) 算法, 时间复杂性分析
    山东大学 Computational Geometry 2019年 期末考试_第51张图片山东大学 Computational Geometry 2019年 期末考试_第52张图片
    c) n 线段求交 O((n+k)*log(n+k)) 算法, 时间复杂性分析
    山东大学 Computational Geometry 2019年 期末考试_第53张图片
    山东大学 Computational Geometry 2019年 期末考试_第54张图片
  3. Chapter 8 Probability Algorithms for Minimum Surrounding Circle of Planar Point Set
    a) Probability Algorithms for Minimum Surrounding Circle of Planar Point Set
    山东大学 Computational Geometry 2019年 期末考试_第55张图片
    山东大学 Computational Geometry 2019年 期末考试_第56张图片
    山东大学 Computational Geometry 2019年 期末考试_第57张图片
    山东大学 Computational Geometry 2019年 期末考试_第58张图片
  4. Chapter 9 Motion Planning
    a) 点机器人及圆机器人的自由路径计算.
    山东大学 Computational Geometry 2019年 期末考试_第59张图片
    山东大学 Computational Geometry 2019年 期末考试_第60张图片
    山东大学 Computational Geometry 2019年 期末考试_第61张图片
    在这里插入图片描述
    圆机器人的自由路径:
    山东大学 Computational Geometry 2019年 期末考试_第62张图片
    山东大学 Computational Geometry 2019年 期末考试_第63张图片

Exercise

  1. Prove that the intersection of convex domains is a convex domain.(Chapter 1)
    反证,若凸域A、B的交C=A∩B不是凸域,则C中存在线段ab有一部分不存在于C,即A中存在线段ab有一部分不存在于A,即A不是凸域,矛盾。

  2. For a planar graph we have the addition property that each vertex has degree>=3, and each plane has greater or equal to three edges, prove the following inequalities (Chapter 1)
    在这里插入图片描述
    式1,4显然成立+欧拉公式

  3. Eular 公式V-E+F=2 对一个连通平面图是对的,证明如果一平面图中有B个不连通的分枝,证明V-E+F=1+B成立。
    (Chapter 1)
    添加B-1条边连通B个不连通分支,使其变成连通平面图,对于新图E‘=E+B-1
    V-E’+F=2 所以V-E+F=1+B

  4. Prove that the preprocessing of the range searching-count problem can be completed in O(N2) .
    (Chapter 2)
    从下而上进行O(n)次操作,除了最下面一层进行排序O(logn),每次往上都根据下一层的排序,对于端点处进行梯形的添加或修改,每层需要O(n),总共需要O(N2)的时间复杂度

  5. 用Quickhull algorithm 算法计算点集S={Pi=(xi,yi)}的凸包, 最坏情况时间复杂性可达O(n3), 试给出一个最坏情况的点集S={Pi=(xi,yi)}。写出xi和yi的数学表达式。(Chapter 3)
    x1

  6. For incremental algorithm of finding the convex hull of a set of points, if the points are presorted by their x coordinate, convex hull can be found in time. (Chapter 3)
    上面走一趟(叉乘),下面走一趟(叉乘),两次O(n).

  7. For given n points on a plane, different triangulations can be constructed, prove that the numbers of triangles of all the triangulations created are same. (Chapter 5)
    因为凸包是固定的,那么对于凸包以及内部点,求Delaunay三角形。由于任意三角剖分可以通过局部翻转得到Delaunay三角形,反之亦然。而局部翻转并不会改变三角形数量。

试题(回忆版)

to be continued …

你可能感兴趣的:(Course,Algorithm)