30
1 CS 3261 Computability Course Summary Zeph Grunschlag

CS 3261 Computability Course Summary

  • Upload
    ganit

  • View
    43

  • Download
    2

Embed Size (px)

DESCRIPTION

CS 3261 Computability Course Summary. Zeph Grunschlag. Announcements. Last hw due now Look out for a final exam practice problems coming out over the weekend I will hold final review session on Tuesday 12/11, 3-5 pm, 833 Mudd. Pick-up final hw’s. - PowerPoint PPT Presentation

Citation preview

Page 1: CS 3261 Computability  Course Summary

1

CS 3261 Computability Course Summary

Zeph Grunschlag

Page 2: CS 3261 Computability  Course Summary

2

Announcements

Last hw due nowLook out for a final exam practice problems coming out over the weekend I will hold final review session on Tuesday 12/11, 3-5 pm, 833 Mudd. Pick-up final hw’s. I will hold daily OH’s next week and Monday 12/17, 12:00-1:30 except Thursday, 12/13 Final exam: Tuesday 12/18, 9-12, 833 Mudd

Page 3: CS 3261 Computability  Course Summary

3

Computability ConceptsAIM: Reduce Computer Science to

its bare theoretical essentials.

APPROACH: Algorithmic Problems

Formal Languages

Page 4: CS 3261 Computability  Course Summary

4

Formal LanguagesFundamental insight of Theoretical CS:By understanding how formal languages can

be computed, will understand how any algorithmic problem can be solved.

Algorithmic input/output problems involve creating procedures for procuring outputs from given inputs. Can be turned into a formal languages by re-writing as yes/no questions.

EG: “Find the shortest path…” becomes“Is there a path shorter than…”

Page 5: CS 3261 Computability  Course Summary

5

Computability ConceptsAIM: Reduce Computer Science to its bare

theoretical essentials.Algorithmic Problems Formal LanguagesComputers Graph based machine models

Questions to investigate: 1) What sorts of problems can be solved by each

computer model? 2) What languages does each model accept?3) What are the practical limits on what a computer

can do?

Page 6: CS 3261 Computability  Course Summary

6

Abstract Machine ModelsDFA’s

DFA’s model computers with strictly bounded memory.

1

3

2

a

b

b

a

a,b

Page 7: CS 3261 Computability  Course Summary

7

Abstract Machine ModelsDFA’s

Q: What’s the accepted language?

1

3

2

a

b

b

a

a,b

Page 8: CS 3261 Computability  Course Summary

8

Abstract Machine ModelsDFA’s

A: a*b+

1

3

2

a

b

b

a

a,b

Page 9: CS 3261 Computability  Course Summary

9

Abstract Machine ModelsNFA’s

Nondeterminism is a powerful concept. Often 1st view of a problem is nondeterministic.

1

3

2

a

a

b

a

a,b

Page 10: CS 3261 Computability  Course Summary

10

Abstract Machine ModelsNFA’s

Q: What’s the accepted language?

1

3

2

a

a

b

a

a,b

Page 11: CS 3261 Computability  Course Summary

11

Abstract Machine ModelsNFA’s

A: a+b*

1

3

2

a

a

b

a

a,b

Page 12: CS 3261 Computability  Course Summary

12

Abstract Machine ModelsPDA’s

By allowing a pushdown stack, increase flexibility and accept more languages.

1 2

3

a,X

b,X

0

$ $

Page 13: CS 3261 Computability  Course Summary

13

Abstract Machine ModelsPDA’s

Q: What’s the accepted language?

1 2

3

a,X

b,X

0

$ $

Page 14: CS 3261 Computability  Course Summary

14

Abstract Machine ModelsPDA’s

A: {an bn | n 0}

1 2

3

a,X

b,X

0

$ $

Page 15: CS 3261 Computability  Course Summary

15

Abstract Machine ModelsTM’s

By allowing a read-write tape, amazingly get most general possible computer model!

1 2

XR

0

1$,RL acc

34XL

$L

1L

$R

1X,R

1R

XR

XL

5 1L

1|XL

Page 16: CS 3261 Computability  Course Summary

16

Abstract Machine ModelsTM’s

Q: What’s the accepted language?

1 2

XR

0

1$,RL acc

34XL

$L

1L

$R

1X,R

1R

XR

