Introduction

Download Report

Transcript Introduction

CSC-4890 Introduction to the Theory of Computation

Costas Busch - LSU 1

General Info about Course

Instructor: Konstantin (Costas) Busch • Books Introduction to the Theory of Computation, Michael Sipser • An Introduction to Formal Languages and Automata, Peter Linz Costas Busch - LSU 2

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?

Costas Busch - LSU 3

A widely accepted model of computation CPU memory Costas Busch - LSU 4

The different components of memory temporary memory CPU input output Program memory Costas Busch - LSU 5

Example:

f

(

x

) 

x

3 temporary memory CPU Program memory compute

x

x

compute

x

2 

x

Costas Busch - LSU input output 6

f

(

x

) 

x

3 temporary memory CPU Program memory compute

x

x

compute

x

2 

x

Costas Busch - LSU

x

input  2 output 7

temporary memory

z

 2 * 2  4

f

(

x

) 

z

* 2  8

f

(

x

) CPU Program memory compute

x

x

compute

x

2 

x

Costas Busch - LSU

x

input  2 output 

x

3 8

temporary memory

z

 2 * 2  4

f

(

x

) 

z

* 2  8

f

(

x

) CPU Program memory compute

x

x

compute

x

2 

x

Costas Busch - LSU

x

input  2

f

(

x

)  output 8 

x

3 9

Automaton

temporary memory Automaton input CPU output Program memory Costas Busch - LSU 10

Automaton

temporary memory Automaton input output state transition CPU+ProgramMem = States + Transitions Costas Busch - LSU 11

Different Kinds of Automata

Automata are distinguished by the temporary memory • Finite Automata: no temporary memory • Pushdown Automata: stack • Turing Machines: random access memory Costas Busch - LSU 12

Memory affects computational power: More flexible memory results to The solution of more computational problems Costas Busch - LSU 13

Finite Automaton temporary memory Finite Automaton input output Example: Elevators, Vending Machines, Lexical Analyzers (small computing power) Costas Busch - LSU 14

Temp.

memory Pushdown Automaton

Stack

Push, Pop Pushdown Automaton input output Example: Parsers for Programming Languages (medium computing power) Costas Busch - LSU 15

Turing Machine Temp.

memory Random Access Memory Turing Machine input output Examples: Any Algorithm (highest known computing power) Costas Busch - LSU 16

Simple problems Finite Automata

Power of Automata

More complex problems Hardest problems Pushdown Automata Turing Machine Less power Solve more More power computational problems Costas 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) Costas Busch - LSU 18

Time Complexity of Computational Problems: P problems: ( P olynomial time problems) Solved in polynomial time NP -complete problems: ( N on-deterministic P olynomial time problems) Believed to take exponential time to be solved Costas Busch - LSU 19