31
INTRODUCTION TO THE THEORY OF COMPUTATION INTRODUCTION MICHAEL SIPSER, SECOND EDITION 1

INTRODUCTION TO THE THEORY OF COMPUTATION

  • Upload
    jovan

  • View
    48

  • Download
    3

Embed Size (px)

DESCRIPTION

INTRODUCTION TO THE THEORY OF COMPUTATION. INTRODUCTION MICHAEL SIPSER , SECOND EDITION. Note for the students: These slides are meant for the lecturers to conduct lectures only. It is NOT suitable to be used as a study material. - PowerPoint PPT Presentation

Citation preview

Page 1: INTRODUCTION TO THE THEORY OF COMPUTATION

INTRODUCTION TO THETHEORY OF COMPUTATION

INTRODUCTION

MICHAEL SIPSER, SECOND EDITION

1

Page 2: INTRODUCTION TO THE THEORY OF COMPUTATION

2

Note for the students:Note for the students:• These slides are meant for the lecturers to These slides are meant for the lecturers to

conduct lectures only. It is conduct lectures only. It is NOTNOT suitable to be suitable to be used as a study material.used as a study material.

• Students are expected to study by reading the Students are expected to study by reading the textbook for this course:textbook for this course:

Page 3: INTRODUCTION TO THE THEORY OF COMPUTATION

AUTOMATA, COMPUTABILITY, AND COMPLEXITY

What are the fundamental capabilities and limitations of computers?

3

Page 4: INTRODUCTION TO THE THEORY OF COMPUTATION

AUTOMATA, COMPUTABILITY, AND COMPLEXITY

• 1930s the meaning of computation.

• COMPLEXITY THEORY• Computer problems come in different

varieties; some are easy, and some are hard. • For example:– Easy : the sorting problem is an easy one.– Hard: Encoding and Decoding

4

Page 5: INTRODUCTION TO THE THEORY OF COMPUTATION

COMPLEXITY THEORY

• Computer problems come in different varieties; some are easy, and some are hard.

• For example, the sorting problem is an easy one.

• For example, scheduling problem is a hard one or (cryptography - because secret codes should be hard to break without the secret key or password.).

5

Page 6: INTRODUCTION TO THE THEORY OF COMPUTATION

COMPLEXITY THEORYWhat makes some problems computationally hard and

others easy?

• First, by understanding which aspect of the problem is at the root of the difficulty.

• Second, you may be able to settle for less than a perfect solution to the problem.

• Third, some problems are hard only in the worst case situation, but easy most of the time.

• Finally, you may consider alternative types of computation such as randomized computation, that can speed up certain tasks.

6

Page 7: INTRODUCTION TO THE THEORY OF COMPUTATION

COMPUTABILITY THEORY

“problem of determining whether a mathematical statement is true or false”

• The theories of computability and complexity are closely related.

• In complexity theory, the objective is to classify problems as easy ones and hard ones.

• In computability theory the classification of problems is by those that are solvable and those that are not.

7

Page 8: INTRODUCTION TO THE THEORY OF COMPUTATION

AUTOMATA THEORY

• Automata theory deals with the definitions and properties of mathematical models of computation.

• Mathematical models:• the finite automaton model, is used in text

processing, compilers, and hardware design.• the context-free grammar model, is used in

programming languages and artificial intelligence.

8

Page 9: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• SETS: A set is a group of objects represented as a unit. (any type of object, including numbers, symbols, and even other sets)

• The objects in a set are called its elements or members. {7, 21, 57} – the set contains the elements 7, 21, and 57.

- The symbols denote set membership and nonmembership.

- A is a subset of B, written if every member of A also is a member of B.A is a proper subset of B, written , if A is a subset of B and not equal to

B.

Ex.: The set {1, 2} is a proper subset of {1, 2, 3}.

9

Page 10: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

- multiset - ?

- infinite set - ?

- The set of natural numbers N is written {1,2,3,...}.

- The set of integers Z is written {... ,-2,-1,0,1,2,…}.- The set with 0 members is called the empty set and is

written Ø.10

Page 11: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

11

Page 12: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

12

Page 13: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

SEQUENCES AND TUPLESA sequence of objects is a list of these objects in

some order.– For example, the sequence 7, 21, 57 would be

written (7, 21, 57).

• In a set the order doesn't matter, but in a sequence it does. Hence (7,21, 57) is not the same as (57, 7, 21).

13

Page 14: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• Sequences may be finite or infinite. Finite sequences often are called tuples. A sequence with k elements is a k-tuple.

– For example, (7,21, 57) is a 3 -tuple. A 2-tuple is also called a pair.

14

Page 15: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• Sets and sequences may appear as elements of other sets and sequences. – For example, the power set of A is the set of all

subsets of A. If A is the set {0, 1}, the power set of A is the set {Ø, {0}, {1}, {0, 1} }.

• The set of all pairs whose elements are 0s and 1s is { (0, 0), (0,1), (1, 0), (1,1) }.

15

Page 16: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• If A and B are two sets, the Cartesian product or cross product of A and B, written A x B, is the set of all pairs wherein the first element is a member of A and the second element is a member of B.

