You are on page 1of 19

CSC-4890

Introduction to the Theory of Computation

Prof. Busch - LSU

General Info about Course


Instructor: Konstantin Busch Book: Introduction to the Theory of Computation Michael Sipser, 2nd edition

Prof. Busch - LSU

Course Goals
Provide computation Models

Analyze power of Models


Answer Intractability questions: What computational problems can each model solve? Answer Time Complexity questions: How much time we need to solve the problems?
Prof. Busch - LSU 3

A widely accepted model of computation

CPU

memory

Prof. Busch - LSU

The different components of memory


temporary memory input

CPU
output

Program memory

Prof. Busch - LSU

Example:
temporary memory

f ( x) x

input

CPU
Program memory compute compute output

xx

x x
2
Prof. Busch - LSU 6

f ( x) x
temporary memory

input

x2
CPU
Program memory compute compute output

xx

x x
2
Prof. Busch - LSU 7

temporary memory

z 2*2 4 f ( x) z * 2 8

f ( x) x

input

x2
CPU
Program memory compute compute output

xx

x x
2
Prof. Busch - LSU 8

temporary memory

z 2*2 4 f ( x) z * 2 8

f ( x) x

input

x2
CPU
Program memory compute compute

f ( x) 8

xx

output

x x
2
Prof. Busch - LSU 9

Automaton
temporary memory Automaton

input

CPU
output

Program memory

Prof. Busch - LSU

10

Automaton
temporary memory Automaton

input output

transition

state

CPU+ProgramMem = States + Transitions


Prof. Busch - LSU 11

Different Kinds of Automata


Automata are distinguished by the temporary memory Finite Automata: Pushdown Automata: Turing Machines: no temporary memory stack random access memory

Prof. Busch - LSU

12

Memory affects computational power: More flexible memory results to The solution of more computational problems

Prof. Busch - LSU

13

Finite Automaton
temporary memory

Finite Automaton

input output

Example: Elevators, Vending Machines,


Lexical Analyzers (small computing power)
Prof. Busch - LSU 14

Temp. memory

Pushdown Automaton
Stack Push, Pop

Pushdown Automaton

input output

Example: Parsers for Programming Languages (medium computing power)


Prof. Busch - LSU 15

Turing Machine
Temp. memory

Random Access Memory

Turing Machine

input output

Examples: Any Algorithm (highest known computing power)


Prof. Busch - LSU 16

Power of Automata
Simple problems More complex problems Hardest problems

Finite Automata

Pushdown Automata

Turing Machine

Less power

More power
Solve more computational problems
Prof. Busch - LSU 17

Turing Machine is the most powerful known computational model


Question: can Turing Machines solve all computational problems?

Answer: NO (there are unsolvable problems)


Prof. Busch - LSU 18

Time Complexity of Computational Problems: P problems:


(Polynomial time problems)

Solved in polynomial time

NP-complete problems:
(Non-deterministic Polynomial time problems)

Believed to take exponential time to be solved


Prof. Busch - LSU 19

You might also like