This is my fourth and final post about how to duplicate the effects of the famous double-slit experiment of quantum mechanics with just a few pages of code. At the end of last time, we’d built a self-interfering excitation wave, and applied it to a network with three lines cut into it to make it behave like a cardboard screen. The results looked something like this.
Now, in order to explain how we get from this pink blob to one of the greatest mysteries of modern science, let’s first recap a little about what makes QM so odd.
Last time, I talked about Young’s fringes, and the fact that light behaves like a wave. This model persisted for a long time until Albert Einstein and his chums came along at the turn of the Twentieth Century and pointed out that light had to be both a wave and a particle. This is because every time you measure light, it always comes in chunks, despite the fact that it makes diffraction patterns that prove that it has to be traveling like wave.
What this means is that when we run the same experiment that Young did, but with a lamp so dim that it emits just one photon at a time, we still get the same stripes, but they’re clearly made up of dots from individual impacts. In fact, it looks something like this.
Furthermore, if we put detectors at the slits instead of on the screen, to test which way each particle is going, we only ever get a detection at one slit or the other, never half a detection at both. If the particle only goes one way or the other, how can it be interfering with itself?
It gets worse. If we put a detector at just one of the slits, we get a detection half the time, and the pattern of stripes goes away. It’s as if the particle knows that we’re looking at it. How can the particles possibly tell if we’ve put a detector at one of the slits?
The answer to these problems is easier that it looks. The way to resolve it is to think of a QM particle as something less like a brick, and more like an Oscar. Bricks get thrown. Oscars get awarded. The whole time that a brick is flying towards someone, it’s clear where it’s going. However, before an Oscar is awarded, it might land with anyone on that year’s shortlist. Before the Oscar is awarded, it doesn’t make sense to say who’s won it, but that doesn’t mean it’s not real. It’s just not awarded yet.
We can think of the Oscar as having a probability of landing with each of the contenders, and that’s how most physicists think about QM. But what’s important here is just that there’s a shortlist and the rules of the competition say that only one person can receive the prize.
We can imagine a crazy actor, who can’t stand the suspense, cornering one of the Oscar judges and demanding to know whether he has the prize before the judges have even finished deliberating. The judge has to keep to his word, regardless of what he tells the actor, so he’s forced to make a choice to say yes or no. Either way, he buggers up the deliberation process that would have happened with his colleagues afterwards. That actor is just like the detector we put at one of the slits.
So we can achieve the same effect with a particle by saying that it simply maintains a list of places where it might be detected. In other words, by using exactly the approach we’re described in the last few posts. The only thing we need to make our particle quantum-mechanical, then, is a rule that tells the particle that any time we demand to know where it is, it has to tell us a single location.
We do this by making some of the nodes in our network into ‘detectors’. Whenever our particle passes over a detector, we add it to a list. Then we make a decision whether or not to give up information about the particle at that time. If we decide that we’re done, we pick one of our detectors at random from our list and announce that the particle has arrived. If we decide to keep going, we don’t pick any of them.
Thus, if we put a detector at one of the slits, we’re likely to get an answer much sooner than if we just put them on the screen, and the answer will be different than if we had left the wave alone. That’s it. No mystery. No consciousness. No crazy, brain-bending math.
In fact, we can go further. We can say that, in this interpretation, quantum particles behave like Oscars rather than bricks because they have to. Everything in our model is in more than one place at a time, because the only way to assert that anything in the network has a location is by connecting it to nearby points with links. In other words, something like QM naturally falls out of the system because it’s discrete and irregular.
So does this approach work? If we run the simulation, do we get the stripes we’d like to see? Here’s what happens if we make the bottom of our simulation into a sort of detector and collect detection events (green dots).
Lo and behold, we get stripes. They’re somewhat crappy, for sure, but the results are consistent, regardless of how I set the experimental parameters. Here’s another example.
The results look poor because I’m taking shortcuts. The code takes a long time to run, and I’m collecting more than one detection for the same particle, which isn’t what happens in nature. To make the result cleaner, I’d have to collect each detection independently, and tweak the spatial graph between each event. While that’s possible, it would take days to run with my current implementation, and nobody’s paying me to do this stuff.
I haven’t tried to match the results of what you’d see in a real QM experiment because that’s not the point here. I also haven’t tried to capture all of the features of QM in my demonstration, because that’s not the point either. The aim is just to demonstrate that the kind of ‘spooky’ results that people talk about in QM aren’t really that spooky at all. I can get them on my Mac, even though it might take me a while.
The reason why QM results might seem spooky at first glance is because our notion of locality hasn’t been updated since the 19th Century. Even though we’re now spending most of our waking hours embedded in a complex, dynamic network of information, people are generally reluctant to imagine that the universe they inhabit works in exactly the same way. That’s because we have a really great set of mathematical tools for dealing with 19th Century-style smooth large-scale systems, and not many yet for understanding networks.
So if this solution still isn’t quite clear to you yet, ask yourself this: Where is the Google homepage?
My answer: Anywhere that points to it.