Antihydra simulation status?

The wiki mentions that Antihydra has been simulated to 11.8 million steps. I’ve sketched a simulator myself [1] which, on my desktop, has reached 23 million steps in a little over 2 hours. At this point it’s completing ~1400 steps/s still and I’ll leave it running.

As-is it’s outputting step count, “b”, and b’s positive and negative variations every second but I could arrange to output them for every step (expensive) or specific values if that would be interesting.

[1] amling/bbchallenge - Codeberg.org

1 Like

Last night that version got up to 73 million steps.

Better yet, I had an idea for a smarter way to do this which I think is going to do a lot better. This version did 23 million steps in just under 10 minutes and is still getting ~13K steps/s. This version is also a little better about aligning output to big round numbers and so on the way up it verified 11.8M steps had a “b” value of 5890334 (matching the wiki).

I’ll leave it running…

1 Like

antihydra.py (557 Bytes)
You can use this algorithm to simulate it faster.

1 Like

How clever, hiding most of the bits most of the time but returning those offsets to be able to patch up in the parent! Any idea how far this has been run? I guess considering we’re pretty sure it doesn’t terminate it’s probably just killing electrons at this point…

I did translate this to rust and it was able to complete 23 million steps in 11 seconds. In the few minutes to write this post it has completed up to 268M+ (I assume it’s at the 2^28th step and computing a new power of 3). I guess I shall again leave it running while I consider any chance of trying to improve this with multiple threads, but it seems even more resistant to such help than the previous.

If you’re interested in accelerating Collatz-like TMs, you might glean some insight from my Bigfoot simulator at GitHub - LegionMammal978/bigfoot-sim: Accelerated Bigfoot simulator, which I used to simulate its rules up to 2.2 trillion iterations. The basic idea is, each iteration only pulls down so much data from above, so you can perform the multiplications/divisions in a lazy manner. The digits of the main accumulator value are grouped into a ladder of exponentially-large chunks, to be divided (or multiplied) by 3^2^k using a fast multiplication algorithm.

1 Like