Lectures:
1. The complexity of a problem and the complexity of an algorithm. The complexity in the worst case, expected complexity. Models of computation. RAM, algebraic decision tree.
2. Estimating the lower bound of the worst case time complexity by making use of the transformation to the point location problem in En. Using the transformation between problems for estimating the lower bound of time complexity.
3. The data structures for storing the points in multi-dimensional spaces (k-d trees, quad/oct trees, BSP trees, interval trees, range trees).
4. Fundamental techniques of creating the effective algorithms: the plane sweeping method, divide and conquer method, prune and search method, randomised algorithms.
5. Point location problem. Determining the mutual position of a point and a simple polygon. Determining the position of a point in a planar map. Applications.
6. Convex hull. Algorithms for determining the convex hull in the two-dimensional space.
7. Convex hull in multi-dimensional spaces. Applications of convex hull.
8. The problems of distance and proximity. Finding the closest neighbours in E2 and in En.
9. Voronoi diagram. Constructing the Voronoi diagram. Solving the proximity problems by the Voronoi diagram.
10. Triangulation. Delaunay triangulation and its properties. Algorithms for computing the Delaunay triangulation. Triangulation of a simple polygon.
11. Intersections. Finding the intersections of a set of line segments in E2. Intersection of simple polygons.
12. Visibility graph. Computing the visibility graph for planar problems. Applications.
13. On the application of the algorithms discussed in the course: Planning the motion of a mobile robot.
14. Application of modeling the terrain in geographic systems.
Exercises:
During the exercises, the students construct the algorithms that solve given problems. They explain their algorithms in a critical discussion, and evaluate the time and space complexities of the algorithms they proposed.
1. Transformation between problems and estimating the lower bound of time complexity.
2. The search trees for storing the points in multi-dimensional spaces.
3. Plane sweeping method and its applications.
4. Point location problems: point vs polygon, point vs planar map.
5. Convex hull algorithms in the two-dimensional space.
6. Convex hull in multi-dimensional spaces.
7. The problems of distance and proximity. Finding the nearest neighbours.
8. Constructing the Voronoi diagram and its applications.
9. Delaunay triangulation, its computation and properties.
10. Finding the intersections of two polygons.
11. Computing visibility graph for planar problems.
12. Planning the motion of a mobile robot.
13. Modeling the terrain in geographic systems.
14. Summary and obtaining the credit.
1. The complexity of a problem and the complexity of an algorithm. The complexity in the worst case, expected complexity. Models of computation. RAM, algebraic decision tree.
2. Estimating the lower bound of the worst case time complexity by making use of the transformation to the point location problem in En. Using the transformation between problems for estimating the lower bound of time complexity.
3. The data structures for storing the points in multi-dimensional spaces (k-d trees, quad/oct trees, BSP trees, interval trees, range trees).
4. Fundamental techniques of creating the effective algorithms: the plane sweeping method, divide and conquer method, prune and search method, randomised algorithms.
5. Point location problem. Determining the mutual position of a point and a simple polygon. Determining the position of a point in a planar map. Applications.
6. Convex hull. Algorithms for determining the convex hull in the two-dimensional space.
7. Convex hull in multi-dimensional spaces. Applications of convex hull.
8. The problems of distance and proximity. Finding the closest neighbours in E2 and in En.
9. Voronoi diagram. Constructing the Voronoi diagram. Solving the proximity problems by the Voronoi diagram.
10. Triangulation. Delaunay triangulation and its properties. Algorithms for computing the Delaunay triangulation. Triangulation of a simple polygon.
11. Intersections. Finding the intersections of a set of line segments in E2. Intersection of simple polygons.
12. Visibility graph. Computing the visibility graph for planar problems. Applications.
13. On the application of the algorithms discussed in the course: Planning the motion of a mobile robot.
14. Application of modeling the terrain in geographic systems.
Exercises:
During the exercises, the students construct the algorithms that solve given problems. They explain their algorithms in a critical discussion, and evaluate the time and space complexities of the algorithms they proposed.
1. Transformation between problems and estimating the lower bound of time complexity.
2. The search trees for storing the points in multi-dimensional spaces.
3. Plane sweeping method and its applications.
4. Point location problems: point vs polygon, point vs planar map.
5. Convex hull algorithms in the two-dimensional space.
6. Convex hull in multi-dimensional spaces.
7. The problems of distance and proximity. Finding the nearest neighbours.
8. Constructing the Voronoi diagram and its applications.
9. Delaunay triangulation, its computation and properties.
10. Finding the intersections of two polygons.
11. Computing visibility graph for planar problems.
12. Planning the motion of a mobile robot.
13. Modeling the terrain in geographic systems.
14. Summary and obtaining the credit.