EPR-Bell Simulation with 6 independent operators

Instead of a synthetic simulation, let’s simulate each device with 6 distinct and well separated operators.

Each will get 1 or 2 possible files and parameters and will output a result file to another operator.

All operators log into the program folder, which contains data/ and bin/ .

Operator 1: the source

This is the source of the pairs, there is no input file but the function takes as argument the number of common variables and the output file.

./bin/qgenHid 10000000 data/hid

Of course, each command run produces a different file.

The file will contain 10000000 rows for every 10000000 implicit pairs symbolized by the list of hidden variables in the row. These are generated randomly and evenly over a range of 360 units or what you want for little to adjust the scripts. It is quite possible to generate random original sequences. We did this with physical origins sources , like annual records of hardwares parasites, sequences from laboratories and astronomical data !

Operator 1 should send the data/hid file to operators 4 and 5 by separate mailings.

Operators 2 e& 3 : Two random rotations producers

number of lines and output file and for each arm

./bin/qRotat 10000000 data/bob.rot

and the other

./bin/qRotat 10000000 data/alice.rot

Of course, each command run produces a different file.

Operators 2 & 3 should send data/bob.rot and data/alice.rot respectively to operators 4 and 5.

Operators 4 & 5 : Deux polarizers

The function will take as argument the previous output files and the global parameters that they actually share:
– the number of doors of the potential barrier,
– the maximum number of attempts to pass it
– and a parameter of variability of the transmission law.

./bin/qPolarize 2 7 20 data/hid data/alice.rot data/alice.polarized

and the other

./bin/qPolarize 2 7 20 data/hid data/bob.rot data/bob.polarized

The output files will contain the rotation angle of the polarizer and the result -1, 0 or 1 of its crossing function for each line.

Of course, each command run produces a different file.

Operators 4 & 5 should send data/bob.polarized and data/alice.polarized respectively to operator 6.

There is no need to be coordinated in any way.

Operator 6: A comparator and coincidence counter

It will take in arguments the 2 files received and will produce the file of the correlations statistical analysis in a file compatible with a spreadsheet.

Normally they will be of the same combination of parameters but nothing prohibits analyzing the impact of variations in subsequent explorations.

./bin/qStat data/alice.polarized data/bob.polarized data/alice.bob.csv

Add the comma option if you are using a locale with a comma as decimal separator.

The function computes the correlations line by line and outputs :
– for each difference of angles of the polarizers, the observed frequencies compared to the cos²,
– and for each angle, the frequencies of + and – compared to their quantum probability of 1/2.


It is time to import data/alice.bob.csv into a spreadsheet ( or any dedicated tool from your own ) to analyze it and create graphs at your convenience. The columns of interest are I, J and K. The values of Bell and CSCH to be compared in 2 are at the bottom. The tables include values required for calculations, including \(\) E_ {CSCH} [/ latex].

In general, an experiment records what it detects. We must do the same.


Be the first to comment

Leave a Reply

Your email address will not be published.