qfind - a spaceship search program

For scripts to aid with computation or simulation in cellular automata.
User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » August 6th, 2023, 5:39 am

Sokwe wrote:
August 6th, 2023, 4:22 am
C_R_116 wrote:
August 5th, 2023, 8:58 pm
How do you run a search with a given partial result?

I tried the -l command but that didn't work.
To extend a partial result, use the -e command. You will first need a file containing the rows you want to start from. This file can be created by the Golly Lua script getrows.lua (follow the instructions in the code comments). This will create a file called initrows.txt. Make sure initrows.txt is in the same folder as qfind, and then include "-e initrows.txt" in your command line options.

The -l command is for loading a search state saved with the -d command. The -d command causes qfind to periodically save the state of the search to a file so that it can be restarted from that point and doesn't need to be started from the beginning.
Where is initrows.txt?
By: C.R. Hilton, currently working on another cool spaceship.

Sokwe
Moderator
Posts: 2688
Joined: July 9th, 2009, 2:44 pm

Re: qfind - a spaceship search program

Post by Sokwe » August 6th, 2023, 5:44 am

C_R_116 wrote:
August 6th, 2023, 5:39 am
Where is initrows.txt?
After running the Golly script getrows.lua, it should be created in the same folder as getrows.lua. If this is different from the folder where qfind is stored, then you will need to move initrows.txt to wherever qfind is.
-Matthias Merzenich

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » August 6th, 2023, 6:31 am

Thanks!
By: C.R. Hilton, currently working on another cool spaceship.

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » March 22nd, 2024, 5:29 am

Sokwe wrote:
March 22nd, 2024, 5:07 am
This is potentially bad, as your qfind search (if I understand it right) should have found this first. Can you please share your exact setup (qfind version, qfind options used, and initial rows file) and if possible the output from the run of qfind that found the original tagalong? I need it for debugging.
My version is qfind v2.3
qfind options in the cmd line:

Code: Select all

qfind.exe -p 7 -y 2 -w 10 -s o -e initrows.txt -t 24
initrows.txt

Code: Select all

.o........
..o....oo.
....o.....
.oo.......
.ooo.oo...
...o...o..
.o.o...o..
...o......
.o.....oo.
..o.......
.oo...o.o.
..........
.oo....o..
..o...oo..
Unfortunately, I don't have the exact output rle, but I think it looked something like this:

Code: Select all

x = 23, y = 65, rule = B3/S23
2b2o3bobobobo3b2o$9bobo$8bo3bo$8bo3bo$5b2o2bobo2b2o$8b2ob2o$4bo3b2ob2o
3bo$8bo3bo$5bo3bobo3bo$7bobobobo$6b2obobob2o$5bo2bo3bo2bo$4b2o9b2o$6bo
7bo$10bo$8b2ob2o$9bobo$8b2ob2o2$7bobobobo$8b2ob2o$7b2obob2o$5b2o7b2o$
5b2o7b2o$4bobo7bobo$3b2obo7bob2o$8b2ob2o$4bo11bo$4b2ob3ob3ob2o$4b3o7b
3o$5bo9bo$5b2o7b2o$6bo7bo$6bo7bo$5bo9bo$2b4o9b4o$bo2b2o9b2o2bo$3bo13bo
$b2o3b2o5b2o3b2o$6b2o5b2o$6bo7bo2$8b2ob2o$4b2o2b2ob2o2b2o$5bobo5bobo$
3b3ob2o3b2ob3o$b2ob4obobob4ob2o$5bob2o3b2obo$5bobo2bo2bobo$2bobo2b7o2b
obo$3bo2b2ob3ob2o2bo$6b3obob3o$5b2obobobob2o$3b2o2b2obob2o2b2o$2bo4b2o
3b2o4bo$2bo5bo3bo5bo$3bobo3bobo3bobo$3b3o3bobo3b3o$2bo3bo2bobo2bo3bo$
4b2o9b2o$3b3o9b3o$2bo15bo2$2b2o13b2o!
By: C.R. Hilton, currently working on another cool spaceship.

