Algorithms on Graphs

Product type

Algorithms on Graphs

Coursera (CC)
Logo Coursera (CC)
Provider rating: starstarstarstar_halfstar_border 7.2 Coursera (CC) has an average rating of 7.2 (out of 6 reviews)

Need more information? Get more details on the site of the provider.

Description

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this 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…

Read the complete description

Frequently asked questions

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this 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.

Created by:  University of California, San Diego, Higher School of Economics
  • Taught by:  Alexander S. Kulikov, Visiting Professor

    Department of Computer Science and Engineering
  • Taught by:  Michael Levin, Lecturer

    Computer Science
  • Taught by:  Daniel M Kane, Assistant Professor

    Department of Computer Science and Engineering / Department of Mathematics
  • Taught by:  Neil Rhodes, Adjunct Faculty

    Computer Science and Engineering
Basic Info Course 3 of 6 in the Data Structures and Algorithms Specialization Level Intermediate Commitment 5 weeks of study, 3-4 hours/week Language English How To Pass Pass all graded assignments to complete the course. User Ratings 4.7 stars Average User Rating 4.7See what learners said Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from your peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

University of California, San Diego UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory. Higher School of Economics National Research University - Higher School of Economics (HSE) is one of the top research universities in Russia. Established in 1992 to promote new research and teaching in economics and related disciplines, it now offers programs at all levels of university education across an extraordinary range of fields of study including business, sociology, cultural studies, philosophy, political science, international relations, law, Asian studies, media and communications, IT, mathematics, engineering, and more. Learn more on www.hse.ru

Syllabus


WEEK 1


Decomposition of Graphs 1



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 hot in Facebook, you're going to work with graphs and algorithms on graphs. In this module, you will learn ways to represent a graph as well as basic algorithms for decomposing graphs into parts. In the programming assignment of this module, you will apply the algorithms that you’ve learned to implement efficient programs for exploring mazes, analyzing Computer Science curriculum, and analyzing road networks. In the first week of the module, we focus on undirected graphs.


5 videos, 3 readings expand


  1. Reading: Welcome
  2. Video: Graph Basics
  3. Video: Representing Graphs
  4. Reading: Slides and External References
  5. Video: Exploring Graphs
  6. Video: Connectivity
  7. Video: Previsit and Postvisit Orderings
  8. Reading: Slides and External References

Graded: Programming Assignment 1: Decomposition of Graphs

WEEK 2


Decomposition of Graphs 2
This week we continue to study graph decomposition algorithms, but now for directed graphs.


4 videos, 1 reading expand


  1. Video: Directed Acyclic Graphs
  2. Video: Topological Sort
  3. Video: Strongly Connected Components
  4. Video: Computing Strongly Connected Components
  5. Reading: Slides and External References

Graded: Programming Assignment 2: Decomposition of Graphs

WEEK 3


Paths in Graphs 1



In this module you will study algorithms for finding Shortest Paths in Graphs. These algorithms have lots of applications. When you launch a navigation app on your smartphone like Google Maps or Yandex.Navi, it uses these algorithms to find you the fastest route from work to home, from home to school, etc. When you search for airplane tickets, these algorithms are used to find a route with the minimum number of plane changes. Unexpectedly, these algorithms can also be used to determine the optimal way to do currency exchange, sometimes allowing to earh huge profit! We will cover all these applications, and you will learn Breadth-First Search, Dijkstra's Algorithm and Bellman-Ford Algorithm. These algorithms are efficient and lay the foundation for even more efficient algorithms which you will learn and implement in the Shortest Paths Capstone Project to find best routes on real maps of cities and countries, find distances between people in Social Networks. In the end you will be able to find Shortest Paths efficiently in any Graph. This week we will study Breadth-First Search algorithm.


