GithubHelp home page GithubHelp logo

asarkar / algorithms-design-analysis-2 Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 2.0 45.69 MB

Lecture videos and homework for Algorithms: Design and Analysis, Part 2, taught by Tim Roughgarden

Scala 100.00%
algorithms stanford coursera scala data-structures

algorithms-design-analysis-2's Introduction

Lecture videos and answers to homeworks for Algorithms: Design and Analysis, Part 2 - an online course offered by Stanford University and taught by Prof. Tim Roughgarden.

Syllabus:

1. Two Motivating Applications

1.1 Application: Internet Routing

1.2 Application: Sequence Alignment

2. Introduction to Greedy Algorithms

2.1 Introduction to Greedy Algorithms

2.2 Application: Optimal Caching

3. A Scheduling Application

3.1 Problem Definition

3.2 A Greedy Algorithm

3.3 Correctness Proof - Part I

3.4 Correctness Proof - Part II

3.5 Handling Ties (Advanced - Optional)

4. Prim's Minimum Spanning Tree Algorithm

4.1 MST Problem Definition

4.2 Prim's MST Algorithm

4.3 Correctness Proof I

4.4 Correctness Proof II

4.5 Proof of Cut Property (Advanced - Optional)

4.6 Fast Implementation I

4.7 Fast Implementation II

Homework 1

5. Kruskal's Minimum Spanning Tree Algorithm

5.1 Kruskal's MST Algorithm

5.2 Correctness of Kruskal's Alogrithm

5.3 Implementing Kruskal's Alogrithm via Union-Find I

5.4 Implementing Kruskal's Alogrithm via Union-Find II

5.5 MSTs: State-of-the-Art and Open Questions (Advanced - Optional)

6. Clustering

6.1 Application to Clustering

6.2 Correctness of Clustering Algorithm

7. Advanced Union-Find

7.1 Lazy Unions (Advanced - Optional)

7.2 Union-By-Rank (Advanced - Optional)

7.3 Analysis of Union-By-Rank (Advanced - Optional)

7.4 Path Compression (Advanced - Optional)

7.5 Path Compression: The Hopcroft-Ullman Analysis I (Advanced - Optional)

7.6 Path Compression: The Hopcroft-Ullman Analysis II (Advanced - Optional)

7.7 The Ackermann Function (Advanced - Optional)

7.8 Path Compression: Tarjan's Analysis I (Advanced - Optional)

7.9 Path Compression: Tarjan's Analysis II (Advanced - Optional)

8. Huffman Codes

8.1 Introduction and Motivation

8.2 Problem Definition

8.3 A Greedy Algorithm

8.4 A More Complex Example

8.5 Correctness Proof I

8.6 Correctness Proof II

Homework 2

9. Introduction to Dynamic Programming

9.1 Introduction: Weighted Independent Sets in Path Graphs

9.2 WIS in Path Graphs: Optimal Substructure

9.3 WIS in Path Graphs: A Linear-Time Algorithm

9.4 WIS in Path Graphs: A Reconstruction Algorithm

9.5 Principles of Dynamic Programming

10. The Knapsack Problem

10.1 The Knapsack Problem

10.2 A Dynamic Programming Algorithm

10.3 Example [Review - Optional]

11. Sequence Alignment

11.1 Optimal Substructure

11.2 A Dynamic Programming Algorithm

12. Optimal Binary Search Trees

12.1 Problem Definition

12.2 Optimal Substructure

12.3 Proof of Optimal Substructure

12.4 A Dynamic Programming Algorithm I

12.5 A Dynamic Programming Algorithm II

Homework 3

13. The Bellman-Ford Algorithm

13.1 Single-Source Shortest Paths, Revisted

13.2 Optimal Substructure

13.3 The Basic Algorithm I

13.4 The Basic Algorithm II

13.5 Detecting Negative Cycles

13.6 A Space Optimization

13.7 Internet Routing I (Optional)

13.8 Internet Routing II (Optional)

14. All-Pairs Shortest Paths

14.1 Problem Definition

14.2 Optimal Substructure

14.3 The Floyd-Warshall Algorithm

14.4 A Reweighting Technique

14.5 Johnson's Algorithm I

14.6 Johnson's Algorithm II

Homework 4

15. NP-Complete Problems

15.1 Polynomial-Time Solvable Problems

15.2 Reductions and Completeness

15.3 Definition and Interpretation of NP-Completeness I

15.4 Definition and Interpretation of NP-Completeness II

15.5 The P vs. NP Question

15.6 Algorithmic Approaches to NP-Complete Problems

16. Faster Exact Algorithms for NP-Complete Problems

16.1 The Vertex Cover Problem

16.2 Smarter Search for Vertex Cover I

16.3 Smarter Search for Vertex Cover II

16.4 The Traveling Salesman Problem

16.5 A Dynamic Programming Algorithm for TSP

Homework 5

17. Approximation Algorithms for NP-Complete Problems

17.1 A Greedy Knapsack Heuristic

17.2 Analysis of a Greedy Knapsack Heuristic I

17.3 Analysis of a Greedy Knapsack Heuristic II

17.4 A Dynamic Programming Heuristic for Knapsack

17.5 Knapsack via Dynamic Programming, Revisited

17.6 Analysis of Dynamic Programming Heuristic

18. Local Search Algorihms

18.1 The Maximum Cut Problem I

18.2 The Maximum Cut Problem II

18.3 Principles of Local Search I

18.4 Principles of Local Search II

18.5 The 2-SAT Problem

18.6 Random Walks on a Line

18.7 Analysis of Papadimitriou's Algorithm

19. The Wider World of Algorithms

19.1 Stable Matching (Optional)

19.2 Matchings, Flows, and Braess's Paradox (Optional)

19.3 Linear Programming and Beyond (Optional)

Homework 6

Final Exam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.