Why I Think About Turing Machines

Tim Menzies
tim@menzies.us
April 5, 2008
A presentation to the NSF CODEWORKS workshop

Introduction

CS and UI is the art of building glass walls to hide users from the computational cliff. Hopefully, most users are blind to how narrow is their treacherous path. But without the language of the Turing machine, you are blind to certain restrictions to writing, unable to explain why your system is broken, unable to avoid that problem in the fture.

But what is a Turing machine?


http://rendell-attic.org/gol/tm.htm

Should we talk about them? Hell, yes. Otherwise, we are blind to something that really matters.

"Keep the pen moving. Editing stfiles creativity. you can always go over something later to fix the spelings and gramer grammer."

"A lot of people think that creativity writing is assocaited with an anything goes mentality."

"The language needs to work."

And, as a computer scientist, I would add the language must generate sentences that runs and runs fast. Brian Sower's work with the gaming industry taught me the vital importance of striving to write what runs fast (so I disagree with Alan: we write with consequences and there are some consequences I want to avoid).

So here's an example of language blinding its users to an essential dimension in a problem. Bees on returning to the hive must report where they've been. In response to "Where's the honey, honey?", they do a little dance.

If the honey is on top of a tower, and one bee lucks onto it, then a little while later you'll find bees buzzing round the foot of the tower, puzzled. If they ask "where's that honey, honey?" there is no answer because their language makes them blind to an essentional feature of the problem, namely the third dimension. The problem is that the bee's dance gives clues to the direction of the honey, how good it is, and how far away it is but not the height.

So what's my point? Well, stay with me here. Begin lecture on comptuational complexity.

Complexity and Turing Machines

Moore's Law is not enough. There are many problems facing us that laugh in the face of the Moore's tiny sky slope.

(Notes from Scott Aaronson:)

So What?

It turns out that seemingly minor changes to a problem, to the language we allow when writing knowledge, can be catestrophic since it throws you out of P and into very slow NP-hard. For example "Applications of Abduction: Testing Very Long Qualitative Simulations" by T.J. Menzies and R.F. Cohen and S. Waugh and S. Goss. IEEE Transactions of Data and Knowledge Engineering pages 1362-1375 November/December 2003 . Available from http://menzies.us/pdf/97iedge.pdf.

That's one example. There are many more.

The Lesson

So, the language not only needs to work, but it must generate sentences that runs and runs fast. knowledge of the Turing machine informs what you can't say such that:

So, we not only write, but we write what we hope will run. As a computer scientist, I want to give you a keyboard / environment where chapter1 runs as fast as chapters 1 to 100. But you have to let me tape over some of the keys.

Now, how successfully have I explained thirty years of computational theory? Are you still a blind bee, unaware of dimensions that limit the execution of your creations? Or will you know watch for those computational cliffs / limits to expression, and exploit them?


Creative Commons License
This work is licensed under a
Creative Commons Attribution-Noncommercial 3.0 United States License.