XL

5 1L

1|XL

Page 17: CS 3261 Computability  Course Summary

17

Abstract Machine ModelsTM’s

A: Unary powers of 2.

1 2

XR

0

1$,RL acc

34XL

$L

1L

$R

1X,R

1R

XR

XL

5 1L

1|XL

Page 18: CS 3261 Computability  Course Summary

18

I/O VersionsEach class of languages has its own I/O

version. Regular: Finite State Transducers More powerful models exist (e.g. with

’s)

Context free: (didn’t study any) “Compilers”: Input is a string, output is

a parse-tree (or even executable code)

Turing Machines: I/O TM’s

Page 19: CS 3261 Computability  Course Summary

19

Robust Formal Language Classes

Turns out these models are very robust Many equivalent ways to generate same classes: Regular languages

FA’s, NFA’s, Regular Expressions, Right-Linear Grammars Context Free Languages

PDA’s, Context Free Grammars Recognizable languages –Church-Turing thesis

TM’s, k-tape machines, k-track machines NTM’s, Queue Machines, 2-Stack PDA’s, RAM’s, Unrestricted Grammars

Complexity classes P and NP For NP: Poly. NTM’s, Poly. Verifiers, Poly. Proofs

We learned algorithms for converting between most of the different views

Language classes closed under natural operations.

Page 20: CS 3261 Computability  Course Summary

20

System DesignOften computer system creation involves designing

a formal language to describe system communication. Components receive communication streams and have to effect actions based on these. Computability theory can help drive design at a high level.

EG: Might come up with a communication stream that’s seems like regular language. Could then show that it isn’t using pumping lemma. With this knowledge, final design tweaks original to obtain a regular language and therefore DFA based ultra-fast and super-reliable system components!

Page 21: CS 3261 Computability  Course Summary

21

Negative Examples

As above, it is very important to be able to tell when particular languages cannot be accepted by a certain model of computation. We have several tools at our disposal: Irregularity: pumping lemma (PL) Non-Context-Freeness: CFPL Undecidability: Reductions from undecidable languages Intractability: Poly-time reduction from NP-hard languages

Page 22: CS 3261 Computability  Course Summary

22

System Design

Learned useful concepts that can help modularization when designing systems. Often can express a language as a union, intersection, negation, concatenation or Kleene-* of simpler languages. More complex language may be put together by using simple components along with “off the shelf” reconstruction techniques:

Page 23: CS 3261 Computability  Course Summary

Language Design

Class Negate Concat.

Kleene-*

DFA’sCartesianProduct

Accept Non-

accepts

NFA’s ParallelCartesia

n Product

Serial Loop

PDA’s Parallel Serial Loop

Deciders Run in parallel

Accept Non-

accepts

Break string

up

Recursive

algorithm

Recognizers Run in parallel ” ”

Page 24: CS 3261 Computability  Course Summary

24

Language Class Hierarchy

AllREC = accepted by TM

DEC = decided by TMContext Free

Deterministic Context Free

Regular = accepted by FA’s

Finite languages

Page 25: CS 3261 Computability  Course Summary

25

KnownComplexity Hierarchy

Get the following RAM hierarchy diagram: REC

DECP

TIME(n)

CFLTIME(n3)

REG

EQREX

Page 26: CS 3261 Computability  Course Summary

26

UnknownComplexity Hierarchy

DecidableNP

NP but not NP-hard

P

Finite languages

Does anythingexist here?

Page 27: CS 3261 Computability  Course Summary

27

Conjectured HierarchyInside of DEC most conjecture:

DEC

NP P co-NPNPcomplete

PRIMESAT

Page 28: CS 3261 Computability  Course Summary

28

Follow-ups to Computability

Related Electives: Analysis of Algorithms 4231 (fall) Computational Complexity 4236 (spring) Cryptography –generic course no. 4995

(this Spring with Michael Rabin!!!)

Courses Requiring Computability: Programming Languages and

Translators 4115 (every semester) Compilers 4117 (this Spring with Al

Aho!!!) Portions of several other courses

Page 29: CS 3261 Computability  Course Summary

29

Final Remarks

With the horrors at the beginning of the semester….

Page 30: CS 3261 Computability  Course Summary

30

Final Remarks

Thanks for putting in the effort and

helping make this my best semester

thus far!