Methuselah-ish Symmetric Soups

For discussion of specific patterns or specific families of patterns in Conway's Game of Life, both newly-discovered and well-known.
Post Reply
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Methuselah-ish Symmetric Soups

Post by dvgrn »

The long-lived D8_4 zz_Linear soups on Catagolue (purple dots here) have grown from 7 instances the last time I looked several years ago, to 52 soups as of 12/12/2019. Soups can be retrieved by appending the ID to "catagolue.appspot.com//hashsoup/D8_4" -- e.g.,

http://catagolue.appspot.com//hashsoup/ ... xVg1922888

I wrote a stupid-simple script to (theoretically) find the exact time that each pattern goes boring. But the reported value is either too early or too late for half of the soups, though it was fairly close. The reported value is given in the Fate column if it didn't match, but the correct value is in the Survival Time column:

Code: Select all

ID			Survival time	Fate
PWMDbAbCzxVg1922888	19,659,494	Jedi Bounce Trick. Reports 19659528
ffzCw74rqfSG282830	16,467,526	double eater
XytUUkhNEjEU1733576	16,467,565	double eater
f2q78V6BLJVc110684	11,473,182	Jedi Bounce Trick.  Reports 11473232
sqDJksjsv2be67987	 6,716,774	boat+blinker seed for boat-bit-catch fishhook
csVT6yWsknTs1413574	16,467,547	double eater
eQqxNVqvvGGj7310585	16,467,533	double eater
m_TrUG4Vs7PWcu9052339	 5,931,548	moose antlers
m_8K2EvKyFdTUM4406744	11,473,247	Jedi Bounce Trick. Reports 11473297
m_TA7z9D9mrzhB2093399	16,467,539	double eater
m_3CeA2Dw9qnJU4825613	16,467,530	double eater
m_nuhZtFALmvdG990884	 2,230,955	Jedi Bounce Trick. Reports 2231048
m_udaa49j2vesk1458281	16,467,621	double eater
m_7fXYYbMPHDwK5628897	 6,398,315	inline eater. Reports 6396355
m_u8WcTYVqHgyB7469749	 2,230,963	Jedi Bounce Trick. Reports 2231056
m_FKChZQAwZstz5289889	16,467,605	double eater
m_s9XMPbRrHs396971157	11,473,241	Jedi Bounce Trick. Reports 11473291
m_zs6BQXR4pa6x8735298	11,473,214	Jedi Bounce Trick. Reports 11473264
m_tL7jLK3rjfgk3183475	13,073,427	Temporary break in incoming gliders! Loaves acting as rocks
m_3jKN3ppmMKDs5207315	16,467,530	double eater
m_caUwwFUpUty38553753	 6,398,284	inline eater. Reports 6398324
m_f6V6SFUHLtSB1853044	11,473,194	Jedi Bounce Trick. Reports 11473244
m_Jh9HWHAzuRg56667004	23,195,749	Jedi Bounce Trick.
m_wVVsTJ4sqNU88044873	16,467,547	double eater
m_NpdgExjat6gj5847577	16,467,526	double eater
m_3FAjhHSeXr7y8950894	11,473,208	Jedi Bounce Trick.  Reports 11473920
m_iF3dyj4TGZfr7325686	16,467,543	double eater
m_R92NMFkEG87L4569127	 1,316,271	Jedi Bounce Trick.  Reports 1320960
m_ygAwL3DjiCFV4222147	 6,640,965	Jedi Bounce Trick. Reports 6640980
m_qD3xWBCvGqYx4274410	 4,456,329	beacon-based boat bit. Reports 4456351
m_k6vnErX8HzEQ3741051	 4,456,355	beacon-based boat bit. Reports 4456377
m_h3EHiyAWwfSd7679502	16,467,607	double eater
m_nMsbDc9ZHHnS5571137	16,467,599	double eater
m_3bCekGYG38Wk3858406	 2,230,956	Jedi Bounce Trick. Reports 2231049 (?!?)
m_HxNhbrdHwCBx8353767	 2,453,915	Jedi Bounce Trick. Reports 2457600 (!?!)
m_wzcdgBGQmgZw3259104	 2,230,966	Jedi Bounce Trick. Reports 2231059
m_TbPnqhhQVBWN1701610	11,473,234	Jedi Bounce Trick. Reports 11473920
m_QNs89A7zxyKv7266283	18,373,579	Jedi Bounce Trick. Reports 18373594
m_PiBE3h56h5xB312321	 7,452,010	eater with head catching boat bit
m_xHqBBWGiPhdm5114891	11,473,200	Jedi Bounce Trick. Reports 11473920
m_7tKhznGbZpTi4539278	16,467,567	double eater
m_bmdAg3zKQXVe6460172	16,467,579	double eater
m_K7Xr4PDDkM768480388	12,323,906	Jedi Bounce Trick. Right for a change. (??!!)
m_y9tw2BRgbe2G8339140	11,473,213	Jedi Bounce Trick. Reports 11473920
m_KcL2Y5npn2HC9182100	11,174,660	Long-lasting initial lake. Pentadecathla, no hash match, novelty death via stale bread
m_dewL2tQAHsfM1562060	64,935,262	integral catching boat bit
m_AsRrkqLwMJuA9526739	16,467,583	double eater
m_55MBifjCkqyg1071727	 9,307,907	Jedi Bounce Trick. Reports 9308160
m_wENPkZhTVTmx3581125	16,467,563	double eater
m_MqDCX5fsCpSu5292567	13,466,679	eater head near center catching boat bit. Reports 13470720
m_UmHjWqAadCMP1172787	36,118,082	beacon catching boat bit
m_4Xih6g5KGw8a825544	10,457,797	beacon catching boat bit. Pentadecathla, no hash match
["double eater" is ortho-eater on eater]

