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

AI and Robotics

Nov 21, 2013 (4 years and 5 months ago)

89 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

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)

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

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