Approximation Algorithms
- Offered byCoursera
Approximation Algorithms at Coursera Overview
Duration | 15 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Approximation Algorithms at Coursera Highlights
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Intermediate Level
- Approx. 15 hours to complete
- English Subtitles: English
Approximation Algorithms at Coursera Course details
- Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example because the problems are NP-hard. The goal of this 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.
- 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)
- The material for this course is based on the course notes that can be found under the resources tab. We will not cover everything from the course notes. The course notes are there both for students who did not fully understand the lectures as well as for students who would like to dive deeper into the topics.
- The video lectures contain a few very minor mistakes. A list of these mistakes can be found under resources (in the document called "Errata"). If you think you found an error, report a problem by clicking the square flag at the bottom of the lecture or quiz where you found the error.
Approximation Algorithms at Coursera Curriculum
Introduction to Approximation algorithms
Introduction to Approximation Algorithms
Course notes 1.1
Introduction
The Load Balancing problem
A greedy algorithm for load balancing
Analysis of the greedy-algorithm
The ordered scheduling algorithm
Course notes 1.2
The load balancing problem
LP Relaxation
The vertex-cover problem
An approximation algorithm for vertex-cover
A brief introduction to linear programming
Weighted vertex-cover
LP relaxation for weighted vertex-cover
LP relaxation: Analyzing approximation ratio
Course notes 3.1
Course notes 3.2
LP Relaxation
Polynomial-time approximation schemes
Polynomial-time approximation schemes
Knapsack Problem
A dynamic-programming algorithm for knapsack
A PTAS for knapsack
Analysis of the PTAS for knapsack: approximation ratio
Analysis of the PTAS for knapsack: running time
Course notes 4.1
Course notes 4.2
Polynomial-time approximation schemes