They’re apparently not too discriminating with their invitations since I got one. It was probably because I mentioned that I’m a software developer, but that doesn’t mean that I know the first thing about coding for a quantum computer. I haven’t started their tutorial yet so I have no idea how easy or difficult it is.
Maybe between us we can figure it out and come up with something interesting to run.
ETA: It’s beta and they don’t guarantee accurate results.
Don’t think in terms of a language. They have something they call a “composer”, and defining a problem is closer to composing a musical score than writing in a language. It’s a whole different paradigm from programming a Von Neumann machine.
Because the only way quantum computing gets up off the ground is if there are programmers who have access to one. Believe me, I’ve tried writing code I couldn’t test, and it always has errors. And I’m using well-defined programming languages, not coming up with new algorithms.
How elaborate or lengthy is the tutorial? I’m sure we of the Dope would all like to see some kind of summary intro to quantum computing and what’s it looks like and how to go about it.
Is there anything at all resembling a language, or some notation, or anything like flowcharts, in writing algorithms or programs for a quantum computer? If so, is it utterly unlike anything any traditional programmer has ever seen (and that would include Lisp and APL)?
Sign up and take a look. What I’ve seen so far consists of a visual interface where you place different types of nodes on a staff similar to a musical staff.
There was an intro about vector math and inner products which I more or less remember from college. Then it talks about applying that to Hilbert space (n-dimensional spaces beyond 3 dimensions) which is simple enough to grasp if you understand 2 and 3 dimensions. Then it talks about tensor products, which honestly lost me a little. I suspect it’s simple enough but so far I haven’t found an explanation online that I’m able to grasp.
A Hilbert space can have 3 or less dimensions - in fact all finite-dimensional real and complex vector spaces equipped with an inner product (i.e. inner product spaces) are Hilbert spaces, and as physics generally uses finite-dimensional real/complex inner product spaces, it’s usually a trivial property. QM however uses infinite-dimensional complex inner product spaces, so the fact that QM limits itself to Hilbert spaces is not (as) trivial.
That said though the states of quantum computers inhabit finite-dimensional complex inner product spaces (that are subspaces of the infinite-dimensional Hilbert space describing the states of the physical systems), so the question “what is a Hilbert space?” is not that important in quantum computing as the spaces in question are trivially Hilbert spaces.
The tensor product is really just like a function that takes two vector spaces over some field K as the input and has third vector space over K as the output, I believe mathematicians would describe this as a bifunctor from a category K-vector spaces to itself. When the input vector spaces are Hilbert spaces, there is a natural way to give the output space Hilbert space structure, so in mathematician-speak the tensor product is also a bifunctor from a category of Hilbert spaces over K to itself.
In QM the state of a particle inhabits a Hilbert space, and when you have a system of two particles the state of the two-particle system inhabits a Hilbert space that is the tensor product of the two Hilbert spaces the individual particle states inhabit. Now the tensor product is not the only bifunctor on the category of complex Hilbert spaces, another example would be the direct sum, so the particular properties of the tensor product are important in QM. In particular quantum entanglement, which is very important in quantum computing, can be derived solely from the fact that the Hilbert space that the state of a multiparticle system inhabits is the tensor product of the single-particle state spaces.
And that is exactly the type of explanation that I can’t wrap my head around. I don’t say that as a criticism. I’m sure you’re explaining it as clearly as possible. It’s just that I have no clue what you mean when you use phrases like “two vector spaces over some field k”. I know what vectors are and I know about inner products but I’m clueless as to what is meant by “field” in this context (or any mathematical context, to be honest). I suppose that I’m just lacking the requisite knowledge to understand it. Maybe it’s fruitless for me to try to tackle this.
Given that you are software developer, I am sure you are capable of understanding these things as they are no more complicated than the concepts you encounter everyday! The actual concepts are surprisingly simple: grasping the definition of a field is much easier than grasping multivariate calculus for example. The difficulty is only that they are abstract. Also I don’t know if I explain them that well.
In mathematics a field (not related at all to the idea of a physical field) is just a generalization of algebraic structures where you can do addition, multiplication, division and multiplication. An algebraic structure is just a generic name for a set which we endow with a bit of extra structure to do binary operations like addition, etc on it. There’s a list of rules (i.e. axioms) for fields and if the rules of addition, multiplication, etc in an algebraic structure tally with these rules then that algebraic structure is a field.
For example the real numbers, rational numbers and complex numbers are all fields, but the whole numbers aren’t, as you can’t divide an arbitrary whole numbers by a second arbitrary non-zero whole number to get a third whole number (e.g. 1÷2 is not a whole number). In fact the whole numbers are a commutative ring, which is like a field, but with some of the rules relaxed.
Fields are important to vectors as for each vector space (the algebraic structure of which a vector is a part) there is a field of scalars, which you can use scalar multiplication to create new vectors. For example you can take the real vector v and multiply it by the scalar (which for a real vector must be a real number) 2, to get a new vector 2v. When the vector space is equipped with an inner product the inner product will take two vectors as its argument and output a scalar from the associated field. Mathematicians talk about a vector space V over a field of scalars K to identify the associated field.
Note again though the use of the word ‘field’ in this context is not to be confused with the use of the word ‘field’ in ‘vector field’ or ‘scalar field’, which are possible sources of confusions due to the re-use of the same word to describe different things.
If all that is still too confusing then every time you see the word “field” (in this usage) substitute “real or complex numbers” as that will cover you most of the time in discussions about fields and pretty much 100% of the time when the discussion is related to physics. Also when talking about Hilbert spaces the associated field, must be the real or complex numbers as inner product spaces over other fields do not have the required properties.
Perhaps getting caught up in the definition of ‘field’ is the problem. We’re in the realms of quantum physics so the field is the complex numbers.
We could represent the state of a system as an abstarct arrow on an abstract dial indicator where reading where the arrow points to on the dial indicator allows to tell exactly what the properties of the system are. The dial indicator itself is like the state space of all possible states a system can have
Let’s say we have a system of two particles. In classical physics all possible states of a two particle system can be described by ordered pairs of one particle states, this is like taking taking the direct sum of the state spaces. For example if two particles only have one property each which can be either be state 1 or 0, then (1,0) completely specifies the state of the system.
I.e if all the possible states of particle A inhabit the state space V and all the possible states of particle B inhabit the state space U then classically the state space of the two particle system W is:
V ⊕ U = W (1)
‘⊕’ here just denotes the direct sum and it is no more than a particular way to take two spaces to get a third.
In quantum physics the states of the two particle system contains states that are not simple combinations of one particle states (these are entangled states). This is because (1) becomes in quantum physics:
V ⊗ U = W (2)
‘⊗’ here denotes the tensor product which is another way of taking two spaces to get a third.
Obviously the devil is in the detail here, so to understand quantum computing as a preliminary you need to understand how specifically V and U relate to W in the quantum case.
I haven’t abandoned the thread and I do appreciate you taking the time to post that explanation. I’m just waiting till I have the opportunity and motivation to really think about and digest your post. I’m sure I’ll have some questions.
Just to add a more concrete example, let’s say we have a real 3-dimensional column vector α in the vector space V:
and the 3-dimensional real row vector β in the vector space U
(b[sub]1[/sub] b[sub]2[/sub] b[sub]3[/sub])
If we take the direct sum V⊕U, one of the elements of V⊕U will be the ordered pair (α,β), which is a 6-dimensional real vector. If we wrote it as a column vector (NB there’s no particular reason to write it as a coulumn vector, I only do so to make its 6D nature explicit) we could write it as:
If we take the tensor product V⊗U, one of the elements of V⊗U would be the outer product α⊗β, which is a 9-dimensional real vector If we expressed it as the 3x3 square matrix (NB notice how the outer product lends itself naturally to matrix multiplication of a column vector by a row vector):
Now in fact V⊗U is the 9D real vector space of all 3x3 real matrices, but note there are some 3x3 matrices that cannot be expressed as the product of a column vector and row vector, these are like entangled states in QM.