### Sets, Sequences, Functions & Relations, Graphs, Strings

```Introduction
Chapter 0
Three Central Areas
1. Automata
2. Computability
3. Complexity
Complexity Theory
• Central Question: What makes some problems
computationally hard and other easy?
– Sorting (easy) – Computers can easily sort a billion
items in seconds.
– Scheduling (hard) – With real constraints scheduling a
thousand courses to avoid room and instructor
conflicts can take years of computation.
• Cryptography (secret encryption) depends on the
existence of sufficiently hard problems.
Computability
• Based on the work of Kurt Gödel, Alan Turing,
and Alonzo Church.
• Some very basic problems cannot be solved by
computers.
– Example: Determining if a mathematical
statement is true or false.
• Instead of hard vs. easy, Computability centers
on solvable vs. unsolvable problems.
Automata Theory
• We construct a simple, formal and precise
model of a computer.
– The precision and formality allow us to prove the
computability of problems
• Three types of computer machines
1. Finite Automata
2. Pushdown Automata
3. Turing Machine
Sets
{7, 57, 7, 7, 21, 7} = {21, 7, 57}
Order does not matter
Repetition is not a factor
Infinite Sets
Subsets
Set Descriptions
Set Operations
Venn Diagrams
Venn Diagrams
Venn Diagrams
Venn Diagrams
• What would A-B look like?
B
A
Sequences (Tuples)
Order and repetition matter
(7, 21, 57) different than (57, 21, 7)
(4,3) ordered pair,
whereas {4,3} set of size 2
(11, 21, 3, 24, 57) is a 5-tuple
Functions (Relations)
Domain & Range
Example
Binary Function (two inputs)
g(x,y) = z
where
x, y and z are in {0,1,2,3}
Predicate
• function whose range is {True, False}
• Example: f(a,b) = a Beats b
f(scissors,paper) = scissors Beats paper = TRUE
Binary Relation
• Predicate whose domain is a set of ordered pairs
P: A x A  {True False}
Example:
A = {paper, stone, scissors}
(scissors, stone)  False
(stone, scissors)  True
Predicates can be described as sets
S= { (scissors,stone), (paper, stone), (stone, scissors) }
Equivalence Relation
Binary Relation that is
1. Reflexive: f(x,x) is always true
2. Symmetric: if f(x,y) is true then f(y,x) is true
3. Transitive: if f(x,y) and f(y,z) are both true
then f(x,z) is true.
Example
f(a,b) = a Beat b;
• Not reflexive: f(paper,paper) = false
• Not symmetric: f(paper, stone) = true,
but f(stone, paper) = false
• Not transitive:
f(paper, stone) and f(stone, scissors) is true,
but f(paper, scissors) is false
Example
f(a, b)  true if a <= b, otherwise false
f(a, b)  a <= b
R = {(a,b) | a <= b}
• Always reflexive: (a,a) is always true for all a’s
• Not always symmetric:
If (a,b) is true then (b,a) might be false.
• Always transitive: (a,b) and (b,c) imply (a,c)
Question
• Is this an equivalence relation (i.e., reflexive,
symmetric, and transitive)?
f(a,b)  a != 1 AND b != 1
R = {(a,b) | a != 1 AND b != 1}
Equivalence Relations
• f: S x S  {True, False}
• S = {s1, s2, s3, s4, s5}
f
s1
s2
s1
True True
s2
True True
s3
s4
s5
s3
True True True
s4
True True True
s5
True True True
Equivalence Relations & Automata
• We are interested in functions that can separate a set
of items into disjoint classes.
• {{s1, s2}, {s3, s4, s5}}
• In automata theory, the items will be languages.
• The functions will be automata and Turing machines
• The classes will be
– Regular languages
– Context-free languages
– Context-sensitive languages
Equivalence & Automata Theory
The theoretical “heart” of computation
• Inputs, outputs and algorithms can all be
encoded as strings of a language
• Solving problems can be reduced to defining
languages (set of strings) that correspond to
correct solutions to a problem.
• Then, solving a problem reduces to creating an
automata that can recognize if a string is in a
particular language
– i.e., is a string a solution to the encoded problem?
Graph Theory
Terminology:
• Nodes/vertices
• Edges
• Degree
• Self-loop
• Directed vs.
Undirected Graphs
• Labeled Graph
• Subgraph
Graph Theory
•
•
•
•
Paths, cycles, trees
Outdegree, Indegree
Directed path
Strongly connected
Meaningful graphs
• Directed graphs can show relations
Equivalence Relations as Graphs
• Example to be drawn
Strings & Languages
• Defining alphabets (symbol domain)
String terminology
• Length w = abc, |w| = 3
• Empty string
ɛ
• Reverse w = abc, wR = cba
• Substrings of w = {ɛ, a, b, c, ab, bc, abc}
– ba, cb, ca, cba, and ac are not substrings of w,
but they are subsets if w were considered a set
– ac is not a substring, but it is subsequence (confusing)
• Lexicographic order
{ɛ , 0, 1, 00, 01, 10, 11, 000, … }
Language
• A language is a set of strings
• Languages can be explicitly described
Animals = {cat, dog, cow, …}
{w | an, n > 1} = {a, aa, aaa, aaaa, … }
• Languages can also be described using
– grammar rules and
– automata that can recognize strings in the
language.
Boolean Logic
• Review on your own, but
Boolean Logic
Proof by Construction
• State your claim. Be very specific and describe
an object you claim exists
• Construct the object. Show details and
describe parameters
• Conclusion. Restate your goal in constructing
the object.
Example
• Assume that the theorem is false
– Even though you know it to be true
• Show that this assumption leads to a
been proven true
Example
• Prove that
• First, assume that it is rational, i.e.,
• Where m and n are integers
• Also, m/n is reduced, so one of them has to be
even.
Example
• Prove that
• Do some algebra
• We know that m must be even. Why?
Example
• Prove that
• We know that n must be even. Why?
• Thus, m and n are even. Why is this a