17
CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Embed Size (px)

Citation preview

Page 1: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

CSCI 2670Introduction to Theory of

Computing

Instructor: Shelby Funk

Page 2: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Today

• Syllabus• Chapter 0

• Homework due Tuesday, August 23– Read pages Chapter 0

• You are responsible for all this material even if I don’t cover it in class

– Send me an e-mail telling me your favorite thing about Athens• If you’re new to Athens, tell me your

favorite thing about your most recent hometown

Page 3: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Course goals

• Theoretically explore the capabilities and limitations of computers– Complexity theory

• What makes some problems computationally hard and others easy?

– Computability theory• What problems can be solved by a

computer?

– Automata theory• How can we mathematically model

computation?

Page 4: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Sets, multisets and sequences

• Set– Order and repetition don’t matter

• {7,4,7,3} = {3,4,7}

• Multiset– Order doesn’t matter, repetition does

• {7,4,7,3} = {3,4,7,7} {3,4,7}

• Sequence– Order and repetition matter

• (7,4,7,3) (3,4,7,7)• Finite sequence of k elements may be

called a k-tuple

Page 5: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Set notation

• Union: AB• Intersection: AB• Complement: A• Cartesian Product: AB

– Also called cross product

• Power set: P (A)

Page 6: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Example

• A = {1,2}, B={2,3}, U = {xN|x < 6}– AB =– AB =– A =– AB =

– P (A) =

• A = {1,2}, B={2,3}, U = {xN|x < 6}– AB = {1,2,3}– AB = {2}– A = {3,4,5}– AB = {(1,2), (1,3), (2,2), (2,3)}

– P (A) = {Ø, {1}, {2}, {1,2}}

Page 7: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Function

• Mechanism associating each input value with exactly one output value– Domain: set of all possible input

values– Range: set containing all possible

output valuesf : D R

n f (n)

1234

2424

f : {1, 2, 3, 4} {2, 4}

f : {1, 2, 3, 4} {1, 2, 3, 4}

Page 8: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Relation

• Predicate: function whose output value is always either true or false

• Relation: predicate whose domain is the set A×A×…×A– If domain is all k-tuples of A, the

relation is a k-ary relation on A

Page 9: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Graphs

Nodes

Page 10: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Graphs

Edges

Page 11: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Graphs

Degree = 2Degree = 1Degree = 3

Page 12: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Graphs

Binary tree Subgraph

Page 13: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Directed graphs

1

5

43

2

{(2,1),(3,1),(4,3),(5,2)}

Page 14: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Alphabets and strings

• Alphabet: any finite set1 = {1,2,3}

2 = {,,}

• String: finite sequence of symbols from the given alphabet1212123

• Empty string, ε, contains no symbols of the alphabet

• Language: a set of strings

Page 15: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Boolean logic

• Conjunction (and) • Disjunction (or) • Negation (not) • Exclusive or (xor) • Equality • Implication

Page 16: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk

Proof techniques

• Construction– Prove a “there exists” statement by

finding the object that exists

• Contradiction– Assume the opposite and find a

contradiction

• Induction– Show true for a base case and show

that if the property holds for the value k, then it must also hold for the value k + 1

Page 17: CSCI 2670 Introduction to Theory of Computing Instructor: Shelby Funk