There's a lot of duplication -- a couple of the initial eight-switch-engine patterns are very likely, so they crop up again and again with slightly different time offsets. But there's one soup that lasts almost twice as long as the previous best known example of the breed -- over 64 million ticks:

Code: Select all

x = 32, y = 32, rule = B3/S23
bo4bobo2bo8bo2bobo4bo$2o2bo2bobob2obo2bob2obobo2bo2b2o$3b2ob4obo2bo2bo
2bob4ob2o$2bo2bo5b2ob4ob2o5bo2bo$b2obobo3bob2ob2ob2obo3bobob2o$3bo9bob
2obo9bo$obobobo3bob3o2b3obo3bobobobo$b2o6bo4bo2bo4bo6b2o$obo5b5obo2bob
5o5bobo$b2o4b7ob2ob7o4b2o$4bobob2ob2o6b2ob2obobo$4o4b5ob4ob5o4b4o$bob
2obob4o2b4o2b4obob2obo$4b3o2bo3b2o2b2o3bo2b3o$b3o2b3o2b10o2b3o2b3o$3b
3o3bob2ob4ob2obo3b3o$3b3o3bob2ob4ob2obo3b3o$b3o2b3o2b10o2b3o2b3o$4b3o
2bo3b2o2b2o3bo2b3o$bob2obob4o2b4o2b4obob2obo$4o4b5ob4ob5o4b4o$4bobob2o
b2o6b2ob2obobo$b2o4b7ob2ob7o4b2o$obo5b5obo2bob5o5bobo$b2o6bo4bo2bo4bo
6b2o$obobobo3bob3o2b3obo3bobobobo$3bo9bob2obo9bo$b2obobo3bob2ob2ob2obo
3bobob2o$2bo2bo5b2ob4ob2o5bo2bo$3b2ob4obo2bo2bo2bob4ob2o$2o2bo2bobob2o
bo2bob2obobo2bo2b2o$bo4bobo2bo8bo2bobo4bo!
m_tL7jLK3rjfgk3183475 is an honorable-mention soup that manages to hit the receding switch engines with gliders, to temporarily stop the flow of gliders back toward the center. It doesn't stop the switch engines, though -- that might be closer to counting as a Real Methuselah! I'm not sure if there are any glider locations and timings that can pull off that trick.

Here's the code I used to try and find the exact Time to Boringness, if anyone wants to use it -- or figure out why it doesn't work in half the cases. I think I'm all done with this little project for now, myself.

Code: Select all

