YoVDO

Dynamic Programming, Greedy Algorithms, and Intractability

Offered By: University of Colorado Boulder via Coursera

Tags

Algorithms and Data Structures Courses Linear Programming Courses Divide and Conquer Algorithms Courses Greedy Algorithms Courses Dynamic programming Courses NP-completeness Courses Integer Programming Courses Optimization Problems Courses

Course Description

Overview

This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to intractability (NP-completeness) and using linear/integer programming solvers for solving optimization problems. We will also cover some advanced topics in data structures.

Syllabus

  • Divide and Conquer Algorithms
    • We will formally cover divide and conquer algorithms as a design scheme and look at some divide and conquer algorithms we have encountered in the past. We will learn some divide and conquer algorithms for Integer Multiplication (Karatsuba’s Algorithm), Matrix Multiplication (Strassen’s Algorithm), Fast Fourier Transforms (FFTs), and Finding Closest Pair of Points.
  • Dynamic Programming Algorithms
    • In this module, you will learn about dynamic programming as a design principle for algorithms. We will provide a step-by-step approach to formulating a problem as a dynamic program and solving these problems using memoization. We will cover dynamic programming for finding longest common subsequences, Knapsack problem and some interesting dynamic programming applications.
  • Greedy Algorithms
    • In this module, we will learn about greedy algorithm. We will understand the basic design principles for greedy algorithms and learn about a few algorithms for greedy scheduling and Huffman codes. We will also learn some interesting cases when being greedy provides a guaranteed approximations to the actual solution.
  • Intractability and Supplement on Quantum Computing
    • P vs NP, Examples such as Travelling Salesperson Problem, Vertex Cover, 3-Coloring and others; Integer Linear Programming and Translating Problems into Integer Programming.
  • Final Exam
    • This module contains materials for the final exam for MS-DS degree students. If you've upgraded to the for-credit version of this course, please make sure you review the additional for-credit materials in the Introductory module and anywhere else they may be found.

Taught by

Sriram Sankaranarayanan

Tags

Related Courses

Job Shop Scheduling Using MILP Optimization on RStudio
Coursera Project Network via Coursera
Linear and Integer Programming
University of Colorado Boulder via Coursera
Solving Optimization and Scheduling Problems in Excel
LinkedIn Learning
Maths Essentials
Imperial College London via edX
Математические методы и модели в экономике
National Research Nuclear University MEPhI via Coursera