EXAMPLE: If A = {1, 2} and B {x, y, z}, A x B { (1, x), (1, y), (1, z), (2, x), (2, y), (2, z) }.

16

Page 17: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

FUNCTIONS AND RELATIONS• A function is an object that sets up an input-

output relationship. • A function takes an input and produces an

output.f(a) = b

– If f is a function whose output value is b when the input value is a.

17

Page 18: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• A function also is called a mapping, and, if f (a) = b, we say that f maps a to b.

– For example, the absolute value function abs takes a number x as input and returns x:

– if x is positive or negative.

abs(2) = abs(-2) = 2.

18

Page 19: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• The set of possible inputs to the function is called its domain.

• The outputs of a function come from a set called its range.

• The notation for saying that f is a function with domain D and range R is f: DR

• function abs: Z Z.

19

Page 20: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

Example: – This function adds 1 to its input and then outputs

the result modulo 5. A number modulo m is the remainder after division by m. Consider the functions: {0,1, 2, 3, 4} {O, 1, 2, 3, 4}.

20

n f (n)

0 11 22 33 44 0

Page 21: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

Example: The function g is the addition function modulo 4.

• for some sets A1, ... Ak, the input to f is a k-tuple (a1, a2 , ... , ak) and we call the ai the arguments to f. A function with k arguments is called a k-ary function, and k is called the arity of the function. If k is 1, f has a single argument and f is called a unary function. If k is 2, f is a binary function.

21

Page 22: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• infix notation - usually is written in infix notation with the + symbol between its two arguments. a + b

• prefix notation add(a, b). Or + a b• postfix notation a b +• An example of such a function notation would be

S(1,3) in which the function S denotes addition: S(1,3) = 1+3 = 4.

• A predicate or property is a function whose range is {TRUE, FALSE}.

22

Page 23: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

A property whose domain is a set of k-tuples A x …. x A is called a relation.

S = {a є DI P(a) = TRUE} ??? equivalence relation???23

Page 24: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

GRAPHS• An undirected graph, or simply a

graph, is a set of points with lines connecting some of the points. The points are called nodes or vertices, and the lines are called edges.

• The number of edges at a particular node is the degree of that node.

• Graphs frequently are used to represent data. (labeled graph)

• Subgraph – subset of the set(s)24

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

formal description ???

Page 25: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• A path in a graph is a sequence of nodes connected by edges. A simple path is a path that doesn't repeat any nodes.

• A graph is connected if every two nodes have a path between them.

• A path is a cycle if it starts and ends in the same node.

• A simple cycle is one that contains at least three nodes and repeats only the first and last nodes.

• A graph is a tree if it is connected and has no simple cycles. A tree may contain a specially designated node called the root.

• The nodes of degree =>1 in a tree, other than the root, are called the leaves of the tree.

25

Page 26: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• directed graph - If it has arrows instead of lines.

• The number of arrows pointing from a particular node is the outdegree of that node, and the number of arrows pointing to a particular node is the indegree.

26

The formal description of the graph is

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

Page 27: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

STRINGS AND LANGUAGES

“A language is a set of strings”

- An alphabet is any nonempty finite set.- The members of the alphabet are the symbols of the

alphabet.- We generally use capital Greek letters ∑ and Γ to designate

alphabets and a typewriter font for symbols from an alphabet.

- Examples of alphabets:• ∑1 = {0,1}; ∑2

={a,b,c,d,e,f,g.hij,k,lm,n,o,p,q,r,s,t,u,v,w,x,y,z};• Γ = {0,1,x,y,z}.

27

Page 28: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• A string over an alphabet is a finite sequence of symbols from that alphabet, usually written next to one another and not separated by commas.• If ∑1 = {0,1}, then 01001 is a string over ∑1.

• If ω is a string over ∑, the length of ω , written Iωl, is the number of symbols that it contains.

• The string of length zero is called the empty string and is written є

• The reverse of ω , written ωR, is the string obtained by writing ω in the opposite order.

• Thus the lexicographic ordering of all strings over the alphabet {0,1} is (є, O, 1, 00, 01, 10, 11,000,. .. ).

28

Page 29: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

BOOLEAN LOGIC

• Boolean logic is a mathematical system built around the two values TRUE and FALSE.

• The values TRUE and FALSE are called the Boolean values and are often represented by the values 1 and 0.

• Boolean operations: negation or NOT (¬), conjunction, or AND (Λ), disjunction or OR (v)

29

Page 30: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

• Example, if P is the Boolean value representing the truth of the statement "the sun is shining" and Q represents the truth of the statement "today is Monday", we may write P Λ Q to represent the truth value of the statement "the sun is shining and today is Monday“

• The exclusive or, or XOR, operation is designated by the Φ symbol and is 1 if either but not both of its two operands are 1.

• The equality operation, written with the symbol ↔, is 1 if both of its operands have the same value.

• Finally, the implication operation is designated by the symbol → and is 0 if its first operand is 1 and its second operand is 0; otherwise → is 1.

30

Page 31: INTRODUCTION TO THE THEORY OF COMPUTATION

MATHEMATICAL NOTIONS AND TERMINOLOGY

31