# get-exact-timing-v1.0.py
# Version 1.0: support pentadecathla in final census by taking snapshots at a multiple of 15
#            (15360 = 768*20 = 1024*15). Should also support pulsars and all periods below 7
import golly as g
import urllib2
import os

# already did f2q78V6BLJVc110684 http://catagolue.appspot.com//hashsoup/D8_4/f2q78V6BLJVc110684/b3s23	
#         and sqDJksjsv2be67987 http://catagolue.appspot.com//hashsoup/D8_4/sqDJksjsv2be67987/b3s23	

# fake stability:
# m_tL7jLK3rjfgk3183475 http://catagolue.appspot.com//hashsoup/D8_4/m_tL7jLK3rjfgk3183475/b3s23

# ran all of
# PWMDbAbCzxVg1922888 http://catagolue.appspot.com//hashsoup/D8_4/PWMDbAbCzxVg1922888/b3s23
# ffzCw74rqfSG282830 http://catagolue.appspot.com//hashsoup/D8_4/ffzCw74rqfSG282830/b3s23
# XytUUkhNEjEU1733576 http://catagolue.appspot.com//hashsoup/D8_4/XytUUkhNEjEU1733576/b3s23
# csVT6yWsknTs1413574 http://catagolue.appspot.com//hashsoup/D8_4/csVT6yWsknTs1413574/b3s23	
# eQqxNVqvvGGj7310585 http://catagolue.appspot.com//hashsoup/D8_4/eQqxNVqvvGGj7310585/b3s23
# m_TrUG4Vs7PWcu9052339 http://catagolue.appspot.com//hashsoup/D8_4/m_TrUG4Vs7PWcu9052339/b3s23
# m_8K2EvKyFdTUM4406744 http://catagolue.appspot.com//hashsoup/D8_4/m_8K2EvKyFdTUM4406744/b3s23
# m_TA7z9D9mrzhB2093399 http://catagolue.appspot.com//hashsoup/D8_4/m_TA7z9D9mrzhB2093399/b3s23
# m_3CeA2Dw9qnJU4825613 http://catagolue.appspot.com//hashsoup/D8_4/m_3CeA2Dw9qnJU4825613/b3s23
# m_nuhZtFALmvdG990884 http://catagolue.appspot.com//hashsoup/D8_4/m_nuhZtFALmvdG990884/b3s23
# m_udaa49j2vesk1458281 http://catagolue.appspot.com//hashsoup/D8_4/m_udaa49j2vesk1458281/b3s23
# m_7fXYYbMPHDwK5628897 http://catagolue.appspot.com//hashsoup/D8_4/m_7fXYYbMPHDwK5628897/b3s23
# m_u8WcTYVqHgyB7469749 http://catagolue.appspot.com//hashsoup/D8_4/m_u8WcTYVqHgyB7469749/b3s23
# m_FKChZQAwZstz5289889 http://catagolue.appspot.com//hashsoup/D8_4/m_FKChZQAwZstz5289889/b3s23
# m_s9XMPbRrHs396971157 http://catagolue.appspot.com//hashsoup/D8_4/m_s9XMPbRrHs396971157/b3s23
# m_zs6BQXR4pa6x8735298 http://catagolue.appspot.com//hashsoup/D8_4/m_zs6BQXR4pa6x8735298/b3s23
# m_tL7jLK3rjfgk3183475 http://catagolue.appspot.com//hashsoup/D8_4/m_tL7jLK3rjfgk3183475/b3s23

# completed 12/11 AM, before running into beacon boat bit with pulsars...
# m_3jKN3ppmMKDs5207315 http://catagolue.appspot.com//hashsoup/D8_4/m_3jKN3ppmMKDs5207315/b3s23
# m_caUwwFUpUty38553753 http://catagolue.appspot.com//hashsoup/D8_4/m_caUwwFUpUty38553753/b3s23
# m_f6V6SFUHLtSB1853044 http://catagolue.appspot.com//hashsoup/D8_4/m_f6V6SFUHLtSB1853044/b3s23
# m_Jh9HWHAzuRg56667004 http://catagolue.appspot.com//hashsoup/D8_4/m_Jh9HWHAzuRg56667004/b3s23

