Top Banner
1 CS 3261 Computability Course Summary Zeph Grunschlag
30

CS 3261 Computability Course Summary

Jan 16, 2016

Download

Documents

ganit

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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!