You are on page 1of 17

CS311

Automata and Complexity Theory

Admistrative Stuff
Instructor: Shahab Baqai (baqai@lums.edu.pk)
Room # 428, Ext 4428
Lectures:

Mon & Wed 1530 1710 hrs. A-9

Tutorials:

As & When needed

Office Hrs: Mon & Wed 1720 1820 hrs


TAs:

3~4 (TBA) Check course web for


office hours etc

Prerequisite: CS211 - Discrete Mathematics


Website:

http://suraj.lums.edu.pk/~cs311a04

Admistrative Stuff (cont.)


Questions: We prefer that you post your
question to the class discussion form. The TA
will try to respond to all questions on the form
within 24 hours (48 hours Max). This way
everyone gets the benefit of reading the
replies, and it helps to reduce the number of
repeat questions.
For questions that are not suitable to be posted
to the newsgroup (e.g. questions about your
grade), you can email your TA directly although
there is no guarantee of when you will receive a
reply.

Course Organization
Text Book: SJ. E. Hopcroft, R. Motwani, and
J. D. Ullman Introduction to Automata Theory,
Languages, and Computation, Second Edition,
Addison-Wesley, New York, 2001.
Sections:
There are two parallel sections.
The material covered in each will be the same.
The 6~8 assignments, midterm and Final will be
common. Each section may have different quizzes.
Weights:

Homework
Quizzes
Midterm
Final Exam

06~08%
17~19%
35%
40%

What we will do
Automata = abstract computing devices
Turing studied Turing Machines (= computers)
before there were any real computers
We will also look at simpler devices than
Turing machines (Finite State Automata,
Pushdown Automata, . . . ), and specification
means, such as grammars and regular expressions.

NP-hardness = what cannot be efficiently computed

Computation

CPU

memory

temporary memory
input memory
CPU
output memory
Program memory

Example:

f ( x) x

temporary memory
input memory
CPU
output memory

Program memory
compute
compute

xx
2

x x

f ( x) x
temporary memory

input memory

x2
CPU
output memory

Program memory
compute
compute

xx
2

x x

temporary memory

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

f ( x) x

input memory

x2
CPU
output memory

Program memory
compute
compute

xx
2

x x

temporary memory

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

f ( x) x

input memory

x2
CPU
Program memory
compute
compute

xx
2

x x

f ( x) 8
output memory

Automaton
temporary memory
Automaton

input memory
CPU
output memory

Program memory

Different Kinds of Automata


Automata are distinguished by the temporary memory
Finite Automata:

no temporary memory

Pushdown Automata:

stack

Turing Machines:

random access memory

Finite Automaton
temporary memory

Finite
Automaton

Example: Vending Machines


(small computing power)

input memory
output memory

Pushdown Automaton
Stack

Pushdown
Automaton

Push, Pop

input memory
output memory

Example: Compilers for Programming Languages


(medium computing power)

Turing Machine
Random Access Memory

Turing
Machine

input memory
output memory

Examples: Any Algorithm


(highest computing power)

Power of Automata

Finite

Pushdown

Turing

Automata

Automata

Machine

Less power

More power
Solve more
computational problems

You might also like