# 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)