Hacker News new | ask | show | jobs
by throwaway37585 2895 days ago
Quantum computing (under the quantum circuit model) basically consists of repeatedly applying unitary matrices to complex vectors (the qubits). They are like your Boolean logic gates but they must be unitary, which implies they must be reversible: https://en.wikipedia.org/wiki/Quantum_logic_gate.

You can think of unitary matrices as the complex analogue of rotation matrices (https://en.wikipedia.org/wiki/Unitary_matrix), so what quantum logic gates are doing is "rotating" these vectors around in a complex space.

1 comments

In classical computing nobody thinks of programming as consisting of a series of logic gates, though :-).

Should we expect more abstractions from quantum computing models in the future? Quantum data structures, common quantum operations etc? Or are quantum algorithms too different from one another, or are "the quantum parts" of most quantum algorithms very compact? (Or do we try to keep them as compact as possible because of hardware constraints?)

You'd better hope we can figure out some higher abstractions for QM, or you can kiss the even-harder problem of biological computing goodbye.

I think there will be, though. I think 99% of the problem is just that we have no hardware yet. It's historically just been too hard to develop algorithms for things we don't have the ability to run yet. I've seen it personally in evolutionary computation [1], and the recent renaissance in AI and ML I believe was largely driven by getting to the point we could actually run these computations in some reasonable period of time. The breakthroughs probably could have happened sooner, except even if you theorized about Deep Learning, nobody would have even been able to use it.

[1]: A professor of mine told a heartbreaking (to me) story of carrying around a deck of cards between several institutions as he progressed through his early academic career, running an evolutionary computation in whatever spare time he could get over the literal years. My crappy, grad-student-grade personal laptop, a cheap piece of crap even for the time (I had to permanently clock the nominally 1GHz CPU down to 500MHz just to keep the thing from burning itself up), could have done the whole thing in minutes, if not seconds. Per Dijkstra, computer science may be about computers as much as astronomy is about telescopes, but I would observe astronomy is pretty hard to work on without telescopes in the end.

The quantum computers to come in the next decade or two might be regarded as marginally more sophisticated than the way we currently regard the first mechanical and electronic computers.

The first practical applications will be those that can be readily represented by simple operations on a modest number of qbits. As people practice and learn, sophistication will grow.

Great comment. Circuits are particularly unhelpful in describing quantum algorithms because they usually indicate a fixed problem size, and they do not provide an insight into entanglement, one of the fundamental “resources” of QC.

We need new representations and much better abstractions to get away from the low-level thinking we are currently promoting.

> [Quantum circuits] do not provide an insight into entanglement

What do you mean? Entanglement occurs whenever the state of a system cannot be factored into a product of the states of its components. Quantum circuits can definitely do that. Just take a qubit, apply the Hadamard gate to it, then CNOT it with a second qubit to get an entangled Bell state. You can see it in action here: http://demonstrations.wolfram.com/GeneratingEntangledQubits/.

Quantum circuits are also used to describe all kinds of quantum algorithms (quantum Fourier transform, Grover’s algorithm, quantum teleportation, etc).

I'm not sure about the actual intent of the grand-parent, but I think it was referring to insight that a larger audience can understand.

I have a CS degree, and I don't know what is "Hadamard", "Bell state", etc. Also your link doesn't load on Firefox Mobile Android, so it didn't help :-)

Proposing a Python library about Quantum Computing is an attempt at explaining mechanisms to a larger audience (surely it is not an easy task)

Edit : the link finally loaded on another tab while writing the comment, but you have to pay for a license of Wolf.A. to run it, I guess. That can't be arguably considered "accessible" knowledge.

I mean, they do not illustrate when qubits have become entangled. You can't see that. I'm sure we can do better.
I’m not sure what you mean by “illustrate when qubits have become entangled”. Can you explain?
Entanglement is fundamental to QC, right? So in order to be a useful visualisation of an algorithm, a pictorial representation like a circuit should give some intuition to aid understanding such as: which qubits can potentially be entangled at a given stage in the circuit, etc.
You might be interested in reading about the quantum lambda calculus and linear types.