Sokwe
Moderator
Posts: 2688
Joined: July 9th, 2009, 2:44 pm

Re: qfind - a spaceship search program

Post by Sokwe » March 22nd, 2024, 5:53 am

C_R_116 wrote:
March 22nd, 2024, 5:29 am
My version is qfind v2.3
qfind options in the cmd line:

Code: Select all

qfind.exe -p 7 -y 2 -w 10 -s o -e initrows.txt -t 24
initrows.txt

Code: Select all

.o........
..o....oo.
....o.....
.oo.......
.ooo.oo...
...o...o..
.o.o...o..
...o......
.o.....oo.
..o.......
.oo...o.o.
..........
.oo....o..
..o...oo..
Thanks! I assume by the .exe extension that you are on Windows. Did you use the pre-compiled version available here, or did you compile it yourself? If you compiled it yourself, can you tell me what compiler you used and any compiler flags you included?
-Matthias Merzenich

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » March 22nd, 2024, 6:05 am

Sokwe wrote:
March 22nd, 2024, 5:53 am
C_R_116 wrote:
March 22nd, 2024, 5:29 am
My version is qfind v2.3
qfind options in the cmd line:

Code: Select all

qfind.exe -p 7 -y 2 -w 10 -s o -e initrows.txt -t 24
initrows.txt

Code: Select all

.o........
..o....oo.
....o.....
.oo.......
.ooo.oo...
...o...o..
.o.o...o..
...o......
.o.....oo.
..o.......
.oo...o.o.
..........
.oo....o..
..o...oo..
Thanks! I assume by the .exe extension that you are on Windows. Did you use the pre-compiled version available here, or did you compile it yourself? If you compiled it yourself, can you tell me what compiler you used and any compiler flags you included?
Yeah, it's precompiled.
By: C.R. Hilton, currently working on another cool spaceship.

Sokwe
Moderator
Posts: 2688
Joined: July 9th, 2009, 2:44 pm

Re: qfind - a spaceship search program

Post by Sokwe » March 22nd, 2024, 6:25 am

C_R_116 wrote:
March 22nd, 2024, 6:05 am
Sokwe wrote:
March 22nd, 2024, 5:53 am
Thanks! I assume by the .exe extension that you are on Windows. Did you use the pre-compiled version available here, or did you compile it yourself? If you compiled it yourself, can you tell me what compiler you used and any compiler flags you included?
Yeah, it's precompiled.
Thanks again! When you get a chance, can you please copy qfind.exe and inirows.txt into a new empty folder and run the exact search again with

Code: Select all

qfind.exe -p 7 -y 2 -w 10 -s o -e initrows.txt -t 24 -d dump > output.txt
Please run it until you find the completion you found before, and after that put the whole new folder in a .zip file and post it here as an attachment. I would greatly appreciate it!

Unfortunately, I have limited debugging ability at the momoent due to my laptop for some reason having trouble compiling qfind. I think I need a fresh OS install, but I just got swamped with a big real-life project and I don't want to interrupt my workflow right now.
-Matthias Merzenich

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » March 22nd, 2024, 12:48 pm

Sokwe wrote:
March 22nd, 2024, 6:25 am
C_R_116 wrote:
March 22nd, 2024, 6:05 am
Sokwe wrote:
March 22nd, 2024, 5:53 am
Thanks! I assume by the .exe extension that you are on Windows. Did you use the pre-compiled version available here, or did you compile it yourself? If you compiled it yourself, can you tell me what compiler you used and any compiler flags you included?
Yeah, it's precompiled.
Thanks again! When you get a chance, can you please copy qfind.exe and inirows.txt into a new empty folder and run the exact search again with

Code: Select all

qfind.exe -p 7 -y 2 -w 10 -s o -e initrows.txt -t 24 -d dump > output.txt
Please run it until you find the completion you found before, and after that put the whole new folder in a .zip file and post it here as an attachment. I would greatly appreciate it!

