- #1
dmtr
- 182
- 0
Realizing the RD Experiment. Troubleshooting/bug fixing.
Some of you may remember the experiment, that I've proposed a few months ago. The idea was to make a {laser/symmetric beam splitter/photo-multipliers/counters} setup, make one branch 'more entropic' and see if that would make any change to the counter values distribution. Here is an illustration: http://upload.wikimedia.org/wikiversity/en/5/5f/Dc987-rd-005.png"
Well, WTH. I thought that realizing the experiment would be an interesting pet project, so I've actually bothered to make the apparatus, to perform initial testing and as of now I've started collecting the data. I'm interested in your comments on the setup, as your input may help fixing potential loopholes and bugs.
To keep it simple and inexpensive I've decided on 'off-the shelf' equipment and straightforward experiment realization. I've used Quantis QRNG as the {laser/symmetric beam splitter/photo-multipliers} and a regular PC as the {counters/heater}. Here is the diagram of the setup:
Testing showed, that my QRNG unit is not perfectly equidistributed and have an internal bias P('1') = 0.4999762(15). To remove that bias and exclude any possibility of any other systematic bias I've decided to XOR the input sequence with the pseudo random sequence of the MT19937 PRNG generator (Mersenne Twister). To make sure that the MT19937 itself is well equidistributed (MT19937 is known to have a bias, if initialized improperly) and does not introduce systematic bias between the runs the PRNG seed (624*32 bits) is generated for each experiment run by the QRNG (note that 624*32*(0.5-0.4999762) is less than one bit).
The computer's CPU/memory are used as the {heater/counters} (CPU is performing some 'extra' floating point operations for '1's (or '0'), thus creating the asymmetry in the generated entropy).
So pretty much everything, specifying the setup ended up in the following very simple source code (C/GNU):
* http://en.wikiversity.org/wiki/User:Dc987/res-mt-q-xx.c"
* http://en.wikiversity.org/wiki/User:Dc987/res-mt-q-neg-xx.c"
I plan to do a series of experiment runs (3*10^12 bits each) for both 'positive' and 'negative' versions and use the resulting 'mean' value as the single output of each run. The target number of runs is 20 (10 each version, approx 168 days total time). The target level of significant deviation is 3 sigma.
Note/Trick: I've already performed 5 runs of "extra entropy for '1's" version that were part of the initial testing/adjustments/debiasing. The output was P(1) > P(0) for every run (this either favors my initial hypothesis, shows that there is some bias, or it was just a pure coincidence /3% chance/). So now I'm going to discard that initial data and start fresh, but with the "extra entropy for '0's" runs first. I'm going to interrupt the experiment, if first four/five runs of it would end with P(1) > P(0) results (because this would probably mean there is some unexplained bias in the system).
I would very much appreciate your input, comments related to the experiment, methodology, bugs in the code, etc.
Some of you may remember the experiment, that I've proposed a few months ago. The idea was to make a {laser/symmetric beam splitter/photo-multipliers/counters} setup, make one branch 'more entropic' and see if that would make any change to the counter values distribution. Here is an illustration: http://upload.wikimedia.org/wikiversity/en/5/5f/Dc987-rd-005.png"
Well, WTH. I thought that realizing the experiment would be an interesting pet project, so I've actually bothered to make the apparatus, to perform initial testing and as of now I've started collecting the data. I'm interested in your comments on the setup, as your input may help fixing potential loopholes and bugs.
To keep it simple and inexpensive I've decided on 'off-the shelf' equipment and straightforward experiment realization. I've used Quantis QRNG as the {laser/symmetric beam splitter/photo-multipliers} and a regular PC as the {counters/heater}. Here is the diagram of the setup:
Testing showed, that my QRNG unit is not perfectly equidistributed and have an internal bias P('1') = 0.4999762(15). To remove that bias and exclude any possibility of any other systematic bias I've decided to XOR the input sequence with the pseudo random sequence of the MT19937 PRNG generator (Mersenne Twister). To make sure that the MT19937 itself is well equidistributed (MT19937 is known to have a bias, if initialized improperly) and does not introduce systematic bias between the runs the PRNG seed (624*32 bits) is generated for each experiment run by the QRNG (note that 624*32*(0.5-0.4999762) is less than one bit).
The computer's CPU/memory are used as the {heater/counters} (CPU is performing some 'extra' floating point operations for '1's (or '0'), thus creating the asymmetry in the generated entropy).
So pretty much everything, specifying the setup ended up in the following very simple source code (C/GNU):
* http://en.wikiversity.org/wiki/User:Dc987/res-mt-q-xx.c"
* http://en.wikiversity.org/wiki/User:Dc987/res-mt-q-neg-xx.c"
I plan to do a series of experiment runs (3*10^12 bits each) for both 'positive' and 'negative' versions and use the resulting 'mean' value as the single output of each run. The target number of runs is 20 (10 each version, approx 168 days total time). The target level of significant deviation is 3 sigma.
Note/Trick: I've already performed 5 runs of "extra entropy for '1's" version that were part of the initial testing/adjustments/debiasing. The output was P(1) > P(0) for every run (this either favors my initial hypothesis, shows that there is some bias, or it was just a pure coincidence /3% chance/). So now I'm going to discard that initial data and start fresh, but with the "extra entropy for '0's" runs first. I'm going to interrupt the experiment, if first four/five runs of it would end with P(1) > P(0) results (because this would probably mean there is some unexplained bias in the system).
I would very much appreciate your input, comments related to the experiment, methodology, bugs in the code, etc.
Last edited by a moderator: