Lecture 8 – Hamiltonian Graphs, Complexity, & Chromatic Number

You may want to download the the lecture slides that were used for these videos (PDF).

1. Hamiltonian Paths and Cycles

This video defines and illustrates examples of Hamiltonian paths and cycles. We explore the question of whether we can determine whether a graph has a Hamiltonian cycle, and certificates for a “yes” answer. (10:45)

2. Certificates for “No” Answer

Given a graph G, there does not seem to be a way to provide a certificate to validate a “no” answer to the question: Does G have a Hamiltonian cycle? However, there are exceptions. (3:37)

3. Computational Complexity 1: P

We introduce, and provide examples of, the class P that consists of all “yes-no” questions for which the answer can be determined using an algorithm which is provably correct and has a running time which is polynomial in the input size. (6:11)

4. Computational Complexity 2: NP

We introduce, and illustrate, the class NP, that consists of all “yes-no” questions for which there is a certificate for a “yes” answer whose correctness can be verified with an algorithm whose running time is polynomial in the input size. (9:04)

5. Computational Complexity 3: P = NP?

Any problem that is P is also NP, but is the converse also true? This has been an open problem for decades, and is an area of active research. (1:56)

6. Revisiting Euler Circuits and Bipartite Graphs

In the Euler certificate case, there is a certificate for a no answer. We introduce and illustrate examples of bipartite graphs. (8:30)

7. Dirac’s Theorem

If G is a graph on n vertices, and every vertex has at least n/2 neighbors, then G has a Hamiltonian cycle. (2:47)

8. An Algorithm to Find a Hamiltonian Cycle (initialization)

To prove Dirac’s Theorem, we discuss an algorithm guaranteed to find a Hamiltonian cycle.  This video describes the initialization step in our algorithm. (4:27)

9. An Algorithm to Find a Hamiltonian Cycle (1)

Now that we have a long path, we turn our path into a cycle. (10:35)

10. An Algorithm to Find a Hamiltonian Cycle (2)

By expanding our cycle, one vertex at a time, we can obtain a Hamiltonian cycle. (3:52)

11. The Chromatic Number of a Graph

In this video, we continue a discussion we had started in a previous lecture on the chromatic number of a graph. We define the chromatic number of a graph, calculate it for a given graph, and ask questions about finding the chromatic number of a graph. (7:02)

12. Is the Chromatic Number ≤ 2?

In this video, we show how the chromatic number of a graph is at most 2 if and only if it contains no odd cycles. The other problem of determining whether the chromatic number is ≤ 3 is discussed, and how it’s related to the problem of finding Hamiltonian cycles. (6:35)