Unfortunately, I have limited debugging ability at the momoent due to my laptop for some reason having trouble compiling qfind. I think I need a fresh OS install, but I just got swamped with a big real-life project and I don't want to interrupt my workflow right now.
So I finished completion, and there might be a little bit of confusion about what row I used to extend that partial:
When I said I started from that row:

Code: Select all

x = 59, y = 71, rule = LifeHistory
2.A12.A27.A12.A$.A.A10.A.A25.A.A10.A.A$A3.A8.A3.A23.A3.A8.A3.A$.A2.A8.
A2.A25.A2.A8.A2.A$.A.A4.2A4.A.A25.A.A4.2A4.A.A$2.3A3.2A3.3A27.3A3.2A3.
3A$5.A6.A33.A6.A$4.A2.4A2.A4.3A17.3A4.A2.4A2.A$8.2A9.A19.A9.2A$5.3A2.
3A33.3A2.3A$18.A.A17.A.A$18.A.A17.A.A$19.A19.A$21.3A11.3A$21.2A.2A7.2A
.2A$20.A.4A7.4A.A$20.2A3.2A5.2A3.2A$21.A15.A$20.A.A.A9.A.A.A$20.2A.2A
9.2A.2A$21.4A9.4A$21.A15.A$22.2A11.2A$23.A11.A$22.A.A9.A.A$22.3A9.3A$
22.2A11.2A$24.A9.A2$22.A.2A7.2A.A$23.2A9.2A$22.A13.A$24.A9.A$23.A11.A
$24.A9.A$22.2A11.2A$22.2A2.A5.A2.2A2$23.A.A7.A.A$24.A9.A$22.A2.2A5.2A
2.A$21.4A.2A3.2A.4A$20.A4.2A5.2A4.A$27.A3.A$18.2A.A15.A.2A$21.A15.A$18.
2A5.A.2A.2A.A5.2A$21.A3.2A.A.A.2A3.A$21.2A3.A.A.A.A3.2A$24.2A.A3.A.2A
$20.DC8D7.A$23.A11.A$22.A4.2A.2A4.A$28.A.A$26.A5.A$26.A5.A$26.A.A.A.A
$26.A5.A$25.3A3.3A$27.A3.A$28.A.A$25.2A.A.A.2A$24.A3.A.A3.A$23.A3.A3.
A3.A$26.A5.A$23.3A3.A3.3A$27.2A.2A$27.2A.2A2$27.2A.2A$27.2A.2A!
I actually used zfind to find a ship, not qfind.
I actually extended the partial into qfind from that row:

Code: Select all

x = 59, y = 71, rule = LifeHistory
2.A12.A27.A12.A$.A.A10.A.A25.A.A10.A.A$A3.A8.A3.A23.A3.A8.A3.A$.A2.A
8.A2.A25.A2.A8.A2.A$.A.A4.2A4.A.A25.A.A4.2A4.A.A$2.3A3.2A3.3A27.3A3.
2A3.3A$5.A6.A33.A6.A$4.A2.4A2.A4.3A17.3A4.A2.4A2.A$8.2A9.A19.A9.2A$5.
3A2.3A33.3A2.3A$18.A.A17.A.A$18.A.A17.A.A$19.A19.A$21.3A11.3A$21.2A.
2A7.2A.2A$20.A.4A7.4A.A$20.2A3.2A5.2A3.2A$21.A15.A$20.A.A.A9.A.A.A$
20.2A.2A9.2A.2A$21.4A9.4A$21.A15.A$22.2A11.2A$23.A11.A$22.A.A9.A.A$
22.3A9.3A$22.2A11.2A$24.A9.A2$22.A.2A7.2A.A$23.2A9.2A$22.A13.A$24.A9.
A$23.A11.A$24.A9.A$22.2A11.2A$22.2A2.A5.A2.2A2$23.A.A7.A.A$24.A9.A$
22.A2.2A5.2A2.A$21.4A.2A3.2A.4A$20.A4.2A5.2A4.A$27.A3.A$18.2A.A15.A.
2A$21.A15.A$18.2A5.A.2A.2A.A5.2A$21.A3.2A.A.A.2A3.A$21.2A3.A.A.A.A3.
2A$24.2A.A3.A.2A$21.A15.A$23.A11.A$22.A4.2A.2A4.A$28.A.A$26.A5.A$26.A
5.A$26.A.A.A.A$26.A5.A$25.3A3.3A$27.A3.A$28.A.A$25.2A.A.A.2A$24.A3.A.
A3.A$23.A3.A3.A3.A$26.A5.A$23.3A3.A3.3A$27.2A.2A$20.7D2CD2A2$27.2A.2A
$27.2A.2A!
When you extract the file and go into output.txt and look for the first result, you will find out that I found your solution first.
https://drive.google.com/drive/folders/ ... hpRXUG9uKj

