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

sunflowerplateAI and Robotics

Nov 21, 2013 (3 years and 8 months ago)

70 views

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?



A

B

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


答牵攠F慬獥a


Example:

A = {paper, stone, scissors}

(scissors, stone)


F慬獥

⡳t潮攬⁳捩獳潲猩s


T牵r


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)


瑲略⁩映愠㰽⁢Ⱐ潴桥t睩w攠f慬ae

f(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 = {s
1
,

s
2
, s
3
, s
4
, s
5
}


f

s
1

s
2

s
3

s
4

s
5

s
1

True

True

s
2

True

True

s
3

True

True

True

s
4

True

True

True

s
5

True

True

True

Equivalence Relations & Automata


We are interested in functions that can separate a set
of items into disjoint classes.



{{
s
1
,

s
2
}, {
s
3
,

s
4
,

s
5
}}



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
,
w
R

=
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


a
c
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 | a
n
, 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

Proof By Contradiction


Assume that the theorem is false


Even though you know it to be true


Show that this assumption leads to a
contradiction with something that has already
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
contradiction?