We invite you to a fascinating journey into Graph Theory — an area which connects the elegance of painting and the rigor of mathematics; is simple, but not unsophisticated. Graph Theory gives us, both an easy way to pictorially represent many major mathematical results, and insights into the deep theories behind them.
In this course, among other intriguing applications, we will see how GPS systems find shortest routes, how engineers design integrated circuits, how biologists assemble genomes, why a political map can always be colored using a few colors. We will study Ramsey Theory which proves that in a large system, complete disorder is impossible!
By the end of the course, we will implement an algorithm which finds an optimal assignment of students to schools. This algorithm, developed by David Gale and Lloyd S. Shapley, was later recognized by the conferral of Nobel Prize in Economics.
As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.
Do you have technical problems? Write to us: coursera@hse.ru

PS

I wish to thank the professors for having brought this course to Coursera, this topic is absolutely fantastic, and very well presented. I highly recommend it.

KG

Apr 09, 2019

Filled StarFilled StarFilled StarFilled StarFilled Star

It was really good experiencing the different way of learning everything explained so properly all doubt are clear and the quiz and puzzle really helpfull

From the lesson

CYCLES

We’ll consider connected components of a graph and how they can be used to implement a simple program for solving the Guarini puzzle and for proving optimality of a certain protocol. We’ll see how to find a valid ordering of a to-do list or project dependency graph. Finally, we’ll figure out the dramatic difference between seemingly similar Eulerian cycles and Hamiltonian cycles, and we’ll see how they are used in genome assembly!

Taught By

Alexander S. Kulikov

Visiting Professor

Transcript

Hello, and welcome to the next lesson of the graphs class devoted to Eulerian and Hamiltonian cycles. It's usual we start by providing some motivational puzzle, which in this case is actually a simplified version of an important practical genome assembly problem. In this case, this is probably even an oversimplified version. So, in the Genome Assembly Problem, where we can to reconstruct a long genome. A genome can be considered in this case as a long string consisting of symbols A, C, G and T. It is extremely long. Usually it consists of millions or even billions symbols. The problem is that we can not read the genome. What we can do is actually what current sequencing technologies allow us to do, is to read a short fragment of a genome. And we can do, we can read many such short substrings of a genome. And they are called threes. They are usually roughly several hundreds symbols long. Then our goal the problem of genome assembly is to reconstruct the initial stream from many of its short pieces. So in this case as a toy example of this problem, we can see there's a following problem. Our goal is to find a string whose all three sub strings are the view in one. So in this case we are given 8 strings of lengths 3, and we are looking for a string who is all 3 strings, are exactly the ones that are shown here. At this point it should not be clear how it is all related to Hamiltonian cycles or Eulerian cycles. But it will be clear in several minutes. Okay. So let me first introduce Eulerian cycles. As you probably already know an Eulerian cycle in a graph visits each edge exactly once, okay? Let me make several remarks about this definition. First of all it works for directed and undirected graphs. The only difference is that in directed graphs by a cycle or a path would mean a path or a cycle that follows the directions of all the edges, okay. So in undirected case we can traverse any edge in both directions, in directed case we can only reverse a match in its direction, okay? So the results are related to notion of a neighboring path, and the difference between a path and the cycle is that a cycle should start and end in exactly the same node while a path might start at some node and stop at some other node, okay. This is an example of a Non-Eulerian graph, so in this case it is not possible to traverse all the edges. Either by a site or by a path. Okay? And this is actually a graph from the famous Konigsberg bridges puzzle where the graph theory actually started. Okay and this is an example of an Eulerian path, but we convince you that it is indeed an Eulerian well all the numbers here show actually in order of traversing all the edges in the graph. Let me just try to follow this path so we go here then we go there, then we go there, there, there, there, there, there, and there. Okay and we actually even stop at the same vertex where we have started so this graph contains en Eulerian cycle so as a natural question is of course what graphs do you have in Eulerian cycle and what graph do not have Eulerian cycles?

Explore our Catalog

Join for free and get personalized recommendations, updates and offers.

Coursera provides universal access to the world’s best education, partnering with top universities and organizations to offer courses online.