More Graphs, Proofs, and Finite Automata




CS154

Chris Pollett

Feb. 5, 2020

Outline

More on Graphs

Finding Simple Paths

Trees

Definitions, Theorems, Proofs

Strings

Strings and Languages

Example Languages

In-Class Exercise

Using a fixed starting set of finite languages, language contenation, and the star operator of the last slide, express the language that consist of strings over the alphabet `{0,1}` which begin and end with a 1 and which have an even number of `0`'s within these end points.

Post your solutions to the Feb 5 In-Class Exercise Thread.

Boolean Logic

Finding proofs

More Types of Proof

By Pigeonhole Principle (Leurechon 1624, Dirichlet 1834)
Pigeonhole principles are a family of related principles, the most common of which is the injective pigeonhole principle. This says that if we have a function `f:X->Y` with `|X| > |Y|` then there exists `x, x' in X` with `x != x'` such that `f(x)=f(x')`. i.e., if you have a function from pigeons to holes and you have more pigeons than holes, your function must map at lease two pigeons to the same hole. For example, a human head has less than 500,000 hairs on it, there are more than a million non-bald people in the Bay area, therefore, two non-bald people in the Bay area have the same number of hairs on their head.

Another type of pigeonhole principle is the surjective pigeonhole principle. This says that we have a function `f:X->Y` with `|X| < |Y|` then there exists `y in Y` such that for every `x in X`, `f(x) != y`. i.e., if we map fewer pigeons than holes then after mapping pigeons some hole will be empty. Later in the semester, we will see this principle is used to show there exists strings that couldn't have been output via some function on strings of shorter length. i.e., it is incompressible.