Computational Geometry 202-2-5121
Fall 2017

Prerequisite: Algorithms


Announcements:


Instructor:

Matya Katz  ( matya@cs.bgu.ac.il ) 

Office hours: Sunday 12:00-14:00, Alon building (37), room 212, Tel: (08) 6461628

 

Teaching Assistant:

          Omrit Filtser

 

Class Time:

Wednesday 12-14 (building 34, room 3)

Thursday 10-12 (building 90, room 134)


Course Description:

This is an introductory course to computational geometry and its applications. We will present data structures, algorithms and general techniques for solving fundamental geometric problems, such as convex hull computation, line segment intersection, orthogonal range searching, construction of Voronoi diagram and Delaunay triangulation, polygon triangulation, and linear programming. We will also present several geometric (optimization) algorithms (both exact and approximate) for problems in robotics, computer graphics, GIS (geographic information systems), communication networks, facility location, and VLSI systems design.
 


Bibliography:

The main textbook of the course is

[dBCvKO] Computational Geometry: Algorithms and Applications (3rd edition),
M. de Berg, O. Cheong, M. van Kreveld and M. Overmars, Springer-Verlag, 2008.
 

Additional textbooks

[BY] Algorithmic Geometry, J-D Boissonnat and M. Yvinec, Cambridge University Press, 1998.

 

[DO] Discrete and Computational Geometry, S. Devadoss and J. O’Rourke, Princeton University Press, 2011.

[E] Algorithms in Combinatorial Geometry, H. Edelsbrunner, Springer-Verlag, 1987.

[M] Computational Geometry: An Introduction Through Randomized Algorithms, K. Mulmuley, Prentice Hall, 1994.

[O] Computational Geometry in C (2nd edition), J. O'Rourke, Cambridge University Press, 1998.

[PS] Computational Geometry: An Introduction (2nd edition), F. Preparata and M. Shamos, Springer-Verlag, 1988.


Assignments, Exam and Grades:

The final grade will be determined by 3-5 homework assignments (4% each) and a final exam.

 

Some of the exercises in the HW assignments are taken from [dBCvKO].

 

Assignment no. 1 (due Nov. 29, 2017)

Assignment no. 2 (due Dec. 18, 2017)

Assignment no. 3 (due Jan. 10, 2018)

Assignment no. 4 (due Jan. 18, 2018)

 

 

 

Some old exams: exam 2005 A; exam 2005 B; exam 2007 A; exam 2007 B; exam 2009 A; exam 2009 B


Topics:

The following list of topics is tentative.

The convex hull of a set of points in the plane (applications: computing the diameter and width of a point set).

An output sensitive algorithm for computing the intersection points of a set of line segments; the plane sweep technique.

A representation for planar maps (based on doubly-connected edge lists).

Computing the overlay of two planar maps; Boolean operations on two polygons (union, intersection, and difference).

The art gallery theorem; introduction to polygon triangulation.

An O(n log n) polygon triangulation algorithm (partitioning a polygon into y-monotone pieces; triangulating a y-monotone polygon).

Orthogonal range searching.  

Computing the intersection of n half planes in O(n log n) time.

Linear programming - introduction; A randomized incremental algorithm for linear programming in the plane.

Planar point location, vertical decomposition / trapezoidal map, a randomized incremental algorithm.

Nearest site queries, nearest site Voronoi diagram.

Triangulation of a set of points in the plane; the Delaunay triangulation.

Arrangement of lines; duality; computing the discrepancy of a set of points in the unit square.

Segment trees; computing the area of a set of n axis-parallel rectangles in O(n log n) time.

Simplex range searching.

Hidden surface removal: problem definition, image space / object space, the z-buffer algorithm, depth order, the painter's algorithm. Output sensitive hidden surface removal algorithm for horizontal fat triangles.  

Introduction to geometric optimization through facility location optimization and wireless networks.

Measures of similarity between curves.

 


Course summary:

Below you will find, after each class, a brief summary of the topics covered in class.
This should not be taken as a complete description of the course's content.


25.10.17
Introduction

 

26.10.17

The convex hull of a set of points in the plane (gift wrapping, quickhullan O(n log n)-time incremental algorithm and a divide and conquer algorithm)

 

1.11.17

Rabin’s memorial

 

2.11.17

Sweeping; an output sensitive algorithm for line segment intersection (Omrit Filtser)

 

8.11.17

Sweeping – extensions. Computing the diameter and width of a point set.

 

9.11.17

The doubly-connected edge list representation for planar maps, map overlay

 

15.11.17

The art gallery theorem, introduction to guarding problems, introduction to polygon triangulation

 

16.11.17

Partitioning a polygon into y-monotone pieces

 

22.11.17

Triangulating a y-monotone polygon, introduction to orthogonal range searching

 

23.11.17

Kd-Trees

 

29.11.17

Orthogonal range trees, segment trees

 

30.11.17

Computing the area of the union of axis-parallel rectangles

 

6.12.17

Linear programming – an intro, computing the intersection of half-planes

 

7.12.17

A randomized incremental algorithm for 2d linear programming

 

13.12.17

Planar point location, vertical decomposition / trapezoidal map, a randomized incremental algorithm

 

14.12.17

Voronoi diagram

 

20.12.17

Voronoi diagram extensions and generalizations

 

21.12.17

Triangulation of a planar point set, Delaunay triangulation

 

27.12.17

Delaunay triangulation continued, EMST, GG, RNG

 

28.12.17

Duality and arrangement of lines in the plane

 

3.1.18

Euclidean TSP, Christofides algorithm

 

4.1.18

Piercing rectangles and covering points by rectangles

 

10.1.18

Searching in an n x n sorted matrix in O( time (Frederickson and Johnson)

 

11.1.18

 

17.1.18

 

18.1.18

 

 

Last update: January 4, 2017