New 4-glider collision database

For scripts to aid with computation or simulation in cellular automata.
Post Reply
carsoncheng
Posts: 475
Joined: June 11th, 2022, 11:24 pm

New 4-glider collision database

Post by carsoncheng » August 24th, 2022, 7:16 am

I have created a new 4-glider database for stationary objects and constellations. The database and the querying code is here (https://github.com/carson-cheng/4g-database). While there is an existing 4-glider database that serves an identical purpose, this one is much more comprehensive, more than 10 times bigger than the existing one (1901590 entries vs 131431 entries).

This database is based on popseq. I have modified the source code so that every glider collision generated by the program will be printed regardless of whether its population sequence matches that of the input pattern, and then redirected the standard output to a file, where I ran a script to extract the entries. I extracted about 7.7 million collisions, but unfortunately the script was terminated early, and I only got about 5.2 million collisions, of which 1.9 million collisions result in valid apgcodes and are not vacuums.

To use the database, clone the git repository, and move the directory into the Python scripts folder. At this point, you can start using it like the original synthesise-constellation-4G.py version, as the result extraction code is a minor modification of that of the original database because of the slightly different way that collisions being stored in Shinjuku format. Just paste the object onto Golly, and run that script. If there are results, you should see a stamp collection of them.

It hasn't been integrated into the original 4Gcols.sjk file yet, so you will have to run the new version and the old version separately. However, given the increased number of collisions and objects in the new database, the old database can be used to supplement the new one just in case the larger database doesn't return any results.

As an example of what this new database can do, I slipped a reduction to the tempest synthesis a few days ago. It now costs 11 gliders, but its previous cost is 12 gliders. The ship + loaf constellation in the first step originally took 5 gliders, but it has two 4-glider entries in the new database. I chose one of them and submitted it to Catagolue.
Last edited by carsoncheng on August 24th, 2022, 7:46 pm, edited 1 time in total.

GUYTU6J
Posts: 2200
Joined: August 5th, 2016, 10:27 am
Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
Contact:

Re: New 4-glider collision database

Post by GUYTU6J » August 24th, 2022, 8:31 am

Three problems are known for popseq: 1)duplicate syntheses, 2)invalid syntheses, 3)syntheses in only one geometry, that is two gliders from one direction and the other two from one of the perpendicular directions. Is there account for these issues when generating the database?

(Note: I have met these before but have no handy examples at the moment, so don't ask...)

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: New 4-glider collision database

Post by dvgrn » August 24th, 2022, 11:29 am

carsoncheng wrote:
August 24th, 2022, 7:16 am
This database is based on popseq. I have modified the source code so that every glider collision generated by the program will be printed regardless of whether its population sequences matches that of the input pattern, and then redirected the standard output to a file...
Could you check in your modified popseq source code into your repository?

It might end up making sense to generate a big "octo4g" database using a more reliable isotropic hash than the population, for all 7.7 million of the 4G collisions -- not just the ones that produce stationary objects and constellations.

carsoncheng
Posts: 475
Joined: June 11th, 2022, 11:24 pm

Re: New 4-glider collision database

Post by carsoncheng » August 24th, 2022, 12:11 pm

I have uploaded the modified version of popseq onto my GitHub repository.

Unfortunately, I have lost the list of 7 million collisions generated using popseq. However, it is pretty easy to regenerate. Run this command:

Code: Select all

./popseq > 4g_data.txt
If you run it to completion, you'll end up with well more than 7 million collisions. The result file grows very quickly, but if you are confident that you can handle this situation, don't worry about that.

If you want a truncated list, immediately open a new command-line window after starting this command, and then type a command to wait for 120 seconds and then kill the popseq process. It should be something like this:

Code: Select all

sleep 120; taskkill /im popseq
This command may not work in Windows, since I don't know of any command that can help you wait for a certain amount of time in command prompt. The sleep command may only work in Unix-like systems. For this reason, you may have to do some test with this command before you start collecing popseq data.

Post Reply