David Dumas

University of Illinois at Chicago

Spring 2014

The zone of a line in a planar arrangement. |

Instructor | David Dumas (ddumas@math.uic.edu) |
---|---|

Lectures | MWF 10am in Taft Hall 207 |

CRN | 35483 (undergraduate), 35484 (graduate) |

Text |
Computational Geometry: Algorithms and Applications, 3ed., de Berg, Cheong, van Kreveld, and Overmars (Springer-Verlag, 2008) ISBN-13: 978-3540779735 |

Office hours | Mon & Fri, 2-3pm in SEO 503 |

Date (announced) | Reading |
---|---|

Mon, Jan 13 | Chapters 1 and 2 |

Mon, Feb 3 | Chapter 3 |

Wed, Feb 12 | Chapter 6 |

Mon, Feb 24 | Chapter 7 |

Wed, Mar 5 | Chapter 9 |

Monday, Mar 17 | Chapter 5 |

Monday, Mar 31 | Chapter 8 |

Monday, Apr 21 | Chapter 11 |

Friday, Apr 25 | Paper folding |

Hwk # | Due | Problems |
---|---|---|

0 | Fri, Jan 24 |
Install CGAL and confirm that it is working by compiling and running one of the included example programs. Take a screenshot and email it to ddumas@math.uic.edu. (See sample screenshot and explanation.) |

1 | Mon, Jan 27 | 1.4ab, 1.6ab, 1.7ad, 1.9, 1.10bcd |

2 | Wed, Feb 12 | 2.2, 2.5, 2.8, 2.11, 2.14 + additional problem |

3 | Mon, Feb 24 | 3.3, 3.4, 3.14, 6.1, 6.2 |

4 | Mon, March 10 | 6.5, 6.6, 7.5, 7.10, 7.11 |

5 | Fri, Mar 21 | 9.2, 9.5a, 9.9, 9.11, 9.13 |

6 | Mon, Apr 7 | 5.1(lower bound only), 5.3, 5.4, 5.5ab |

7 | Mon, Apr 21 | 8.2, 8.4, 8.11 + additional problems |

Project # | Due | |
---|---|---|

1 | Mon, Feb 10 |
Convex hull and line segment intersectionProject description: projdesc1.pdf Source files: projdesc1-files-1.0.tar.gz |

2 | Fri, Mar 7 |
PolygonsProject description: projdesc2.pdf Source files: projdesc2-files-1.0.tar.gz |

3 | Fri, Apr 4 |
Voronoi and DelaunayProject description: projdesc3.pdf Source files: projdesc3-files-1.0.tar.gz |

Final |
Fri, Apr 11 (proposals) Fri, May 2 (reports) |
Final project details |

- CGAL - Computational Geometry Algorithms Library
- Dependencies of CGAL (full details)

For example, on recent versions of Ubuntu GNU/Linux (e.g. 12.04, where the instructions below were tested), all of the necessary packages can be installed from a regular user account by entering the following commands in a terminal:

sudo apt-get update sudo apt-get install g++ cmake libcgal-demoAfter these commands complete, a compressed archive of the source code of the CGAL example programs is located in /usr/share/doc/libcgal-demo/examples.tar.gz. Thus the following command would decompress the example programs in the current directory (e.g. your home directory):

tar --gzip -xvf /usr/share/doc/libcgal-demo/examples.tar.gz

The exact installation procedure and file locations for other Linux distributions may vary. Check the documentation provided with the CGAL package for your distribution for details.

Homework | 30% |
---|---|

Projects | 30% |

Final project | 40% |

- Online resources for background in analysis of algorithms
- MIT OpenCourseWare for SMA 5503 - Introduction to Algorithms - C. Leiserson and E. Demaine, including:
- Lecture 2 covers:
*O*,*Ω*,*Θ*notation and the Master Theorem on recurrences

- Lecture 2 covers:
- Analysis of Algorithms notes by Steven Skiena --- lecture notes and audio

- MIT OpenCourseWare for SMA 5503 - Introduction to Algorithms - C. Leiserson and E. Demaine, including:
- Computational Geometry in general
- Preparata, F. and Shamos, I. Computational Geometry: An Introduction, Springer-Verlag, 1990.