8 videos, 1 reading expand


  1. Video: Most Direct Route
  2. Video: Breadth-First Search
  3. Video: Breadth-First Search (continued)
  4. Video: Implementation and Analysis
  5. Video: Proof of Correctness
  6. Video: Proof of Correctness (continued)
  7. Video: Shortest-Path Tree
  8. Video: Reconstructing the Shortest Path
  9. Reading: Slides and External References

Graded: Programming Assignment 3: Paths in Graphs

WEEK 4


Paths in Graphs 2



This week we continue to study Shortest Paths in Graphs. You will learn Dijkstra's Algorithm which can be applied to find the shortest route home from work. You will also learn Bellman-Ford's algorithm which can unexpectedly be applied to choose the optimal way of exchanging currencies. By the end you will be able to find shortest paths efficiently in any Graph.


12 videos, 2 readings expand


  1. Video: Fastest Route
  2. Video: Naive Algorithm
  3. Video: Dijkstra's Algorithm: Intuition and Example
  4. Video: Dijkstra's Algorithm: Implementation
  5. Video: Dijkstra's Algorithm: Proof of Correctness
  6. Video: Dijkstra's Algorithm: Running Time
  7. Reading: Slides and External References
  8. Video: Currency Exchange
  9. Video: Currency Exchange: Reduction to Shortest Paths
  10. Video: Bellman-Ford Algorithm
  11. Video: Bellman-Ford Algorithm: Proof of Correctness
  12. Video: Negative Cycles
  13. Video: Infinite Arbitrage
  14. Reading: Slides and External References

Graded: Programming Assignment 4: Paths in Graphs

WEEK 5


Minimum Spanning Trees



In this module, we study the minimum spanning tree problem. We will cover two elegant greedy algorithms for this problem: the first one is due to Kruskal and uses the disjoint sets data structure, the second one is due to Prim and uses the priority queue data structure. In the programming assignment for this module you will be computing an optimal way of building roads between cities and an optimal way of partitioning a given set of objects into clusters (a fundamental problem in data mining).


5 videos, 1 reading expand


  1. Video: Building a Network
  2. Video: Greedy Algorithms
  3. Video: Cut Property
  4. Video: Kruskal's Algorithm
  5. Video: Prim's Algorithm
  6. Reading: Slides and External References

Graded: Programming Assignment 5: Minimum Spanning Trees

WEEK 6


Advanced Shortest Paths Project (Optional)



In this module, you will learn Advanced Shortest Paths algorithms that work in practice 1000s (up to 25000) of times faster than the classical Dijkstra's algorithm on real-world road networks and social networks graphs. You will work on a Programming Project based on these algorithms. You will find the shortest paths on the real maps of parts of US and the shortest paths connecting people in the social networks. We encourage you not only to use the ideas from this module's lectures in your implementations, but also to come up with your own ideas for speeding up the algorithm! We encourage you to compete on the forums to see whose implementation is the fastest one :)


17 videos, 3 readings, 1 practice quiz expand


  1. Video: Programming Project: Introduction
  2. Video: Bidirectional Search
  3. Video: Six Handshakes
  4. Video: Bidirectional Dijkstra
  5. Video: Finding Shortest Path after Meeting in the Middle
  6. Video: Computing the Distance
  7. Reading: Slides and External References
  8. Video: A* Algorithm
  9. Video: Performance of A*
  10. Video: Bidirectional A*
  11. Video: Potential Functions and Lower Bounds
  12. Video: Landmarks (Optional)
  13. Reading: Slides and External References
  14. Video: Highway Hierarchies and Node Importance
  15. Video: Preprocessing
  16. Video: Witness Search
  17. Video: Query
  18. Video: Proof of Correctness
  19. Video: Node Ordering
  20. Reading: Slides and External Refernces
  21. Practice Quiz: Bidirectional Dijkstra, A* and Contraction Hierarchies
  22. Ungraded Programming: Advanced Shortest Paths
There are no reviews yet.

    Share your review

    Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.

    There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.