My bad, I gave you the wrong row, and I think that's the reason why it gave you the smaller solution:

Code: Select all

x = 82, y = 108, rule = LifeHistory
11$10.A12.A27.A12.A$9.A.A10.A.A25.A.A10.A.A$8.A3.A8.A3.A23.A3.A8.A3.A
$9.A2.A8.A2.A25.A2.A8.A2.A$9.A.A4.2A4.A.A25.A.A4.2A4.A.A$10.3A3.2A3.
3A27.3A3.2A3.3A$13.A6.A33.A6.A$12.A2.4A2.A4.3A17.3A4.A2.4A2.A$16.2A9.
A19.A9.2A$13.3A2.3A33.3A2.3A$26.A.A17.A.A$26.A.A17.A.A$27.A19.A$29.3A
11.3A$29.2A.2A7.2A.2A$28.A.4A7.4A.A$28.2A3.2A5.2A3.2A$29.A15.A$28.A.A
.A9.A.A.A$28.2A.2A9.2A.2A$29.4A9.4A$29.A15.A$30.2A11.2A$31.A11.A$30.A
.A9.A.A$30.3A9.3A$30.2A11.2A$32.A9.A2$30.A.2A7.2A.A$31.2A9.2A$30.A13.
A$32.A9.A$31.A11.A$32.A9.A$30.2A11.2A$30.2A2.A5.A2.2A2$31.A.A7.A.A$
32.A9.A$30.A2.2A5.2A2.A$29.4A.2A3.2A.4A$28.A4.2A5.2A4.A$35.A3.A$26.2A
.A15.A.2A$29.A15.A$26.2A5.A.2A.2A.A5.2A$29.A3.2A.A.A.2A3.A$29.2A3.A.A
.A.A3.2A$32.2A.A3.A.2A$29.A15.A$31.A11.A$30.A4.2A.2A4.A$36.A.A$34.A5.
A$34.A5.A$34.A.A.A.A$34.A5.A$33.3A3.3A$35.A3.A$36.A.A$33.2A.A.A.2A$
32.A3.A.A3.A$31.A3.A3.A3.A$34.A5.A$31.3A3.A3.3A$35.2A.2A$28.7D2CD2A2$
35.2A.2A$34.A.A.A.A$36.A.A$33.A.A3.A.A$35.A3.A3$31.3A7.3A$31.2A.2A3.
2A.2A2$32.4A3.4A$28.2A.A.A.A3.A.A.A.2A$28.2A2.A2.2A.2A2.A2.2A$32.A2.A
3.A2.A$33.3A3.3A$34.A5.A$35.A3.A!
By: C.R. Hilton, currently working on another cool spaceship.

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » April 17th, 2024, 4:49 pm

Sokwe wrote:
April 17th, 2024, 3:43 pm
C_R_116 wrote:
April 17th, 2024, 9:40 am
Look what I found!
Awesome! And way more compact than I was expecting.
wwei47 wrote:
April 17th, 2024, 12:35 pm
C_R_116 wrote:
April 17th, 2024, 9:40 am
I can't help but wonder if there's a bug in a search program. Notice that the original partial has a higher logical width than the completion, ignoring the frontend itself.

