Upload
vunhu
View
215
Download
0
Embed Size (px)
Citation preview
Computational Geometry
Free Lab Exercises
Year 2016-17 Q1
Vera Sacristan
Departament de MatematiquesFacultat d’Informatica de BarcelonaUniversitat Politecnica de Catalunya
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 2
Presentation
You can choose one of the proposed exercises or you can propose yourselves a different exercise ofyour choice. In the last case, you must send me your proposal, at most one month before the endingof the semester, so that I can evaluate its difficulty before accepting it. Once you have decidedwhich exercise you would like to do, (chosen by you or from the list), you must send me an e-mailasking for it. The assignment of the exercises is done by order of reception of the correspondinge-mails.
Please, take into account that:
• The proposed exercises are sorted by their chronological order. This means that the first onescan be done earlier in the semester, while the last ones require material which is taught laterin the course.
• Easy exercises will give rise to a grade up to 7,5; medium exercises will be graded up to 9;and advanced exercises will be graded up to 10,5.
• You cannot choose the same subject for your free lab exercise and for your theory presentation.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 3
1 Convex Hull in 2D: Incremental Algorithm
1.1 Difficulty
Easy.
1.2 The problem
Incrementally computing the convex hull of a set of n points in the plane involves maintaining theconvex hull in a data structure that allows efficient binary search, and an appropriate actualizationat each step, if order to obtain an algorithm with optimal complexity.
1.3 The goal
Implement the incremental algorithm to compute the convex hull of a set of points un the plane,previously sorted by their abscissae. The program will rely on the appropriate data structure forbinary search, allowing insertions of points, and deletion of portions of the current convex hull, inlogarithmic time. We recommend that you do not attempt to construct your own structure butuse or adapt a previously existent binary search tree from C++.
1.4 Bibliography
[1] F. P. Preparata, M. I Shamos, Computational Geometry - An Introduction, Ed. Springer, 1985.Chapter 3.3.6.
1.5 Skills to be gained
Ability to understand and use non trivial data structures. Ability to implement and perhapsdevelop an algorithm. Explore in depth a fundamental concept in Computational Geometry andother areas. Working from material presented in class. Ability to undertake a small project.Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 4
2 Convex Hull in 3D: Incremental Algorithm
2.1 Difficulty
Medium.
2.2 The problem
The incremental computation of the convex hull of a set of n points in 3D space allows to generalizeto 3 dimensions some of the knowledge acquired during the course.
2.3 The goal
Implement the incremental algorithm to compute the convex hulls of a set of n previously sortedpoints in 3D space. The program is based on the maintenance of the current convex hull informationin a DCEL and its appropriate actualization.
2.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 11.
2.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Computational Geometry and other areas. Generalization frommaterial presented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 5
3 Convex Hull in 3D: Divide and Conquer algorithm
3.1 Difficulty
Medium.
3.2 The problem
The divide and conquer computation of the convex hull of a set of n points in 3D space allows togeneralize to 3 dimensions some of the knowledge acquired during the course.
3.3 The goal
Implement an algorithm following the divide and conquer strategy to compute the convex hull ofa set of n previously sorted points in 3D space. The program is based on the maintenance of thesuccessive convex hulls in a DCEL and its appropriate merge.
3.4 Bibliography
[1] J. O’Rourke, Computational Geometry in C, Cambridge University Press, (2nd edition) 1998.Chapter 4.2.
3.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Computational Geometry and other areas. Generalization frommaterial presented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 6
4 Intersecting two convex polygons
4.1 Difficulty
Easy.
4.2 The problem
Computing intersections is an essential tool in the development of applications for hiding non visibleportions of geometric scenes in realistic visualization, motion planning without collisions in robotics,etc. A simplified version of this problem consists of detecting and computing the intersection oftwo polygons, when they are convex.
4.3 The goal
Given the counterclockwise ordered lists of vertices of two convex polygons, implement an algorithmto compute the list of vertices of their intersection polygon, if it exists. Your program must performproperly even when the polygons P and Q are such that P ∩Q = ∅, P ⊆ Q or Q ⊆ P .
4.4 Bibliography
[1] J. O’Rourke, Computational Geometry in C, Cambridge University Press, (2nd edition) 1998.Chapter 7.6.
4.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explore indepth a fundamental concept in Computational Geometry and other areas. Learn new algorithmsand relate them to material presented in class. Ability to undertake a small project. Individualwork.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 7
5 Linear Programming by Prune and Search
5.1 Difficulty
Medium.
5.2 The problem
Linear programming problems in 2D can be geometrically seen as computing the minimum y-coordinate point belonging to a convex polygonal region defined as the intersection of halfplanes.The intersection of n halfplanes can be computed in Θ(n log n) time. The fact that the halfplaneintersection problem has an Ω(n log n) lower bound, though, does not imply that linear program-ming problems cannot be solved in o(n log n) time as they in fact can, by the prune and searchalgorithm proposed by Megiddo and Dyer.
5.3 The goal
Write a program that, given a set of halfplanes, finds the minimum y-coordinate point of theirintersection (or alternatively detects that their intersection is empty) using O(n) time and space,by implementing the mentioned algorithm.
Your program is intended to have a didactic illustration use. This means that it should show it’sperformance step by step in a way that allows to understand what exactly is going on.
5.4 Bibliography
[1] F. P. Preparata, M. I Shamos, Computational Geometry - An Introduction, Ed. Springer, 1985.Chapter 7.2.5.
5.5 Skills to be gained
Ability to implement and perhaps develop an algorithm. Ability to work with OpenGL, visualiza-tion of objects. Explore in depth a fundamental concept in Computational Geometry and otherareas. Working from material presented in class. Ability to undertake a small project. Individualwork.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 8
6 Art Galleries
6.1 Difficulty
Easy.
6.2 The problem
Triangulating a polygon is a very important and basic task, due to its applications. In fact, it stillis an open (and difficult) problem to find a simple linear algorithm to triangulate a polygon.
6.3 The goal
Implement an algorithm to triangulate any given polygon (it may have quadratic complexity).
Locate at most n3 vertex guards in the polygon, such that all the interior of the polygon is guarded.
Show the location of the guards, as well as the triangulation.
6.4 Bibliography
[1] J. O’Rourke, Art Gallery Theorems and Algorithms, Oxford University Press, 1987. Chapter1. http://maven.smith.edu/∼orourke/books/ArtGalleryTheorems/art.html
6.5 Skills to be gained
Ability to implement and perhaps develop an algorithm. Explore in depth a fundamental conceptin Computational Geometry and other areas. Working from material presented in class. Ability toundertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 9
7 Visibility Polygon
7.1 Difficulty
Easy.
7.2 The problem
Visibility issues have many applications, related to illumination, guarding, hiding non visible por-tions of geometric scenes in realistic visualization, motion planning without collisions in robotics,etc. One of the most basic visibility problem is to determine the visibility region when the view-point is a point which is able to see in any direction (360 around) without any distance bound,and the environment in which it lies is a plane simple polygon.
7.3 The goal
Implement an algorithm to compute the visibility polygon of a point lying in the interior of agiven polygon. Make your algorithm show the result on the screen. We suggest that you use thealgorithm described in [1].
7.4 Bibliography
[1] J. O’Rourke, Art Gallery Theorems and Algorithms, Oxford University Press, 1987, pp. 203-206.http://maven.smith.edu/∼orourke/books/ArtGalleryTheorems/art.html
7.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Abilityto work with OpenGL, visualization of objects. Explore in depth a fundamental concept in Com-putational Geometry and other areas. Learn new concepts and relate them to material presentedin class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 10
8 Binary Space Partitions and Visibility
8.1 Difficulty
2D version: Medium.
3D version: Advanced.
8.2 The problem
The painter’s algorithm is a very well known method to hide the portions of a scene which are notvisible from the viewpoint. It consists of sorting the objects of the scene based on their distance tothe viewpoint. Since such an “order” may give rise to cycles, the algorithm requires preprocessingthe objects. For this purpose, Binary Space Partition Trees (BSP trees) prove to be very useful.
8.3 The goal
Given a set of segments in the plane or a set of triangles in 3-dimensional space, implement analgorithm to compute its BSP tree, and use it to show the scene on the screen of your computer.
8.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 12.
8.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Abilityto work with OpenGL, visualization of objects. Explore in depth a fundamental concept in Com-putational Geometry and other areas. Learn new concepts and relate them to material presentedin class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 11
9 Facility Location, by Prune and Search
9.1 Difficulty
Advanced.
9.2 The problem
One of the most classic location problems is to locate a facility so that it covers a given populationin the most efficient way. This problem rises when looking for the best location for an emergencyservice (hospital, fire fighters headquarters,...), a communication antenna, etc.
9.3 The goal
Given n points in the plane, we want to compute the point of the plane which minimizes themaximum distance to the given points, i.e., the center of their minimum spanning circle, usingO(n) time and space. Implement Megiddo and Dyer’s algorithm.
9.4 Bibliography
[1] Nimrod Megiddo, Linear-time algorithms for linear programming in R3 and related problems,SIAM Journal on Computing, Vol. 12, No. 4, pp. 759-776, 1983 (available at the BRGF and atthe web page of the course).
[2] M. E. Dyer, On a multidimensional search technique and its application to the euclidean one-centre problem, SIAM Journal on Computing, Vol. 15, No. 3, pp. 725-738, 1986 (available at theBRGF).
9.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Computational Geometry and other areas. Learn new conceptsand relate them to material presented in class. Ability to undertake a small project. Individualwork.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 12
10 Facility Location, Randomized
10.1 Difficulty
Easy.
10.2 The problem
One of the most classic location problems is to locate a facility so that it covers a given populationin the most efficient way. This problem rises when looking for the best location for an emergencyservice (hospital, fire fighters headquarters,...), a communication antenna, etc.
10.3 The goal
Given n points in the plane, we want to compute the point of the plane which minimizes themaximum distance to the given points, i.e., the center of their minimum spanning circle. Implementthe algorithm proposed in [1].
10.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 4.7.
10.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Computational Geometry and other areas. Learn new conceptsand relate them to material presented in class. Ability to undertake a small project. Individualwork.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 13
11 3D Convex Hull and Delaunay Flips
11.1 Difficulty
Easy.
11.2 The problem
The Delaunay triangulation of a set of points p1, . . . , pn in the plane z = 0 is the orthogonalprojection of the lower envelope of the vertical projection of the points onto the unit paraboloid,p∗1, . . . , p
∗n. A Delaunay flip in a triangulation of p1, . . . , pn corresponds to adding a tetrahedron to
the bottom of the corresponding polyhedron through p∗1, . . . , p∗n.
11.3 The goal
Implement an algorithm to simultaneously visualize the construction of the Delaunay triangulationof a set of points p1, . . . , pn in the plane z = 0 via Delaunay flips and the construction of the lowerenvelope of p∗1, . . . , p
∗n (the orthogonal projection of p1, . . . , pn onto the paraboloid z = x2 + y2) by
addition of tetrahedra.
Your program must allow the user to simultaneously visualize each flip in the triangulation andeach corresponding tetrahedron addition in 3D.
Your program is intended to have a didactic illustration use.
11.4 Bibliography
[1] J. O’Rourke, Computational Geometry in C, Cambridge University Press, (2nd edition) 1998,pp.197-200.
11.5 Skills to be gained
Ability to implement and perhaps develop an algorithm. Ability to work with OpenGL, visualiza-tion of objects. Explore in depth a fundamental concept in Computational Geometry and otherareas. Working from material presented in class. Ability to undertake a small project. Individualwork.
11.6 Warning
This exercise is an extension of the programming done in the common laboratory part, and requiresExercise 5 to be finished.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 14
12 Proximity Graphs
12.1 Difficulty
Easy.
12.2 The problem
Capturing the proximity relationship among a given set of points is an issue of interest because ofits applications. Several different proximity graphs have been proposed to capture the proximitystructure of a set of points, among which some subgraphs of the Delaunay triangulation.
12.3 The goal
Implement algorithms to compute the following proximity graphs of a set P of n points in theplane, taking into account the following inclusion sequence:
ANN(P )EMST (P )
⊆ RNG(P ) ⊆ GG(P ) ⊆ Del(P ).
1. Gabriel graph (GG). Two points p and q are connected by an edge if and only if the opencircle having pq as diameter does not contain any point of P .
2. Relative neighborhood graph. Two points p and q are connected by an edge if, and only if,the lens L(p, q) does not contain any point of P , where L(p, q) is the intersection of the opencircles of radius r = d(p, q) centered at p and q.
3. All nearest neighbors graph. A point p is connected to a point q by an directed edge if andonly if the open circle centered at p and going through q does not contain any other point ofP .
4. Euclidean minimum spanning tree. This is the minimum spanning tree of the completeEuclidean graph defined by P .
12.4 Bibliography
For proximity graphs:
[1] G. T. Toussaint, The relative neighbourhood graph of a finite planar set, Pattern Recognition,Vol. 12, 1980, pp. 261-268.
[2] J.W. Jaromczyk, G.T. Toussaint: Relative Neighborhood Graphs and Their Relatives, Proc.IEEE, vol. 80, No. 9, September, 1992, pp. 1502-1517.
For Kruskal’s algorithm:
[3] K. H. Rosen, Discrete mathematics and its applications, McGraw-Hill, 6th edition, 2007. Chap-ter 8.6.
12.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explore indepth a fundamental concept in Computational Geometry and other areas. Working from materialpresented in class. Ability to undertake a small project. Individual work.
12.6 Warning
This exercise is an extension of the programming done in the common laboratory part, and requiresExercise 5 to be finished.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 15
13 Computing the Voronoi Diagram from the Delaunay Triangu-lation
13.1 Difficulty
Easy.
13.2 The problem
The Voronoi diagram and the Delaunay triangulation are dual graphs. From any of them, it ispossible to obtain all the information needed to construct the other one in O(n) time and space.
13.3 The goal
Implement an algorithm to construct the Voronoi diagram of a set of n points in the plane fromtheir Delaunay triangulation.
13.4 Bibliography
[1] F. P. Preparata, M. I Shamos, Computational Geometry - An Introduction, Ed. Springer, 1985.Chapter 5.5.
13.5 Skills to be gained
Ability to implement and perhaps develop an algorithm. Explore in depth a fundamental conceptin Computational Geometry and other areas. Working from material presented in class. Ability toundertake a small project. Individual work.
13.6 Warning
This exercise is an extension of the programming done in the common laboratory part, and requiresExercise 5 to be finished.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 16
14 Computing the Voronoi Diagram Incrementally
14.1 Difficulty
Medium.
14.2 The problem
The construction of the Voronoi diagram of a set of n points in the plane can be done in severaldifferent ways in O(n log n) time, using O(n) space. The incremental algorithm, although notoptimal in time if the location step is not appropriately implemented, is very simple.
14.3 The goal
Implement an algorithm to show how the Voronoi diagram of a set of n points in the plane isincrementally constructed. You can implement the location step by brute force, if you wish.
Your program is intended to have a didactic illustration use.
14.4 Bibliography
[1] A. Okabe, B. Boots, K. Sugihara, Spatial Tessellations: Concepts and Applications of VoronoiDiagrams, John Wiley & Sons, 1992. Chapters 4.1, 4.2, 4.3.
14.5 Skills to be gained
Ability to implement and perhaps develop an algorithm. Explore in depth a fundamental conceptin Computational Geometry and other areas. Working from material presented in class. Ability toundertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 17
15 α-Shapes
15.1 Difficulty
Advanced.
15.2 The problem
Detecting the contour of a geometric object of which a discretization is known, is a fundamentalproblem in pattern recognition. One solution to this problem is the α-shape technique.
15.3 The goal
Implement an algorithm that, given a set P with n points in the plane and a value α ≤ 0, computesthe α-shape of P .
15.4 Bibliography
[1] H. Edelsbrunner, D. G. Kirkpatrick, R. Seidel, On the Shape of a Set of Points in the Plane,IEEE Transactions on Information Theory, Vol. IT-D, No. 4, pp. 551-559, 1983.
15.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Computational Geometry and other areas. Learn new conceptsand relate them to material presented in class. Ability to undertake a small project. Individualwork.
15.6 Warning
This exercise is an extension of the programming done in the common laboratory part, and requiresExercise 5 to be finished.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 18
16 Counting k-Sets
16.1 Difficulty
Advanced.
16.2 The problem
Let C be a set of n points in the plane. For any k < n, a k-set of C is a subset of k points from Cwhich can be linearly separated from the remaining points of C. When k = 1, the 1-sets of C arethe extreme points of C (i.e., the vertices of the convex hull of C). Depending upon the position ofthe points of C in the plane, C may have more or less k-sets, for a given k. For example, if k = 1,the number of 1-sets of any set C can go from 3 to n.
16.3 The goal
Given a set C of n points in the plane, and a value k < n, implement an algorithm to compute thenumber of k-sets of C.
We suggest to dualize the problem: the point set gets transformed into a set of lines, and the k-setscorrespond to the k-th level of the arrangement of lines. One possible way to compute one levelof an arrangement of lines is to sweep the arrangement, while maintaining the information of thelevel (it is not necessary to compute the entire arrangement).
Finally, apply your algorithm to try to maximize the number of k-sets, by exploring several con-figurations of points (Horton set, point configuration database of O. Aichholzer, randomized pointsets, etc.).
16.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 8.3.
16.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Combinatorial Geometry. Learn new concepts and relate themto material presented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 19
17 Find a Ham-Sandwich-Cut
17.1 Difficulty
Advanced.
17.2 The problem
Let C1 and C2 be two set of n points in the plane (red and blue points). A ham-sandwich-cut ofC = C1 ∪ C2 is a line simultaneously bisecting both C1 and C2, i.e., a line leaving half of the redpoints to each side and half of the blue points to each side. The problem is proposed for the casewhen the two sets are vertically separated.
17.3 The goal
Implement an algorithm to solve the problem of finding a ham-sandwich-cut of a pair of givenvertically separated point sets C1, C2.
We suggest to dualize the problem: the two point sets get transformed into two sets of lines, the redlines and the blue lines. The bisectors of each set correspond to the n
2 -th level of the arrangement ofthe lines of the corresponding color, and the line we are looking for corresponds to one intersectionof the red mid level and the blue mid level. One way of computing it can be found in [1].
17.4 Bibliography
[1] H. Edelsbrunner, Algorithms in Combinatorial Geometry, Ed. Springer, 1987. Chapters 4.2 and14.1.
17.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explorein depth a fundamental concept in Combinatorial Geometry. Learn new concepts and relate themto material presented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 20
18 Arrangements of Lines: Incremental Algorithm
18.1 Difficulty
Advanced.
18.2 The problem
A set of n lines in the plane produces a decomposition of the plane into regions (faces, edgesand vertices) which, as it happens for all decompositions, it is convenient to store in a structuresupporting location, neighbor detection, etc. Line arrangements have a great number of applicationsin other fields, such as visualization.
18.3 The goal
Given a set L of n lines in the plane, implement an algorithm to produce the arrangement A(L).
We suggest that you store the arrangement in a DCEL that you can incrementally construct.
18.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 8.3.
18.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explore indepth a fundamental concept in Computational Geometry and other areas. Working from materialpresented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 21
19 Kirkpatrick’s Algorithm for Point Location
19.1 Difficulty
Advanced.
19.2 The problem
Locating a point in a planar decomposition is a problem that repeatedly shows up in a greatnumber of computer science applications: geographic information systems, automatic classification,etc. Kirkpatrick’s algorithm, also known as the triangulation refinement method, preprocesses atriangulation in order to facilitate point location, by applying an algorithmic paradigm very frequentin Computational Geometry.
19.3 The goal
Implement Kirkpatrick’s algorithm and test its efficiency when the it comes to locating points inthe triangulation.
19.4 Bibliography
[1] F. P. Preparata, M. I Shamos, Computational Geometry - An Introduction, Ed. Springer, 1985.Chapter 2.2.2.3.
[2] J. O’Rourke, Computational Geometry in C, Cambridge University Press, (2nd edition) 1998,Chapter 7.11.
19.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Explore indepth a fundamental concept in Computational Geometry and other areas. Working from materialpresented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 22
20 Motion Planning for a Point Robot
20.1 Difficulty
Medium.
20.2 The problem
An important problem in robotics is to coordinate the movements of a mobile robot in an environ-ment with obstacles, so that the locomotion of the robot can be safely done. The goal is to planthe trajectory of the robot from an initial position to a target position, avoiding collisions with theobstacles.
20.3 The goal
Given a point in the plane (the robot), implement an algorithm to move it to a goal position (anyother point) in the presence of a set of polygons (the obstacles), so that the trajectory does notintersect any of the polygons. Apply your program to find the exit from a labyrinth.
20.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 13.
20.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Ability toimplement and use non trivial data structures. Work in a fundamental concept in ComputationalGeometry and other areas. Learn new concepts and relate them to material presented in class.Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 23
21 Shortest Path for a Polygonal Robot
21.1 Difficulty
Advanced.
21.2 The problem
An important problem in robotics is to coordinate the movements of a mobile robot in an environ-ment with obstacles, so that the locomotion of the robot can be safely done. The goal is to planthe trajectory of the robot from an initial position to a target position, avoiding collisions with theobstacles and making the path as short as possible.
21.3 The goal
Given a polygon in the plane (the robot), implement an algorithm to move it to a goal position inthe presence of a set of polygons (the obstacles), so that the trajectory does not intersect any ofthe polygons, and in such a way that the trajectory is as short as possible. Show an example ofthe performance of your program.
21.4 Bibliography
[1] M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry - Algorithmsand Applications, Springer, (3rd revised edition) 2008. Chapter 15.
21.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Ability toimplement and use non trivial data structures. Work in a fundamental concept in ComputationalGeometry and other areas. Learn new concepts and relate them to material presented in class.Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 24
22 Handling a Robot Arm
22.1 Difficulty
Easy.
22.2 The problem
An important problem in robotics is planning the movements of a robot arm, in order to havecomplete control of the position of the position of the extreme of the arm.
22.3 The goal
Given a robot arm with known sizes, implement an algorithm to decide wether or not it can reach agiven position in the plane and, in the affirmative, compute how the articulations of the arm mustbe placed.
22.4 Bibliography
[1] J. O’Rourke, Computational Geometry in C, Cambridge University Press, (2nd edition) 1998,Chapter 8.6.
22.5 Skills to be gained
Ability to read a scientific text. Ability to implement and perhaps develop an algorithm. Workin a fundamental concept in Computational Geometry and other areas. Learn new concepts andrelate them to material presented in class. Ability to undertake a small project. Individual work.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 25
23 Intersection of Segments
23.1 Difficulty
For points in general position: Easy.
Dealing with collinearities: Medium.
23.2 The problem
There exist configurations of n segments in the plane with a total of Θ(n2) intersections. Never-theless, in many cases the number of intersections may be substantially smaller. In this context,it makes sense to have algorithms to compute all the intersections that runs in time proportionalor, at least related to the number of intersections. The output-sensitive complexity, in this case, ispotentially o(n2).
23.3 The goal
Implement Bentley-Ottmann’s algorithm to compute all the intersection of a given set of segmentsin the plane.
Implement it in such a way that it can be used as a didactic illustration of the steps of the algorithm.
Use the appropriate data structure to perform fast operations on the sweeping line and on theevents queue.
You can start considering the case where the segments are in general position, i.e.:
1. The abscissae of the endpoints and/or intersection points of the segments never coincide.
2. Three segments never intersect in a point.
3. If two segments intersect, their intersection is a unique point.
23.4 Bibliography
[1] F. P. Preparata, M. I Shamos, Computational Geometry - An Introduction, Ed. Springer, 1985.Chapter 7.2.3.
23.5 Skills to be gained
Ability to implement and perhaps develop an algorithm. Ability to work with OpenGL, visualiza-tion of objects. Explore in depth a fundamental concept in Computational Geometry and otherareas. Working from material presented in class. Ability to undertake a small project. Individualwork.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 26
24 Metro map layout
24.1 Difficulty
Medium.
24.2 The problem
The automatic production of schematic maps, such as the ones typically used to depict metronetworks, is an important problem in the areas of graph drawing and digital cartography.
24.3 The goal
Implement the metro map layout algorithm by Stott et al. [1]. This is a very flexible algorithm,which can be adapted to work for many different criteria, and is one of the most recent algorithmsknown for this problem.
Probably the output of the algorithm will not be as good as metro maps that you may be familiarwith. This is because most metro maps today are still produced by hand. Can you identify whatmakes your output worse than hand-made metro maps, and improve the algorithm based on that?
If you choose this assignment, you will provided with data to try your implementation with somereal metro networks.
24.4 Bibliography
[1] J.M. Stott, P. Rodgers, J.C. Martinez-Ovando, and S.G. Walker, Automatic Metro Map LayoutUsing Multicriteria Optimization, IEEE Trans. Vis. Comput. Graph. 17(1):101-114, 2011.
24.5 Skills to be gained
Ability to read a scientific text. Ability to implement and improve an algorithm. Ability to adapt analgorithm to perform better for certain input data. Ability to undertake a small project. Individualwork.
Computational Geometry - Free Lab Exercises - Year 2016-17 Q1 27
25 Edge insertion for optimal triangulation
25.1 Difficulty
Medium.
25.2 The problem
In areas where triangulations of point sets are needed (such as terrain modeling and mesh gener-ation), it is often the case that some triangulations are better than others. The Delaunay trian-gulation optimizes many important criteria for triangulations (such as maximizing the minimumangle), but there are other criteria for which it is not optimal. That is why other triangulationalgorithms are sometimes needed: to produce triangulation that are optimal with respect to criteriafor which the Delaunay triangulation is not the best. The “Edge insertion paradigm” is a simplebut powerful technique that allows to obtain optimal triangulations for several criteria.
25.3 The goal
Implement an edge insertion algorithm that can produce an optimal triangulation for at least twodifferent criteria, based on the algorithm in Section 5 of [1]. You can choose to optimize any twocriteria among the ones mentioned in the paper.
We suggest building your program based on Lab Exercise 5. Your program should be able to showboth the Delaunay triangulation and the optimal triangulation produced by your edge-insertionalgorithm, together with their scores or measures (for the two chosen criteria).
25.4 Bibliography
[1] M.W. Bern, H. Edelsbrunner, D. Eppstein, S.L. Mitchell and T.S. Tan, Edge Insertion forOptimal Triangulations. Discrete & Computational Geometry 10:47-65, 1993.
25.5 Skills to be gained
Ability to read a scientific text. Ability to implement and improve an algorithm. Ability toundertake a small project. Individual work.