27
Computational Geometry Free Lab Exercises Year 2016-17 Q1 Vera Sacrist´ an Departament de Matem`atiques Facultat d’Inform` atica de Barcelona Universitat Polit` ecnica de Catalunya

Computational Geometry Free Lab Exercises Year 2016 …dccg.upc.edu/people/vera/wp-content/uploads/2013/06/laboLliureEN.pdf · depth a fundamental concept in Computational Geometry

  • 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.