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.
New 4-glider collision database
-
- Posts: 476
- Joined: June 11th, 2022, 11:24 pm
New 4-glider collision database
Last edited by carsoncheng on August 24th, 2022, 7:46 pm, edited 1 time in total.
-
- Posts: 2200
- Joined: August 5th, 2016, 10:27 am
- Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
- Contact:
Re: New 4-glider collision database
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...)
(Note: I have met these before but have no handy examples at the moment, so don't ask...)
熠熠种花 - Glimmering Garden
Harvest Moon
2-engine p45 gliderless HWSS gun
Small p2070 glider gun
Forgive me if I withhold my enthusiasm.
Harvest Moon
2-engine p45 gliderless HWSS gun
Small p2070 glider gun
Forgive me if I withhold my enthusiasm.
Re: New 4-glider collision database
Could you check in your modified popseq source code into your repository?carsoncheng wrote: ↑August 24th, 2022, 7:16 amThis 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...
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.
-
- Posts: 476
- Joined: June 11th, 2022, 11:24 pm
Re: New 4-glider collision database
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:
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:
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.
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 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