Archive for March, 2006

The Computational World Post-”Turing-Post”

I knew very little about computer science before taking this class. I, like many others, was under the impression that all computer programs were incredibly complex. Even though I was sort of familiar with the concept of binary code, I never imagined a program that manipulates a simple series of zeros and ones could be so powerful. It basically consists of an endless tape containing a set of zeros and ones. A finite set of instructions tells the program where to start and how to respond to the numbers it scans. At first, the program seems unimpressive; the concept of replacing a zero with a one or a one with a zero does not exactly inspire awe. Yet Turing-Post programs are ingenious in their simplicity. I mean, it’s astounding when you realize that they can run any other program ever invented.

The invention of the Turing machine was a momentous occasion in the advancement of computer science; the program has become an integral part of modern computing methods. The Turing-Post program is not without its flaws, however. The most glaring problem is the fact that the program cannot make rational decisions as humans do. When applied to real-world situations, the program cannot think or make judgments – it can only do what is has been instructed to. Another drawback is the halting problem. We cannot know before the program is running if it will halt at some point during the process. Even with these drawbacks, it is obvious that the Turing model has changed the way the world operates. Everything from the World Wide Web to sending coded military messages would be unimaginable without the brilliance of the Turing-Post program.

Touring-Post Underestimation

I have to admit, when I first learned about the Turing-Post machine I wasn’t very impressed. So I can replace zeros with ones, what gives? I told one of my friends about the hype surrounding this machine, hoping that he could help teach me what was so darn important about this model. He is a very skilled programmer and ended up writing a program to show me one application of the TP machine. Online, there are several sites that allow you to run your program through the TP machine. With the TP machine, which will run all valid programs, would tell us whether our program was valid. If it didn’t run, we’d know for sure we had a problem. Our program ran, but then experimented with several variations of the code that would not run. I must tell you that despite its simplicity, this program is remarkably useful. Universal TP machines, are also very cool as they have the ability to run operating systems that run programs within them. I now realize how remarkable it is that such a complex computer program is able to be reduced to seven lines of code. Further, the way in which the program is able to use these simple instructions to operate very complicated programs is beyond me.

The Human Turing Machine

It is amazing to think that a machine could input any information and spit out an output appropriate those those inputs.  There have been several blogs written about the siplicity of the machine and I definitely have to agree with that.  It is difficult to imagine a Universal Turing Post machine because we ourseleves act as a sort of Turing Post mechanism.  We register certain inputs, and, admittedly with more processing, come out with a response.  The Turing Post might be slightly more simplistic than the actions of a human being, but one could imagine a more complex post one day being able to act just like a human.

Of course, there is the halting problem of the Turing Post machine that makes the Post’s adaptation into a simulated human thought process impossible, but it is fun to imagine those sorts of possibilities.  In reading the story about the German Code machine, we can see how important Turing Posts can be to so many different aspects of deciphering inputs.  The problem is that a human being can take a punch in the shoulder and the result will be physical or emotional pain.  A turing post could not really take those feelings into consideration, but might just generally result in a punch back.  There are no specifications to allow the machine to decipher messages, just to output them to allow us to decipher their meaning.

The Ingenuity of Touring Post Programs

I first learned about Alan Touring in an engineering class I took last semester. We learned how Touring’s contributions, coupled with those from Von Neumann, led to the foundation of modern computers and computer programs. When I learned however,  how simple these Touring Post-Programs really are, and yet how much they can accomplish, I was truly astounded. Composed very simply of 0s and 1s, these programs are capable of literally taking and running pretty much any other program. The idea is so simple, yet it can have so many complex implications. 

When we ran examples of Touring Post programs in class they seemed so simple, yet they changed my way completely of thinking about computers. They use a completely binary system (0s and 1s) and yet can run anything. The examples of this program really helped me to see how words and indeed the world can be expressed through simple combinations of numbers containing just 0s and 1s. The Touring Post Program really was a stepping stone toward leading us into a more computational universe. Now that nearly everything can be expressed through combinations of numbers, we have enterred an entirely new age of binary systems and have made breakthroughs in the computational world from which we will never look back.

Posting Post-Turing

     Upon been introduced to the Turing-Post program, I was impressed by both its simplicity (because it is made up of an erasable, infinite tape and only consists of the two settings “0” and “1”) and its ability to technically run any other program in existence.  Basically all other computer programs and languages can be simplified into a Turing-Post program.  Not only does the Turing-Post program astound me, but the creation of the program and the man, Alan Turing, who came up with the idea, impresses me even more.  Who would have thought that such a program consisting of a mere six simple steps would be able to provide the foundation for the computers and machines that we rely heavily on today?

 

     It is hard to imagine what the world would be like without the modern computer and other Turing machines, and it is mind-boggling to think that something so simple can do so much.  We soon learned, though, that the Turing-Post machine, despite its potentially endless capabilities, does have its limitations.  Firstly, it is unable to function as a human can function.  Reducing all tasks to the simplicity of the Turing-Post program would be foolish and unrealistic.  Humans are able to think flexibly unlike any Turing machine.  There is also the halting issue, in which we are unable to tell, based on the initial inputted data in the Turing-Post program, whether or not the program will ever halt.  This just goes to show that everything in our world cannot be translated into a program and predicted, and that we should be skeptical of theories that attempt to predict everything in our universe, such as the Theory of Everything.  

Touring the Turing-Post Programs

Before I entered this course computation seemed very intimidating in its complexity.  Now that we are a couple of weeks into this course I realize that this type of computation, although certainly still intimidating, can be deciphered.  The Turing machines were perhaps my biggest breakthrough in this regard.  I do not have much background with programming or computers, so the code used to write software and the working of the hardware always eluded me.  The Turing machines showed how complex computation could be achieved within a very simple system.  This system uses only a handful of commands and an infinitely long one-celled tape composed purely of 0s and 1s, but using these tools can do seemingly impossible things.  It is a universal program that can simulate any program.  It can perform incredibly challenging calculations.  It can reproduce itself forever.  Such range and got me thinking what exactly it couldn’t do.  The Halting Problem was perhaps the most disappointing case.  Some questions simply elude the Turing machine.  It can never conclusively determine whether a Turing machine will halt.

But the Turing machine also has other limitations and lessons in my eyes that are not directly tied to its limitations. First, the Turing-Post programs tend to make me try to oversimplify computation.  This is obviously foolish.  Second, we must remind ourselves that although computation can seemingly be simplified to a very simple code we as human beings are still doing things that are far beyond the capabilities of our most sophisticated machines.

It says “Write Post”….haha…so i will write about the Turing Post

What amazes me about the Turing Post program is its simplicity and yet its power. According to what I have learned in class, the Turing Post program can represent any other computational program through the use of just 6 operations and two settings, 0 and 1. In essence, all computational languages are reducible to Turing Post. Yet such simplicity leads to such complex “behaviors” or actions. Likewise, life on the planet is based on simple operations and settings. There are only two settings in our DNA as well: A-T and G-C. 0s and 1s can be combined in 4 ways: 00, 01, 10, and 11. Likewise, when DNA is transcribed, it can be done so in 4 ways. A-T or T-A and G-C or C-G combinations. Could I argue that our DNA is digital?! Eh…but still, the Turing Post is as natural and reasonable as nature/biology itself.

However, our biology is far more sophisticated. DNA is the data that creates things such as the neurons that send signals throughout the body, much like wires in hardware. Though neurons in our brain fire much slower than wired circuits, the brain has the capacity to parallel process on given inputs resulting a greater processing power. Turing Post programs operate in a 1 dimensional fashion, a major limitation.

The beauty of Turing Post program is also limited by the halting problem. Since the data on a string of data can go on for infinity, it is impossible to tell if the program will ever halt, or in other words, fail to continue operating on the data given. We discussed that not even simulations of programs can determine whether a program will halt. This is so obvious because a simulation itself is a program, and therefore susceptible to the halting problem.