ISBN-13: 978-3540961314 - O'Rourke, J. Computational Geometry in C, Cambridge University Press, 2001.

ISBN-13: 978-0521649766- This is a good reference for details of implementation in a low-level language like C

- Cormen, T., Leiserson, C., Rivest, R., and Stein, C. Introduction to Algorithms, 2nd ed., MIT Press, 2001.

ISBN-13: 978-0262032933- This general reference on data structures and algorithms covers some computational geometry in chapter 33

- Preparata, F. and Shamos, I. Computational Geometry: An Introduction, Springer-Verlag, 1990.
- Convex hulls
- Notes on 2D convex hulls by Jeff Erickson.
- Demonstration of the quick-hull algorithm
- qhull, a C implementation of quick-hull in any number of dimensions
- Classroom examples of robustness problems in geometric computations (Kettner, Mehlhorn, Pion, Schirra, and Yap).
- See Figure 1 on page 4 for a vivid demonstration of the failure of the naive floating-point orientation predicate.

- Fast robust predicates for computational geometry (Shewchuk)
- Paper and C implementation of adaptive precision to detect and correct inaccuracies of the naive floating-point orientation predicate.

- Segment Intersection and Map Overlay
- Demo applet: Plane sweep for segment intersection by Wei Qian
- Select "Data Set 1" then use the horizontal scrollbar to visualize the sweep.

- The DCEL representation of a planar subdivision is discussed in Section 1.2.3 of Preparata and Shamos (see reference above)
- An important special case of the overlay of planar subdivision is the
**polygon boolean operation**problem, i.e. computing the intersection, difference, or union of two polygons. The intersection case is also called**polygon clipping**.- Polygon clipping applet by Christopher Andrews
- Comparison of various implementations of polygon boolean operations

- Demo applet: Plane sweep for segment intersection by Wei Qian
- Polygon Triangulation and the Art Gallery Problem
- Art Gallery Theorems and Algorithms by Joseph O'Rourke
- Includes discussion of NP-hardness of the minimal art gallery problem (chapter 9)

- Art gallery applet and discussion by Thierry Dagnino
- References for the triangulation of monotone polygons using
**mountains**:- Lecture notes by Sariel Har-Peled. Discussed: polygon -> monotone -> mountains -> triangles
- Lecture notes by Jeff Erickson. Discussed: mountains -> triangles, monotone -> triangles

- Art Gallery Theorems and Algorithms by Joseph O'Rourke
- Voronoi diagrams
- Real-time javascript Voronoi with d3.js
- Video demo of Fortune's algorithm (video by Kevin Schaal)
- There are many other online videos illustrating Fortune's algorithm, but I think Schaal's might be the most clear. A few others for more complicated point collections:

- Voronoi Diagrams and a Day at the Beach by David Austin (AMS feature column, Aug 2006)
- Java applets demonstrating Fortune's algorithm (by David Austin):
- A visual implementation of Fortune's Voronoi algorithm by Allan Odgaard & Benny Kjaer Nielsen

- Orthogonal Range Searching
- KD-tree demo applet by H. Akcan

- Arrangements of lines and discrepancy
- Proof of the zone theorem using Davenport-Schinzel sequences, notes by Samir Khuller.
- Book: Davenport-Schinzel sequences and their geometric applications by Sharir and Agarwal. (Link goes to book information with links to several online retailers.)
- Survey: Davenport-Schinzel sequences and their geometric applications by Sharir and Agarwal. (gzipped postscript format)

- Binary Space Partition
- Toth's work on the complexity of BSP for segments in the plane:
*A note on binary plane partitions*- Worst case BSP size Ω(n log(n) / log(log(n))), 2001*Binary plane partitions for disjoint line segments*- BSP of size O(n log(n) / log(log(n))) exists (2009)

- Wikipedia article
**IdTech1**with detailed discussion of the use of BSP in the computer game Doom.

- Toth's work on the complexity of BSP for segments in the plane:
- Paper folding