In my quest to stay up to speed on new technology, I had this crazy idea to develop my own quantum computer. After all, if Elon Musk thinks he can move humanity to Mars then building a quantum computer in my garage should be in the range of the possible.
Let me start by saying that I don’t understand how real quantum computers actually work. This doesn’t make me unique. But, I get the part about the qubits, i.e. entities that are not 1 or 0 but both at the same time. And because they are both 1 and 0, if you make calculations with them, the answer – which is a specific combination of 1’s and 0’s – is in there somewhere.
In a recent post (on another blog) I considered an amazing feature of randomness as a source of creativity, i.e. if I consider a random thing in some space, then it could be anything, including something amazing and beautiful. All we have to do is pick out that random thing and we’ve just caught the giant squid.
That got me thinking.
Isn’t that exactly the story of qubits? They contain all the answers, including the right one. What if I designed a computer that uses arbits (‘ar’ for ‘r’andom), i.e. bits that have all values randomly (over a certain time period), then I can make quantum calculations without the need for 100 million dollar laser and cryogenic equipment. Right…?
So qubits are 1 and 0 in quantum space whereas arbits are 1 and 0 in the time domain. How weird is that!
Now for those with overactive brains, no, these arbits aren’t going to be fast, like qubits. No NSA code cracking with arbits. But they are amazingly cool because they lead the way to quantum programming, which has a completely different paradigm from traditional Turing machine programming.
I thought about physically building an random computer using arbits but realised that I easily simulate these on my laptop. As we will see, there may be cause for developing arbit hardware and I may yet do so.
Let’s a write a simple program with arbits. In fact, we can skip the arbit part because we can program with ar-numbers or ar-variables. Let’s calculate a square root of the variable y for example.
Let x = ar-number between 0 and 100
Don’t worry if the logic escape you – arbits like cubits are weird. Here is some Ruby code.
The first time I looked at this I thought, duh, you’re just searching for a solution. Except that I’m not. This program picks values out of a random space until it finds the right solution. The random part has no idea what it is looking for; the check condition deals with that.
I implemented this for factoring numbers, calculating exponentials and logarithms without math functions (…!).
Here is the paradigm for random computing:
1) If the problem has a solution then
2) that solution is in a random parameter space.
3) Select it by proving that the random parameter is a solution
As far as I can see, the key difference with quantum computing is that the random parameter space is in the quantum domain and instantaneous whereas in random computing the random parameter space is the time domain.
My gut feel is that if you take the logic of quantum or random computing to the right level of abstraction, then you can solve problems where the answer is known but not the problem. With Turing machines we define the problem and then calculate the answer.