# completed 12/11 PM, then got a missing  match on m_4Xih6g5KGw8a825544. Moved that to end, commented out.
# m_wVVsTJ4sqNU88044873 http://catagolue.appspot.com//hashsoup/D8_4/m_wVVsTJ4sqNU88044873/b3s23
# m_NpdgExjat6gj5847577 http://catagolue.appspot.com//hashsoup/D8_4/m_NpdgExjat6gj5847577/b3s23
# m_3FAjhHSeXr7y8950894 http://catagolue.appspot.com//hashsoup/D8_4/m_3FAjhHSeXr7y8950894/b3s23
# m_iF3dyj4TGZfr7325686 http://catagolue.appspot.com//hashsoup/D8_4/m_iF3dyj4TGZfr7325686/b3s23
# m_R92NMFkEG87L4569127 http://catagolue.appspot.com//hashsoup/D8_4/m_R92NMFkEG87L4569127/b3s23
# m_ygAwL3DjiCFV4222147 http://catagolue.appspot.com//hashsoup/D8_4/m_ygAwL3DjiCFV4222147/b3s23
# m_qD3xWBCvGqYx4274410 http://catagolue.appspot.com//hashsoup/D8_4/m_qD3xWBCvGqYx4274410/b3s23
# m_k6vnErX8HzEQ3741051 http://catagolue.appspot.com//hashsoup/D8_4/m_k6vnErX8HzEQ3741051/b3s23


outpath = "C:/PUT/YOUR/PATH/HERE"
s="""m_h3EHiyAWwfSd7679502 http://catagolue.appspot.com//hashsoup/D8_4/m_h3EHiyAWwfSd7679502/b3s23
m_nMsbDc9ZHHnS5571137 http://catagolue.appspot.com//hashsoup/D8_4/m_nMsbDc9ZHHnS5571137/b3s23
m_3bCekGYG38Wk3858406 http://catagolue.appspot.com//hashsoup/D8_4/m_3bCekGYG38Wk3858406/b3s23
m_HxNhbrdHwCBx8353767 http://catagolue.appspot.com//hashsoup/D8_4/m_HxNhbrdHwCBx8353767/b3s23
m_wzcdgBGQmgZw3259104 http://catagolue.appspot.com//hashsoup/D8_4/m_wzcdgBGQmgZw3259104/b3s23
m_TbPnqhhQVBWN1701610 http://catagolue.appspot.com//hashsoup/D8_4/m_TbPnqhhQVBWN1701610/b3s23
m_QNs89A7zxyKv7266283 http://catagolue.appspot.com//hashsoup/D8_4/m_QNs89A7zxyKv7266283/b3s23
m_PiBE3h56h5xB312321 http://catagolue.appspot.com//hashsoup/D8_4/m_PiBE3h56h5xB312321/b3s23
m_xHqBBWGiPhdm5114891 http://catagolue.appspot.com//hashsoup/D8_4/m_xHqBBWGiPhdm5114891/b3s23
m_7tKhznGbZpTi4539278 http://catagolue.appspot.com//hashsoup/D8_4/m_7tKhznGbZpTi4539278/b3s23
m_bmdAg3zKQXVe6460172 http://catagolue.appspot.com//hashsoup/D8_4/m_bmdAg3zKQXVe6460172/b3s23
m_K7Xr4PDDkM768480388 http://catagolue.appspot.com//hashsoup/D8_4/m_K7Xr4PDDkM768480388/b3s23
m_y9tw2BRgbe2G8339140 http://catagolue.appspot.com//hashsoup/D8_4/m_y9tw2BRgbe2G8339140/b3s23
m_KcL2Y5npn2HC9182100 http://catagolue.appspot.com//hashsoup/D8_4/m_KcL2Y5npn2HC9182100/b3s23
m_dewL2tQAHsfM1562060 http://catagolue.appspot.com//hashsoup/D8_4/m_dewL2tQAHsfM1562060/b3s23
m_AsRrkqLwMJuA9526739 http://catagolue.appspot.com//hashsoup/D8_4/m_AsRrkqLwMJuA9526739/b3s23
m_55MBifjCkqyg1071727 http://catagolue.appspot.com//hashsoup/D8_4/m_55MBifjCkqyg1071727/b3s23
m_wENPkZhTVTmx3581125 http://catagolue.appspot.com//hashsoup/D8_4/m_wENPkZhTVTmx3581125/b3s23
m_MqDCX5fsCpSu5292567 http://catagolue.appspot.com//hashsoup/D8_4/m_MqDCX5fsCpSu5292567/b3s23
m_4Xih6g5KGw8a825544 http://catagolue.appspot.com//hashsoup/D8_4/m_4Xih6g5KGw8a825544/b3s23
m_UmHjWqAadCMP1172787 http://catagolue.appspot.com//hashsoup/D8_4/m_UmHjWqAadCMP1172787/b3s23"""

