theory of computing fall 2019 - university of notre damecpennycu/2019/assets/fall/toc/01 theory...

12
Theory of Computing Fall 2019 Dr. Corey Pennycuff

Upload: others

Post on 23-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Theory of ComputingFall 2019

Dr. Corey Pennycuff

Page 2: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

What isComputer Science?

How is it different from

Computer Programming?

Ultimately, this is a

Philosophical Question!

What is a computer?

What does it mean to

compute?

Page 3: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

“I didn’t say that!”

“Computer Science is no

more about computers than

Astronomy is about

telescopes!”

-Edsger W. Dijkstra

Page 4: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Computability and Decidability

Given a computational problem:

● Is it possible to compute the

answer?

● How do you know?

● Is it possible to know whether

or not we can know?

● What type of machine could

(or could not) perform the

computation?

Down the rabbit hole…

Page 5: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Post’s Correspondence Problem - 1946Wikipedia: https://en.wikipedia.org/wiki/Post_correspondence_problem

Game: https://www3.nd.edu/~dchiang/teaching/puzzles/post.html

Special thanks to Dr. Chiang for writing this implementation!

An “easy” Decision problem.

How can we write a program to solve this problem?

Page 6: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

HILBERT’S ENTSCHEIDUNGSPROBLEM - 1928

Given a statement ϕ of first order

logic and some axioms,

is there an algorithm

that decides whether ϕ is

provable from the axioms?

Page 7: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Halting Problem - 1936https://en.wikipedia.org/wiki/Halting_problem

In computability theory, the halting problem is the

problem of determining, from a description of an

arbitrary computer program and an input, whether

the program will finish running (i.e., halt) or

continue to run forever.

Page 8: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Alan Turing (1912-1954)Influential in development of Theoretical Computer Science

Formalized concepts of Algorithms and Computation

Developed the idea of the Turing Machine

Portrayed by Benedict Cumberbatch.

Page 9: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Turing MachinePowerful abstraction

Can compute anything that is computable

Doesn’t need electricity

https://www.youtube.com/watch?v=vo8izCKHiF0

https://www.youtube.com/watch?v=E3keLeMwfHY

&index=2&list=PLF87F259C658F6872&t=0s

Page 10: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

Problem:Turing machines are too powerful!!!

(first world problems)

Page 11: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

We Must Restrict Our Definitions!Turing Machines

Deterministic Context-Free Languages

Pushdown Automata

Context-Free Grammars

Regular Languages

Finite Automata

Begin with the simplest.

Build to the most powerful.

Understand the limitations.

Page 12: Theory of Computing Fall 2019 - University of Notre Damecpennycu/2019/assets/fall/TOC/01 Theory of... · Computer Programming? Ultimately, this is a Philosophical Question! ... Deterministic

But…Can a Turing machine solve Post’s Correspondence Problem?

How can you know for sure?