Code: Select all

x = 51, y = 48, rule = LifeHistory
3.5A5.5A15.5A5.5A$.2A5.A3.A5.2A11.2A5.A3.A5.2A$9.A.A27.A.A$.A7.A.A7.A
11.A7.A.A7.A$3.A13.A15.A13.A$5.2A7.2A19.2A7.2A$.A3.A2.A3.A2.A3.A11.A
3.A2.A3.A2.A3.A$A3.A2.2A3.2A2.A3.A9.A3.A2.2A3.2A2.A3.A$3.A2.A2.A.A2.A
2.A15.A2.A2.A.A2.A2.A$2A.5A5.5A.2A9.2A.5A5.5A.2A$D3.A.A7.A.A3.D10.D2.
A.A7.A.A2.D$D3.3A7.3A3.D10.D2.3A7.3A2.D$D4.2A7.2A4.D10.D3.2A7.2A3.D$D
3.2A.3A.3A.2A3.D10.D2.2A.3A.3A.2A2.D$D7.2A.2A7.D10.D6.2A.2A6.D$D7.2A.
2A7.D10.D6.2A.2A6.D$D19.D10.D17.D$D6.A.3A.A6.D10.D5.A.3A.A5.D$D5.2A2.
A2.2A5.D10.D4.2A2.A2.2A4.D$D5.A.A.A.A.A5.D10.D4.A.A.A.A.A4.D$D3.A11.A
3.D10.D2.A11.A2.D$D5.A7.A5.D10.D4.A7.A4.D$D3.2A9.2A3.D10.D2.2A9.2A2.D
$D19.D10.D17.D$D2.3A.3A.3A.3A2.D10.D.3A.3A.3A.3A.D$D.A2.2A7.2A2.A.D
10.DA2.2A7.2A2.AD$D19.D10.D17.D$D.A6.A.A6.A.D10.DA6.A.A6.AD$D2.A4.A3.
A4.A2.D10.D.A4.A3.A4.A.D$D7.A3.A7.D10.D2.2A.A5.A.2A2.D$D19.D10.D2.A.A
7.A.A2.D$D4.3A5.3A4.D10.D.2A11.2A.D$D4.2A7.2A4.D10.D17.D$D6.2A3.2A6.D
10.D17.D$D3.A2.3A.3A2.A3.D10.D17.D$D.3A.A.A3.A.A.3A.D10.D17.D$DA4.A7.
A4.AD10.D17.D$D3.A.2A5.2A.A3.D10.D17.D$D.A.A2.A5.A2.A.A.D10.D17.D$DA
4.A7.A4.AD10.D17.D$D.2A2.4A.4A2.2A.D10.D17.D$D9.A9.D10.D17.D$D.A4.3A.
3A4.A.D10.D17.D$CA4.A.A3.A.A4.AC10.D17.D$D3.A.2A2.A2.2A.A3.D10.D17.D$
D2.A2.2A5.2A2.A2.D10.D17.D$D2A.A3.2A.2A3.A.2AD10.D17.D$C2A.3A7.3A.2AC
10.D17.D!
Wouldn't this likely imply that the program found no completion at the lower width when one existed?
It depends on what program was being used to find each pattern. If zfind at logical width 11 was used, then it could have found the initial partial before finding the spaceship. However, if qfind was used for the first search, then it should have found the spaceship before it found that longer partial.

@C_R_116, can you explain how each partial was found, especially which search programs were used and what rows you extended from?
Uh oh, it seems we've encountered upon another error, because I used qfind v2.3 to find this.
I typed this into the command line:

Code: Select all

qfind.exe -p 7 -y 1 -w 11 -s o -d c7ospk -e initrows.txt -t 80
Whereas initrows.txt is this:

Code: Select all

