3

I am about to start a distributed computing project to check the convergence of the Collatz problem. So far, the convergence of the problem has been verified for all numbers below $87 \times 2^{60} \approx 2^{66.4}$. See this question for details.

The algorithm which I intend to use is described here. After some thought, I have decided to divide the problem into sub-problems, each having the size of $2^{40}$ numbers. Now I am facing a question of how to verify that each sub-problem has been verified correctly (i.e. the worker does not cheat).

For convenience, the algorithm which verifies a particular $n = n_0$ is as follows: \begin{align} \text{repeat} &~ \\ n &← n + 1 \\ \alpha &← \operatorname{ctz}(n) \\ n &← n × 3^\alpha / 2^\alpha \\ n &← n − 1 \\ \beta &← \operatorname{ctz}(n) \\ n &← n / 2^{\beta} \\ \text{until } &~ n < n_0\text{,} \end{align} where the $\operatorname{ctz}$ is the count trailing zeros operator.

My idea so far is to sum all the $\alpha$s (or $\beta$s, or both) for all $n$ inside the specified sub-problem ($2^{40}$ numbers). This sum seems to be quite independent of the magnitude of the numbers tested. Someone else could then independently verify this checksum (i.e. double-checking). Is this a good way or do you have a better idea (to prevent cheating)?

DaBler
  • 1,000
  • You might be interested in: https://boinc.thesonntags.com/collatz/ – Klangen Sep 12 '19 at 12:59
  • And this: https://www.reddit.com/r/CasualMath/comments/7w78at/how_far_has_collatz_been_proved/dupmrgo/ – Klangen Sep 12 '19 at 13:02
  • In general, double-checking some sort of hash value for a given ''chunk'' is a good idea to make sure no-one is cheating. You can compute the probability of a double false positive for your hash function and choose an appropriate one accordingly. – Klangen Sep 12 '19 at 13:04
  • @Klangen Basically, the dilemma I am dealing with is whether to implement this double-checking on my side, or only to publish those checksums so that anyone else can verify my results. – DaBler Sep 13 '19 at 09:48
  • 1
    It would not make much sense publishing the hashes, as that does not discourage cheating. The "double-checking" as you call it has to be done in a "private" way – Klangen Sep 13 '19 at 11:28
  • For those who are interested, here is an article about this algorithm. – DaBler Jul 03 '20 at 09:42

0 Answers0