I promised last week to talk some science, and so I shall!
What is computation?
You have a problem you want solved, a question to which you want the answer. You can study the nature of your problem, and identify the maths behind it, and create an abstract model. You can then go on to identify another system that obeys similar or analogous maths, and is maybe more amenable to your control under laboratory conditions, and then use that system to model the first and make predictions.
A good example of this is weather forecasting. It’s well beyond our engineering means to build another planet, and use it to model our own weather. We can’t even build a scale model, because the rules of fluid dynamics change with scale due to viscosity, surface tension and so on. So, we build virtual models of our planet and run them faster than real time to try and peek ahead and see what the weather will do. Today this is done on digital computers, silicon-based all-purpose devices that can model any mathematical system with some degree of accuracy, if facilitated by programmers like myself. Vast arrays of tiny transistors are arranged in shapes that make them able to perform basic operations like addition and multiplication – it’s pretty amazing when you stop and think about it.
Very early weather models were done using analogue computers, where you’d manually arrange resistors, capacitors and inductor coils in circuits designed to model the equation you wanted to solve. The parameters to a set of non-linear equations were specified by the capacitance, resistance and inductance of the electronic components. Arrange the circuit board, feed a sine wave current through it, and observe what comes out of the other end on an oscilloscope to get your answer. Its very direct and hands on compared to the lofty abstract work that modern programmers carry out with our English like languages.
These more direct forms of computation fascinate me.
Say you are given the task of simulating a pool table and its physics. The obvious approach is to code up a simple physics engine that can deal with the momentum and collision of round balls on a plane using standard floating point arithmetic, and feed this to a digital computer. It will be of limited accuracy, depending on how much precision you give it. Do you use 64-bit or 32-bit numbers? How small a timestep you run the simulation at? It will probably do a decent job. I’ve played computer pool games over 20 years ago, and they felt realistic enough to keep me entertained. Similar physics models with higher fidelity have even allowed us to land a probe intact on Mars.
Imagine you took a different approach. You could just use a pool table, because nothing behaves more like a pool table than an actual pool table! When someone wanted to know how a shot would play out, you’d arrange the balls, cue at the specified angle and force, and let them know what happened. You could automate this with a robot arm, and cameras. It would be slow, so you could scale it down, using materials that behaved like a real pool table at the metre scale but at a microscopic scale. Eventually you might have a specialised “pool chip”, where microscopic robots play pool at the nanoscale, and can be commanded to take any shot and report the results! Interface this with a digital computer for taking requests and relaying answers, and you would have the world’s most accurate pool table simulator!
This is a bit contrived and fanciful, but custom chips do exist for graphics rendering, for example, where you need to perform a lot of matrix multiplications quickly and in bulk. What other forms of specialist hardware might exist?
You may have heard about Google’s D-Wave. It’s a quantum computer!
In quantum physics, a small scale system can exist in a superposition of states. An atom can be both here and there, moving both fast and slow. When observed, the wavefunction collapses, and the system had to decide which state it is actually in – am I here or there? Quantum computers exploit this effect to solve problems that can be expressed as “find the best….”. Say we want to find the quickest route between a series of points, the classical Travelling Salesman Problem. A conventional computer could solve this by brute force, looping over each possible solution one at a time to find the best answer. The more solutions, the longer this will take. A quantum computer can try all solutions at once thanks to superposition, and then collapse to the best solution. This has been described as solving the problem in parallel universes, but that phrasing is maybe a bit fanciful and misleading. The important thing is, a quantum computer is not slowed down by trying more solutions. It could for example, try every possible password at once – consider that for a moment.
Another even odder case is DNA Computing.
We ourselves are evidence that lots of complicated information can be stored in biological molecules like DNA. Our cells grow and specialise according to instructions laid out in these little micro-helixes. In DNA computing, the idea is to express a problem in terms of enzymes and bio-molecules, let them interact, and then read the results from the resultant chemical soup. Like my pool table example, you can imagine this becoming automated with some kind of printer head that injects tailor made molecules into the soup, and another device that can quickly and reliably analyse the results. Like quantum computers, DNA computers are hypothesised to be very good at “Find the best…” type of problems.
I believe that we humans are nothing more than amazing meat computers, and that the strange flickering flame of consciousness that we experience is caused by the activity of neurons in the big grey jelly in our heads. I know that others will disagree, and see the brain as a filter for something more ethereal and external like a soul. I’m not here to argue that, because in either model, its safe to say that the physical state of our brains does affect the way we think. Our thoughts can be modified by chemicals, as anyone whose ever been drunk or had a fever can testify. It can be changed by gross structural damage, from strokes to head injury. We are now experimenting with methods to change the way our brains work via electromagnetic fields, as described in this Nature article here.
Comparing our brains to electronic computers, we see a distinct set of differences and strengths. We recognise faces easily, they do long division easily. Some rare humans perform other tasks easily, such as the mathematical abilities that Daniel Tammet possesses and describes so beautifully. Humans seem to excel at pattern recognition – we have only recently ceded Chess to digital computers, and we are still kicking their silicon butts at Go, for now, as described in this awesome article in Wired here. We will eventually be overtaken at Go even by brute force computing, but it appears that a human who has devoted a lifetime of study to the game can see patterns that still give them an edge for now.
Our thoughts are composed of chemical signals and electrical impulses travelling at speeds of the order of hundreds of meters per second. Electrical signals in a chip are 100 times faster, light 1000 times faster than that.
Imagine, then, what it would be like to think with an alternative computational substrate! If (or when) we interface directly with a silicon-based processor, what will it feel like? We already do a lot of computation in our brains that we are consciously unaware of, which gives rise to intuition. Intuition is where an answer or insight appears to pop into our conscious mind unbidden. We have a hunch that leads us somewhere useful. Would a connection to a digital computer feel like intuition with numbers? Tammet describes instantly “seeing” the answer to complex math such as the square root of large numbers. The answer sits in the middle of spirals in his visual field, in his internal visual language of numbers.
Going the other way, what would it feel like to be channeled through an inferior substrate, such as an analogue computer? How about a clockwork calculator, like a scaled up Difference Engine?
So what’s all this got to do with Universe Gun?
Well, I’ve saddled myself with the task of drawing all of this! If you’ve been reading, you already know that the average Martian can hold 16 thoughts in their head at once, and that the Great Database, premiere intellect in the solar system, can hold a million thanks to its massive array of digital computational substrate.
If you were to try and out-think such a thing, where could you turn? Would quantum computing or DNA computing make sense as an option? More pressingly for me, how would a simple human attempt to translate these ideas to you using only 2D pictures and words?
I’m not entirely sure yet, but when I figure it out, dear reader, be assured that you will be the first to know!
See you in seven, sentient cybernetic superminds! Dr Mike 2000, 23 Aug 2014