About Course
If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs.

In this course, you will first learn what a graph is and what are some of the most important properties. Then you'll learn several ways to traverse graphs and how you can do useful things while traversing the graph in some order. We will then talk about shortest paths algorithms — from the basic ones to those which open door for 1000000 times faster algorithms used in Google Maps and other navigational services. You will use these algorithms if you choose to work on our Fast Shortest Routes industrial capstone project. We will finish with minimum spanning trees which are used to plan road, telephone and computer networks and also find applications in clustering and approximate algorithms.

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

DECOMPOSITION OF GRAPHS 1
0:00:00 Graph Basics
0:04:41 Representing Graph
0:14:36 Exlopring Graphs
0:29:25 Connectivity
0:35:17 Previsit and postvisit Orderings

DECOMPOSITION OF GRAPHS 2
0:43:07 Directed Acylic Graphs
0:51:14 Topological Sort
1:00:44 strongly Connected Components
1:08:32 Computing Strongly Connected Components

PATHS IN GRAPH 1
1:19:30 Most Direct Route
1:28:48 Breadth-First Search
1:36:38 Breadth-First Search (continued)
1:42:53 Implementation and Analysis
1:52:27 proof of Correctness
1:59:39 Proof of Correctness (continued)
2:05:10 Shortest-Path Tree
2:11:24 Reconstructing the Shortest Path

PATHS IN GRAPH 2
2:14:51 Fastest Route
2:21:33 Naive Algorithm
2:32:20 Dijkstra's Algorithm Intuition and Example
2:40:13 Dijkstra's Algorithm Implementation
2:43:52 Dijkstra's Algorithm Proof of Correctness
2:48:44 Dijkstra's Algorihtm Running Time
2:56:00 Currency Exchange
3:02:13 Currency Exchange Reduction to Shortest Paths
3:10:24 Bellman-Ford Algorithm
3:16:30 Bellman-Ford Algorithm Proof of Correctness
3:22:34 Negative Cycles
3:30:05 Infinite Arbitrage

MINIMUM SPANNING TREES
3:40:38 Building a Network
3:50:20 Greedy Algorithms
3:54:20 Cut Property
4:04:07 Kruskal's Algorithm
4:20:01 Prim's Algorithm

ADVANCE SHORTEST PATHS PROJECT (OPTIONAL)
4:33:27 Programming Project Introduction
4:35:01 Bidirectional Search
4:45:17 Six Handshakes
4:52:07 Bidirectional Dijkstra
4:58:01 Finding Shortest Path after Meeting in the Middle
5:07:02 Computing the Distance
5:09:34 A Algorithm
5:20:43 Performance of A
5:22:48 Bidirectional A
5:29:12 Potential Functions and Lower Bounds
5:35:11 Landmarks (Optional)
5:45:38 Highway Hierarchies and NOde Importance
5:53:07 Preprocessing
6:01:04 Witness Search
6:11:06 Query
6:19:28 Proof of Correctness
6:28:51 Node Ordering

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

#algorithms,
#algorithmsongraph,
#algorithmsgraph,
#graphtheory,
#graphs,
#graphalgorithms,
#graphtheory,
#datastructures,