# The second-to-last one caused trouble -- no match

slines = s.split("\n")

for item in slines:
  name,url = item.split(" ")
  response = urllib2.urlopen(url)
  html = response.read()
  index = html.index("\n")
  pat = g.parse(html[index+1:])
  g.new("Test")
  g.setalgo("HashLife")
  g.setbase(2)
  g.setstep(10)
  
  r = [-4080, -4080, 8192, 8192]
  g.putcells(pat)
  prevhash=g.hash(r)
  prevgen = "0"
  g.step()
  g.step()
  g.step()
  g.step()
  g.step()
  g.step()
  g.step()
  g.step()
  g.step()
  curhash = g.hash(r)
  curgen = g.getgen()
  count=1
  toobig=0
  while prevhash != curhash:
  	prevhash = curhash
  	prevgen = curgen
  	g.step()
  	g.step()
  	g.step()
        g.step()
        g.step()
        g.step()
        g.step()
        g.step()
        g.step()
  	g.step()
  	g.step()
  	g.step()
        g.step()
        g.step()
        g.step()
        curhash = g.hash(r)
  	curgen = g.getgen()
  	count += 1
  	if count%10==0:
  	  g.show(str(count))
  	  g.update()
  	  if count==10000:
  	    toobig=1
  	    break
  # g.note(str([prevhash, prevgen, curhash, curgen]))
  if toobig==0:
    lookup={}
    g.show("Changing the step to 2^0. Sorry, this may take a while.")
    g.setstep(0)
    g.show("Collecting hashes for boring phases...")
    for i in range(16384):
      lookup[i]=g.hash(r)
      g.run(1)
      if i%64==0:
        g.show(str(16384-i))
        g.update()

    g.new("Test")
    g.setalgo("HashLife")
    g.setbase(2)
    g.setstep(10)
    g.putcells(pat)
    targetT = (count-2)*15 # go back to the last time the hashes _didn't_ match
    for i in range(targetT):
      g.step()
      if i%64 == 0:
        g.show("Getting back to key step. Steps remaining: " + str(targetT-i))
        g.update()
    g.duplicate()
    found=0
    for i in range(16384):
      if i%4==0:
        g.show("Checking phase " + str(i))
        g.update()
      if g.hash(r)==lookup[i]:
        eon=g.getgen()
        g.dellayer()
        g.save(os.path.join(outpath,name + "_" + eon + ".mc.gz"),"mc.gz")
        found=1
        break
      g.run(1)

    if found==0:
      g.note("Something happened that hadn't ought to happen.\n" \
             "No match was found for any of the 15360 phases,\n" \
             "plus an extra 1024 for good measure,\n" \
             "even though a match was found on the previous pass.")
    g.show("Now loading next kaleidoscope after '" + name + "'.")
    g.update()
  else: # best to look at this one manually, it's going on suspiciously long
    g.save(os.path.join(outpath,name + "_unknown300Kplus.mc.gz"),"mc.gz")
User avatar
pcallahan
Posts: 955
Joined: April 26th, 2013, 1:04 pm

Re: Methuselah-ish Symmetric Soups

Post by pcallahan »

I wonder what's the smallest starting state that results in a diagonal puffer (<c/4) with receding gliders. I assume it eventually turns into some pairing of Corderman engines. That could form the basis of many similar large-period methuselahs depending on what the gliders were colliding with. Has anyone looked at this?
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Methuselah-ish Symmetric Soups

