RU beehive logo ITEC dept promo banner
ITEC 420
2020fall
ibarland

This Course's Story
14 weeks in 25min

What are the limits of computation?

Once upon a time, some people were wondering what the limits of computing are — that is, what problems can a machine solve? We'll call them Alonzo and Alan.

To think about this precisely, we need to have a model for (a) what a machine is, and (b) what a problem is. This course looks at several different models, and proves how they have differing (or same) powers (“expressibility”).

examples of problems

Here are some examples of what we’ll consider "problems"; they are simple, and clearly something one would hope a machine should be able to solve:

Note what all these have in common: the input is a string, and the result is a boolean.
Note: Putting it differently: each problem is a subset of all possible strings — the strings that have a yes answer to the question posed.
This is a bit different than what we sometimes think of as a "problem" in computer science, since it omits things like Compute the square root of a number or find the shortest path in a graph. We'll talk later about how to transform such problems into yes/no decision problems.

Things that are not problems, in Alonzo and Alan's formulation:

a good practice: Whenever you encounter a definition, in your studies, think up several things that meet the definition, and several things that don't.

examples of models-of-computation

We'll these models later in detail. But if you want to

Now we're ready to give away all the results from the next 14 weeks. (However, we'll spend that time proving the entries in this table.)

\Problem
Model\
state-abbr?b(ba*b)*?balanced-parens?anbncnJava-program-syntactic?Java-program-type-checks?Halts?
DFA
PDA
TM


Quick intro:

Examples of regular-expressions: For b(ba*b)* :


1 For all the machine-models listed, we'll look at both deterministic and non-deterministic versions. This means that from the machine's current state, there can be several possible next-states. If any sequence leads the machine to answer "yes", then we say the machine's answer is "yes". Note that this is asymmetric: even if many sequences lead the non-deterministic machine to answer "no", it only takes a single "yes" sequence to make the final answer "yes".      

logo for creative commons by-attribution license
This page licensed CC-BY 4.0 Ian Barland
Page last generated
Please mail any suggestions
(incl. typos, broken links)
to ibarlandradford.edu
Rendered by Racket.