About Course
You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal matchings, finding disjoint paths and flight scheduling as well as more surprising ones like image segmentation in computer vision. We then proceed to linear programming with applications in optimizing budget allocation, portfolio optimization, finding the cheapest diet satisfying all requirements and many others. Next we discuss inherently hard problems for which no exact good solutions are known (and not likely to be found) and how to solve them in practice. We finish with a soft introduction to streaming algorithms that are heavily used in Big Data processing. Such algorithms are usually designed to be able to process huge datasets without being able even to store a dataset.

-------- TIME STAMP ---------

FLOWS IN NETWORKS
0:00:00 Introduction
0:03:19 Network Flows
0:12:33 Residual Networks
0:22:34 Maxflow-Mincut
0:30:26 The Ford-Fulkerson Algorithm
0:38:22 Slow Example
0:41:55 The Edmonds-Karp Algorithm
0:53:28 Bipartite Matching
1:04:50 Image Segmentation

LINEAR PROGRAMMING
1:11:56 Introduction
1:17:05 Linear Programming
1:25:46 Linear Algebra Method of Substitution
1:31:22 Linear Algebra Gaussian Elimination
1:41:55 Convexity
1:51:04 Duality
2:03:51 (Optional) Duality Proofs
2:11:02 Linear Programming Formulations
2:19:46 The simplex Algorithm
2:29:47 (Optional) The Ellipsoid Algorithm

NP-COMPLETE PROBLEMS
2:36:23 Brute Force Search
2:42:06 Search Problems
2:51:50 Traveling Salesman Problem
2:59:47 Hamiltonian Cycle Problem
3:07:57 Longest Path Problem
3:09:40 Integer Linear Programming Problem
3:12:48 Independent Set Problem
3:15:56 P and NP
3:20:06 Reductions
3:25:14 Showing NP-completeness
3:31:54 Independent Set to Vertex Cover
3:37:22 3-SAT to Independent Set
3:52:20 SAT to 3-SAT
3:59:24 Circuit SAT to SAT
4:11:25 All of NP to Circuit SAT
4:17:07 Using SAT -solvers

COPING WITH NP-COMPLETENESS
4:31:19 Introduction
4:35:40 2-SAT
4:46:25 2-SAT Algorithm
4:58:49 Independent Sets in Trees
5:12:55 3-SAT Backtracking
5:24:07 3-SAT Local Search
5:36:54 TSP Dynamic Programming
5:52:18 TSP BRanch And Bound
6:01:56 Vertex cover
6:11:10 Metric TSP
6:24:01 TSP Local Search

STREAMING ALGORITHMS (OPTIONAL)
6:30:19 Introduction
6:35:42 Heavy Hitters Problem
6:43:16 Reduction 1
6:47:51 Reduction 2
6:54:22 Basic Estimate 1
7:02:26 Basic Estimate 2
7:09:40 Final Algorithm 1
7:15:08 Final Algorithm
7:28:05 Proofs 1
7:34:07 Proofs 2

⭐ Important Notes ⭐
⌨️ This course is created in collaboration with University of California

#advancealgorithms,
#algorithmsadvanced,
#algorithms,
#complexity,
#datastructure,
#problems