Post by dvgrn »

pcallahan wrote: December 16th, 2019, 1:54 pmI wonder what's the smallest starting state that results in a diagonal puffer (<c/4) with receding gliders.
"Receding gliders" meaning gliders heading backward from the direction of the puffer, rather than the usual forward-firing GPSEs? There's probably the occasional 16x16 diagonally symmetric soup that makes one of the backward-firing switch-engine pairs that are found in all these D8_4 patterns. (At least, I think those D8_4 pairs all have the same spacing -- haven't gone through and verified that.)

But those backward glider streams would tend to eat through random ash quickly enough that they might not end up being all that interesting. I haven't been through all 200 D2_x soups to see if there are any switch-engine pairs with backward gliders, but the first dozen or so all look like standard interacting pairs of GPSEs.

The D8_4 symmetric patterns investigated in the above post seem to be pretty much unique among the ZZ_LINEAR patterns Catagolue has collected so far. Their unusual longevity comes from their even symmetry; whenever those glider streams drill all the way through the central ash pattern, they meet another symmetric glider stream that starts a crystal forming, which continues to have unpredictable effects when it interacts with the surrounding ash.

So the novelty generation keeps going. The only thing that can stop one of these D8_4 kaleidoscopes is the spontaneous appearance of a boat-bit catcher, or a singleton or glider-pair eater -- there are examples of all of those in the set. Or a new type of periodic crystal that uses the backward gliders to build outwards indefinitely, or else a lucky set of outbound gliders that interact with the switch engines to permanently stop gliders from coming back (haven't seen either of those yet).

D8_1 soups often start out promisingly, similar to D8_4, but the glider streams drill through and start making bi-blocks instead of interchanges, and those just toggle in and out of existence and don't get a crystal restarted. So they end up going boring orders of magnitude faster than D8_4 soups. D4_x4 soups are even worse -- immediate vanish reactions from backwards gliders hitting each other directly -- and D4_x1 soups can't seem to generate backwards gliders at all, though again I've only spot-checked the D4_x{?} soups so there might be surprises hiding in there somewhere.

The five C1 soups currently in ZZ_LINEAR are all standard 16x16 soups that happen to produce a pair of surviving switch engines. A majority of these produce output gliders, in various directions but none backwards (out of those five sample cases).
User avatar
pcallahan
Posts: 955
Joined: April 26th, 2013, 1:04 pm

Re: Methuselah-ish Symmetric Soups

Post by pcallahan »

Update: Proof of concept. This won't set any records I'm sure, but here's one that takes about 1.3 million steps to kill the engine and stays active past generation 1.7 million as the remaining gliders collide.

Code: Select all

x = 30, y = 16, rule = B3/S23
7bobo$6bo$7bo2bo$9b3o7$3o2$bo$b2o25b2o$2b2o24bo$o2b2o!
(With some tweaking I could get the initial cell count down to 22.)

It is based on a pair of switch-engines that send a glider backwards every 96 steps. I'm not sure if it is aleady known (I don't have a great way to recognize them right now. This was just filter for infinite growth and some other things and inspect visually.)

Code: Select all

x = 12, y = 16, rule = B3/S23
7bobo$6bo$7bo2bo$9b3o7$bo$3o2$3o$b2ob2o$3bo!
I found that it usually drills through the mess, but can (as above) crystallize through the puffer trail and eventually kill the engine (there's a big open lane for a glider of death).

------

Not really relevant but here are two very prolific and chaotic pairs that came up though they are eventually periodic. They do not produce backwards gliders.

Code: Select all

x = 14, y = 19, rule = B3/S23
9bobo$8bo$9bo2bo$11b3o8$2bo$2ob2o$2ob2o$2o$2b2obo$3bo2bo$3bo2bo$4b2o!
and

Code: Select all

x = 28, y = 22, rule = B3/S23
23bo$21b2ob2o$21b2ob2o$21b2o$23b2obo$24bo2bo$24bo2bo$25b2o11$bobo$o$bo
2bo$3b3o!
(Apologies if these are well known. I haven't spend much time looking at switch engines before with the exception of generating them from small clusters.)
Post Reply