If there's something that I began to scratch and easily loose myself is imagining how do you program something using qubits, how the language looks like, or even an algorithm. In few seconds I come back to the 0-or-1 kind of thinking and can't advance.
edit: The Microsoft Q# tutorial seems friendly enough to wade into without much knowledge in the field (especially if you know C# or F#). But if you're like me you'll have about 5 tabs of reading material open beside ;)
I’m missing the piece between the dwave and programming in ternary. Ie the dwave acts as a neural network - you “program it” through finding novel applications of its architecture to problems. (Its hardware being a specific form of neural network, a Hopfield network.) Ternary programming seems to be an attempt to implement general processing on top of a neural network, ignoring the relationships between the qbits.
I am in no way in my element with quantum computing. I'm trying to dip my toes in as an amateur.
I still often get a little turned around in the [what appear to be] subtle differences between Qubit operations and ternary operations.
At a naive level, they appear to be the same—three possible states: 1, 0, indeterminate. This however isn't quite true. I hope somebody who's better educated can weigh in, but it seems that a Qubit is actually flat to the user in that the user can only ever see one of two visible states at the point of observation, where with ternary operations the user can actually see one of three differing states.
I'm not yet familiar with the DWave platform, but it certainly appears as if that would be a good thing to know in the coming years...
From my understanding, they define a state of the Hopfield nodes akin to some external model’s state at some point. Then the neural net “anneals” to its naturally lowest energy state. That state is then read as output of the computer. This is my very naive understanding, of course.
Okay, I had to do a bit of reading to even start to understand what you were talking about/referring to, but it sounds like you're on the right track—though I didn't get to any point in my reading where they specified the network type explicitly.
Also:
It sounds like the 2000Q is designed to offer API capability, but it doesn't sound like anybody runs one:
D-wave does have software available for developing on a normal machine that can also run on their systems, but I'm finding Q# a more familiar interface for an introduction.
There's no missing piece between the dwave and arbitrary quantum computing, dwave doesn't do that, it does a particular task (quantum annealing), to which some (but not all!) quantum algorithms can be mapped.
If you want to implement arbitrary quantum algorithms, you need a proper quantum processor (like the one described in the article), not something involving dwave; it's apples and oranges; they're both fruit but not the same and not really comparable.
My gut reaction is to dismiss the dwave for that. But, it’s still a neat piece of hardware - a quantum scale hardware neural network modeled on a simplification of brain neurons. It’s just sort of a naming collision.
Don’t feel bad — in a recent WSJ magazine interview with Bill Gates he said, (paraphrasing), “I keep up with most of the new tech at Microsoft, but if there’s one area where the math looks like Greek to me, it’s Quantum Computing.”
The basics of quantum computing are not difficult if you know linear algebra. The state of a qubit is described using a column vector that holds complex numbers. Gate operations are performed by multiplication on the states with unitary matrices.
If it helps, try imagining what programming superscalar computers is like. :)
That is, when it is ready, you really won't, for most things. Instead, you will leverage massive amount of work others have done so that your much simpler programs will work.
Fair. My point there is not to worry, then, about how to solve large problems. Quite literally worry only about the smaller building blocks.
To get an idea of the useful building blocks for traditional computers, look at the circuitry that goes into manipulating numbers. Far from trivial, once you get to a certain size. And it is likely you will need the same operations even in quantum.
Not just addition, mind. Rotation/shifting and other manipulations of data. I'm sure there are some new primitives, as well.
I've read a few different versions explaining the basics. I found this a useful intro, and it links to some good lecture notes as well (note that part 2 is at the bottom linked): http://davidbkemp.github.io/QuantumComputingArticle/
so at what point does a quantum computer's ability to factor large number threaten RSA (since RSA relies on prime factorization being extremely cpu intensive)?
For at least one quantum computer you would need a way to encode the number in the qbit states as well as the algorithm, I think. It seems like something that may require a specially engineered quantum computer.
That is not how Shor's algorithm works. To factor a number N, Shor's algorithm uses a classical computer to pick a random number a where a < N. A quantum computer is used to find the period of f(x) = a^x mod N. This Wikipedia entry [0] provides a good overview.
I'm not a mathematician, so excuse my ignorance, but is it wrong to call it factoring? The definition of a prime number is a number whose only factors are 1 and itself, so you're still factoring the number to see if it fits the definition.
The real threat of quantum computers is not the testing of prime numbers, but the factoring of semiprime numbers (numbers that have two distinct prime factors). The difficulty of taking a semiprime number and extracting it’s prime factors is considered an extremely hard problem, and this assumption of difficulty underpins nearly all of our modern cryptographic systems. If it were trivial to factor a large semiprime, one could intercept/hack all credit card transactions. This is the quintessential problem that quantum supremacy raises, and the most publicized; OP was remarking that the journalists likely meant to talk about this threat, but somewhat sloppily wrote prime instead of semiprime.
People are interested in factoring numbers in context of breaking RSA encryption, so they knew factored number is not a prime. Also quantum algorithms are probabilistic so getting "it is a prime result" isn't very trustworthy. When we get actual factors it is easy to verify that with division/multiplication on classical CPU.
Indeed; while Quantum compute is an exciting development, I am suspicious of the conclusion that cracking classic crypto is just around the corner. There are enormous challenges yet to solve; reducing noise in the results down to a useful collection is just one. If the quantum computer gives you a correct result 1/2^64 times, or a result within range of the actual result to within 2^64 values, then it is far from complete doom for classical cryptography.
It's very useful for lots of other things, so undoubtedly we'll see plenty of gains in in quantum applications.
In the early 90's Ghandi got hold of one of these devices and caused havoc. Luckily, he was stopped by Bob Woodward with some help from Elwood Blues and, of course, President Roslin.
Most likely the author misunderstood and incorrectly translated the technical term "prime factorization", which means factoring into primes, to "factoring primes".
I think what the person might have meant was factoring a large composite number made up of two large prime numbers. It really is factoring large semiprimes. To make it even more confusing finding the prime factors out of any positive integer is called prime factorization. I totally get why people would say factoring large primes even though that is totally incorrect.
That would be fun to watch, but to be overly pedantic about it, it will take a computer with hundreds of qubits to break current public key encryption.
It will take hundreds of fault tolerant qubits. That means it will take potentially millions of physical qubits of relatively high quality. There is a long road ahead from 72 relatively medium quality to millions of relatively high quality qubits.
Qubit quality is defined by the quantum volume [0]. Errors that occur when gates are applied to qubits need to be below a certain threshold to perform error correction.
The blog post was weird: "Here's this chip we've made, but we don't know anything about its performance characteristics, yet." Made me skeptical about this being any kind of breakthrough.
44 comments
[ 2.1 ms ] story [ 94.7 ms ] threadhttps://docs.microsoft.com/en-us/quantum/quantum-qr-intro?vi...
https://en.wikipedia.org/wiki/Qubit
Going further...
https://en.wikipedia.org/wiki/Ternary_computer
https://en.wikipedia.org/wiki/Three-valued_logic
edit: The Microsoft Q# tutorial seems friendly enough to wade into without much knowledge in the field (especially if you know C# or F#). But if you're like me you'll have about 5 tabs of reading material open beside ;)
I still often get a little turned around in the [what appear to be] subtle differences between Qubit operations and ternary operations.
At a naive level, they appear to be the same—three possible states: 1, 0, indeterminate. This however isn't quite true. I hope somebody who's better educated can weigh in, but it seems that a Qubit is actually flat to the user in that the user can only ever see one of two visible states at the point of observation, where with ternary operations the user can actually see one of three differing states.
I'm not yet familiar with the DWave platform, but it certainly appears as if that would be a good thing to know in the coming years...
Also:
It sounds like the 2000Q is designed to offer API capability, but it doesn't sound like anybody runs one:
https://www.dwavesys.com/software
But for now IBM and Rigetti do:
http://www.davidykay.com/Cloud-Quantum-Computing-Heats-Up-as...
D-wave does have software available for developing on a normal machine that can also run on their systems, but I'm finding Q# a more familiar interface for an introduction.
https://github.com/dwavesystems/qbsolv
If you want to implement arbitrary quantum algorithms, you need a proper quantum processor (like the one described in the article), not something involving dwave; it's apples and oranges; they're both fruit but not the same and not really comparable.
A good introduction: http://pyquil.readthedocs.io/en/latest/intro.html
That is, when it is ready, you really won't, for most things. Instead, you will leverage massive amount of work others have done so that your much simpler programs will work.
To get an idea of the useful building blocks for traditional computers, look at the circuitry that goes into manipulating numbers. Far from trivial, once you get to a certain size. And it is likely you will need the same operations even in quantum.
Not just addition, mind. Rotation/shifting and other manipulations of data. I'm sure there are some new primitives, as well.
[0]: https://en.wikipedia.org/wiki/Shor%27s_algorithm#Classical_p...
Why do people make that mistake so often?
It's very useful for lots of other things, so undoubtedly we'll see plenty of gains in in quantum applications.
I'd like to see Qbert crack that.
https://en.wikipedia.org/wiki/Primality_test
[0]: https://www.research.ibm.com/ibm-q/resources/quantum-volume....
The blog post was weird: "Here's this chip we've made, but we don't know anything about its performance characteristics, yet." Made me skeptical about this being any kind of breakthrough.
As you should. Google is planning on sharing the results of this processor soon: https://research.googleblog.com/2018/03/a-preview-of-bristle...