...........
...........
...........
...........
...........
...........
...........
.....o.....
...........
...........
...........
...........
...........
....ooo....
And for the dump files (Which I had to split because of the amount of data it can handle):
c7ospk00035.zip
(8.63 MiB) Downloaded 2 times
c7ospk00045.zip
(9.27 MiB) Downloaded 1 time
c7ospk00060.zip
(9.32 MiB) Downloaded 1 time
By: C.R. Hilton, currently working on another cool spaceship.

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » April 17th, 2024, 4:49 pm

C_R_116 wrote:
April 17th, 2024, 4:49 pm
c7ospk00035.zip
c7ospk00045.zip
c7ospk00060.zip
c7ospk00083.zip
(9.51 MiB) Downloaded 1 time
c7ospk00117.zip
(9.71 MiB) Downloaded 1 time
c7ospk00152.zip
(7.1 MiB) Downloaded 2 times
By: C.R. Hilton, currently working on another cool spaceship.

Sokwe
Moderator
Posts: 2688
Joined: July 9th, 2009, 2:44 pm

Re: qfind - a spaceship search program

Post by Sokwe » April 17th, 2024, 11:11 pm

C_R_116 wrote:
April 17th, 2024, 4:49 pm
I used qfind v2.3 to find this.
I typed this into the command line:

Code: Select all

qfind.exe -p 7 -y 1 -w 11 -s o -d c7ospk -e initrows.txt -t 80
Whereas initrows.txt is this:

Code: Select all

...........
...........
...........
...........
...........
...........
...........
.....o.....
...........
...........
...........
...........
...........
....ooo....
And for the dump files (Which I had to split because of the amount of data it can handle):
Do you still have the program output? It should have found the ship at a depth of around 248 (possibly slightly earlier).
-Matthias Merzenich

User avatar
C_R_116
Posts: 535
Joined: April 15th, 2021, 2:49 pm
Location: At my home doing other random stuff.

Re: qfind - a spaceship search program

Post by C_R_116 » April 18th, 2024, 12:44 am

Sokwe wrote:
April 17th, 2024, 11:11 pm
C_R_116 wrote:
April 17th, 2024, 4:49 pm
I used qfind v2.3 to find this.
I typed this into the command line:

Code: Select all

qfind.exe -p 7 -y 1 -w 11 -s o -d c7ospk -e initrows.txt -t 80
Whereas initrows.txt is this:

Code: Select all

...........
...........
...........
...........
...........
...........
...........
.....o.....
...........
...........
...........
...........
...........
....ooo....
And for the dump files (Which I had to split because of the amount of data it can handle):
Do you still have the program output? It should have found the ship at a depth of around 248 (possibly slightly earlier).
Argh, I should've waited for it to load the last dump file before ending it (They take hours to do so).

BUT, I know that the total depth was 249 when it gave me the result.
By: C.R. Hilton, currently working on another cool spaceship.

Sokwe
Moderator
Posts: 2688
Joined: July 9th, 2009, 2:44 pm

Re: qfind - a spaceship search program

Post by Sokwe » April 18th, 2024, 1:03 am

C_R_116 wrote:
April 18th, 2024, 12:44 am
Argh, I should've waited for it to load the last dump file before ending it (They take hours to do so).

BUT, I know that the total depth was 249 when it gave me the result.
Generally, I think it's a good idea to redirect output to a file by adding " > filename.txt" to the end of the line like in the following example:

Code: Select all

qfind.exe -p 7 -y 1 -w 11 -s o -d c7ospk -e initrows.txt -t 80 > output.txt
Anyway, I don't think there's a bug. When printing partials, the program also includes the extra extension rows from the deepening step. The partial you posted had a length of 50 cells, corresponding to a depth of about 350, while the search didn't find the ship until the partials would have had a depth of around 385 = depth 249 + deepening 136. Therefore you would get the longer partial before the shorter spaceship. Note that the partials you get from the latest dump file have a length of about 54, corresponding to a depth of about 378.

So there's seemingly no apparent bug here. Things seem to be working as expected.

Thanks for the feedback!
-Matthias Merzenich

Post Reply