Skip to main content

Approximation Algorithms

TUE

About This Course

Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example, because the problems are NP-hard. The goal of the Approximation Algorithms course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. These techniques apply when we don't require the optimal solution to certain problems, but an approximation that is close to the optimal solution. We will see how to efficiently find such approximations.

The material for this course is based on the course notes that can be found under the Course Notes on Approximation Algorithms tab.

Requirements

Prerequisites:
In order to successfully take this course, you should already have a basic knowledge of algorithms and mathematics. Here's a short list of what you are supposed to know:
  • O-notation, Ω-notation, Θ-notation; how to analyze algorithms
  • Basic calculus: manipulating summations, solving recurrences, working with logarithms, etc.
  • Basic probability theory: events, probability distributions, random variables, expected values etc.
  • Basic data structures: linked lists, stacks, queues, heaps
  • (Balanced) binary search trees
  • Basic sorting algorithms, for example MergeSort, InsertionSort, QuickSort
  • Graph terminology, representations of graphs (adjacency lists and adjacency matrix), basic graph algorithms (BFS, DFS, topological sort, shortest paths)

Course Staff

Course Staff Image #1

Staff Member #1

Mark de Berg received an MSc in computer science from Utrecht University in 1988, and he received a PhD from the same university in 1992. Currently he is a full professor at the TU Eindhoven. His main research interest is in algorithms and data structures, in particular for spatial data.

Enroll