## Monday, July 3, 2017

### Quantum Computers and the Universe

I had read a lot about quantum computers for many years but never really understood how they actually work.
Even though I am someone who was interested in computers, science, technology since his early teenager years.
Now I think if I cannot understand how exactly quantum computers work, why not try to guess by myself.
(I have a computer science undergraduate degree from a US university with minor in math.)

What made quantum computers so popular was the arrival of the internet.
Its what is called "killer application" is what is called Shor's Algoritm (which I never understood either).
I think practically all encrypted private communication in the internet uses (RSA) Public-Key cryptography protocol.
What makes it almost unbreakable is that the mathematical fact that multiplying 2 very large positive integers can be done very fast,
but on the other hand doing the reverse (which is how to find those 2 multiplied (prime) numbers if we were given the multiplication result) is very hard (using normal computers and all algorithms we know).

Even though I never understood how quantum computers work, I think I understood the "magical" power of qubits always.
Unlike a regular computer bit (in its memory, which can be always either 0 or 1 as we set it, any time using computer processing instructions), a qubit is able to stay indeterminite between 0 and 1 states (as longs as we want?), until we query its value and get an anwer as 0 or 1.

Now assume we want to break RSA, I think our (main) problem is, we have an N digit binary positive integer which we know it was calculated by multiplying 2 very large (average N/2 digits each?) binary positive (both prime) integers.
(They were chosen to be prime (or to be prime with very high probability) I think because that makes the problem the hardest to solve.)

So the question is how Shor's Algorithm could be breaking the code?

I think similar to regular computers, quantum computers must have a set of possible instructions to write programs and do calculations.
I am guessing Shor's Algorithm maybe be getting executed using a quantum computer like this:
Asume we have enough number of qubits to use.
Assume we started with 2 (each N/2 digits) qubit based computer processor registers.
Assume we start with setting those two registers to all undetermined qubit states.
Then assume we run a single multiplication instruction to multiply values of those two registers and store the result in a third register.
(I think in regular computer processors multiplication is actually done in multiple calculation steps internally but the same sequence is triggered using a single instruction each time.)

When the multiplication is done and the result is stored, how do we get the values of the two input numbers?
I am guessing that a quantum computer must have an instruction for loading known bit values into its qubit registers.
But it must also provide a way to load bit values without actually erasing previous (and undetermined) bit values of each qubit in a register.
So what we are really talking about is, forcing previous undetermined value of each qubit to collapse into a 0 or 1 we choose.

But if we can do that, can't we use that for FTL communication using entanglement?
Because if have 2 entangled qubits (meaning if we make a measurement on any of them anytime anywhere and find its value of 0, we would know instantly, whenever the other one is measured its value will be found to be 1, and vice versa), and we have the capability to force either one of them to be measured as a 0 or a 1, then we could use one of the qubits to send a bit of information (we choose its value) instantly from one qubit to the other one, in either direction.

I know that this is a solved (and tricky) problem where quantum mechanics actually does not allow FTL communication.
(Which is also a rule compatible with Relativity.)
So I think quantum mechanics must be allowing us to force a qubit to any 0 or 1 value we want, but as long as we still don't know what the value of the other qubit (its twin?) will be.

Then how we may solve what is called Integer Factorization problem quickly using a quantum computer?

Assume we multipled two unknown positive integers (qubit register values), calculated the result in a third register.
Then we forced the third qubit register value to the multiplication result number (which we knew already).
Assume we still preserved the values of the input registers during the whole multiplication calculation maybe by copying them to another two separate qubit registers before the multiplication
(which would create entanglement in between copied register qubits).

I think if we forced the (multiplication) calculation result register to the value we know, then values of the two input value registers (which we preserved) should get set to the only possible input prime number values.
(Which we can measure (collapse), those input register qubits, anytime we want, and learn what were their (initially unknown) values.)

If quantum computers really work like this, can they also be explained by Hidden Variables Hypothesis?
I think it claims, when we measure the previously unknown value of a qubit, we just finding out what certain 0 or 1 value the qubit was set in the past.
Realize that if that was true then quantum computers would not work the way we need.
Whether the multiplication calculation result register was set this value or that, the input register values would not be effected by it, since their unknown (but certain) values would never change.

So it looks like quantum computers allow us to send information instantly across any distance in space (remember, the instant we (force) set any qubit of output register, that operation instantly sets the value of corresponding qubit(s) in the input registers), as long as that information is indeterminate.
But cannot we also think the input registers as the past and the output register as the future?
When we (force) set the output register in the end of the multiplication calculation, isn't that can be interpreted as sending information to the past (instantly)?
And if in the end, we (force) set the value of any input registers,
isn't that can be interpreted as sending information to the future (instantly)?
If so then these would mean we can send information across space and(/or?) time instantly but as long as it is indeterminate information.

I think quantum mechanics requires that if the universe is some kind of cellular automata,
then its cells must be individual qubits or a qubit register or a set of multiple qubit registers.
(Probably all cells identical for the whole universe.)
(Also each qubit cell would be connected with N neighbors probably.
Could it even be that all cells are directly connected with all other cells?)

Also since it looks like each quantum register of N qubits is capable of making a choice between 2^N different possible answers in an instant, it could be said that each quantum register is capable of 2^N calculations (at least) in an instant.
Then it would mean each qubit is capable of 2^N/N calculations per time step of the computer.
Since N can be large as we want in theory, that means each qubit is capable of infinite number of calculations (value evaluations) per time step.
(I think path integrals used to calculate particle actions also indicate that each particle seems to be evaluating infinite number of possibilities at each time step.)

Which brings the mind the question, are quantum computers the ultimate (most powerful) computers possible?
(Which are computers capable of infinite number of calculations at each time step, theoretically.)
I think practically the answer looks like yes (because of the quantum theory).
But I think theoretically an even more powerful computer maybe be possible (but definitely not in our universe) that does an infinite number of calculations in 0 time step.
(Which I think some religions imply about what is God is capable of,
by saying God can create anything of any size and complexity in an instant, without needing to spend any time on the problem.)