qfind - a spaceship search program

For scripts to aid with computation or simulation in cellular automata.
User avatar
NNlk05
Posts: 607
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: qfind - a spaceship search program

Post by NNlk05 »

MDA wrote: July 4th, 2026, 7:25 am Then why are diagonal searches possible in both of qfind's predecessors (gfind and (nt)zfind)?
Sokwe wrote: May 3rd, 2021, 3:36 am As bubblegum said, qfind only supports orthogonal spaceship searches, and I have no intention of adding support for non-orthogonal ships. Based on experiments with zfind, non-orthogonal ship searching with qfind would be slower than the same searches with WLS or ikpx2.
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
User avatar
ThePlayzr
Posts: 789
Joined: April 19th, 2025, 1:33 am
Location: Australia
Contact:

Re: qfind - a spaceship search program

Post by ThePlayzr »

This should be very easy (and might not even be worth a post, but then it won't happen), but can you make it so all of the 32k/137k -> 2.3k/100k stuff (I don't know what's it really called) are always accurate to 3 digits? It would just make it a lot easier for me to track progress in my slow searches and see better when it is increasing or decreasing.
Please visit my rules (found on my wiki page) and contribute!
User:ThePlayzr
I have LLS and qfind.
My avatar is the 80th most common pattern, and I have the 80th most posts on the forums.
User avatar
NNlk05
Posts: 607
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: qfind - a spaceship search program

Post by NNlk05 »

ThePlayzr wrote: July 8th, 2026, 5:14 am This should be very easy (and might not even be worth a post, but then it won't happen), but can you make it so all of the 32k/137k -> 2.3k/100k stuff (I don't know what's it really called) are always accurate to 3 digits? It would just make it a lot easier for me to track progress in my slow searches and see better when it is increasing or decreasing.
I think the right part is common.h.static void deepen(void):

Code: Select all

   /* report what's happening */
   printf("%d, deepening %d, ", i, deepeningAmount);
   putnum(qTail - qHead);
   printf("/");
   putnum(qTail);
   fflush(stdout);
   
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
User avatar
NNlk05
Posts: 607
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: qfind - a spaceship search program

Post by NNlk05 »

I just realized that qfind outputed a prousto-spaceship here:
NNlk05 wrote: June 10th, 2026, 5:27 pm Updated stamp collection:

Code: Select all

x = 301, y = 286, rule = B34wyz/S2-n3History
8.3D$10.D$8.3D8.A4.AB5.2A266.D$8.D9.BAB2.B2A4.A.A265.B2D$8.3D8.A4.2AB
2.A.B265.BDBD$24.BA3.2A265.4B$192.E.4E.E4.D8.3E2.3E74.4B$117.3E4.D3.3E
8.3E6.3E2.D4.3E5.D5.E8.E5.D3.2E.4E.2E3.D24.D27.D5.3E5.D22.4B$19.A6.A7.
2A80.E3.E3.D2.E2.E7.E2.E5.E2.E2.D3.E3.E4.D4.3E6.3E4.D2.E2.2E2.2E2.E2.
D8.E.E2.E.E8.D27.D7.E5.D21.4B$18.BAB4.BAB5.A2BA5.B2.B2AB2.B64.E3.E3.D
5.E10.E8.E2.D3.E3.E4.D4.E3.4E3.E4.D5.E4.E5.D8.E.E2.E.E8.D27.D6.E6.D20.
4B$17.2A.2A4.A2B3.A4BA3.3AB4AB3A71.D5.E6.E3.E4.E3.E2.D12.D9.2E9.D3.E.
E4.E.E3.D24.D7.3E7.3E7.D13.D19.4B$18.BAB4.2BA4.A4BA4.BA2B2A2BAB64.2E.
2E3.D2.E.E11.E4.E3.E2.D3.2E.2E4.D7.2E2.2E7.D4.E6.E4.D4.3E2.2E2.2E2.3E
4.D4.E.2E2.E5.E2.2E.E4.D13.D17.5B$8.3D8.A6.BAB4.A2BA7.B4.B65.E5.E2.D13.
E.E9.E2.D4.E.E5.D.4E.E6.E.4E.D4.2E4.2E4.D3.2E.3E6.3E.2E3.D2.2E.E.E11.
E.E.2E2.D13.D17.6B$10.D16.A6.2A80.E3.E3.D22.E.E3.D12.D.3E.2E6.2E.3E.D
16.D3.2E14.2E3.D2.2E.2E.3E5.3E.2E.2E2.D13.D16.7B$8.3D113.D28.D12.D3.E
.2E6.2E.E3.D16.D4.E.2E8.2E.E4.D2.5E13.5E2.D13.D16.8B$10.D106.3D4.D28.
D12.D.2E2.2E6.2E2.2E.D16.D6.E10.E6.D27.D3.3D7.D12.2B.B3D6B$8.3D27.4B75.
D6.D28.D12.D.E.2E10.2E.E.D16.D7.E2.3D3.E7.D27.D3.D9.D12.4BD9B$18.A2.A
2BA2.A8.B.4A.B73.D6.D28.D12.D20.D6.3D7.D10.D13.D27.D3.D9.D11.5B2D8B$17.
B4A2B4AB6.4A2.4A72.D6.D10.3D.3D11.D2.3D.3D3.D6.E6.E6.D6.D9.D5.3E2.D5.
3E5.D10.D.D.3D10.D3.D9.D11.6B.5B2CB$18.B3A2B3AB6.AB2AB2.B2ABA71.3D4.D
12.D.D13.D4.D.D5.D3.E2.2E4.2E2.E3.D6.D9.D10.D13.D10.D.D.D12.D3.3D3.2D
2.D10.6B2.3BCB2CB$20.B4.B7.A3B6.3BA77.D10.3D.D13.D2.3D.D5.D20.D6.D9.D
6.E3.3D4.E6.D10.3D.D12.D9.D.D.D9.8B.3B3CB$34.2A8.2A70.5D3.D10.D3.D13.
D4.D.D5.D7.3D.3D6.D6.3D7.D3.3E12.3E3.D12.D.D12.D2.5D2.D.D.D8.8B2.4BC3B
$124.D10.3D.3D11.D2.3D.3D3.D9.D.D8.D16.D2.3E4.5D5.3E2.D12.D.3D10.D9.D
.D.D8.7B4.8B$25.B11.A86.D28.D12.D7.3D.D8.D4.7D5.D24.D27.D9.2D2.D8.B2C
5B4.6B$24.3A9.ABA7.3B8.A.AB56.3D4.D9.9D10.D.9D2.D7.D3.D8.D16.D4.E.3E.
D.D2.3E.E4.D9.9D9.D3.D.D7.D8.B2CBC3B5.6B$18.2AB2.BABAB7.A3BA5.3AB.B5.
AB2A2B57.D4.D28.D12.D7.3D.3D6.D6.3D7.D7.2E.D.D2.2E7.D27.D3.D.D7.D9.B3C
3B5.6B$18.2BA3.2A.2A5.BAB.2BA3.B3AB3A3.A4B2A.A53.3D4.D12.D.D13.D4.3D5.
D20.D8.D7.D7.E2.3D3.E7.D10.3D.3D10.D3.3D7.D8.3BC4B6.5B$18.2BA4.BABAB5.
B2ABA5.A.3AB5.A.4B2AB52.D6.D12.D.D13.D4.D7.D6.9D5.D6.3D7.D7.2E3.D2.2E
7.D12.D3.D10.D5.D7.D7.8B7.2B$18.2AB5.3A7.2AB8.B2A8.A5B53.3D4.D12.3D13.
D4.3D5.D20.D8.D7.D7.2E3.D2.2E7.D10.3D.3D10.D5.D7.D8.6B$27.B9.B21.2A.A
61.D14.D13.D4.D.D5.D9.3D8.D6.3D7.D5.E2.E6.E2.E5.D10.D3.D12.D13.D7.6B$
124.D14.D13.D4.3D5.D9.D10.D23.2E8.2E6.D10.3D.3D10.D13.D7.6B$124.D51.3D
100.5B$24.A153.D101.2B$22.A3BA17.A22.A108.3D$22.5B15.A3BA19.BAB$21.A5B
A14.5B18.A3BA$20.AB5ABA8.2A2.A5BA2.2A11.2B2AB2A2B$18.BA2B.3B.2BAB6.A2.
AB5ABA2.A11.2B2A.2A2B$18.BA3B.B.3BAB7.3AB.3B.B3A9.B2.2B2A.2A2B2.B$17.
2BA3BA.A3BA2B27.3A.2B2A.2A2B.3A$18.BA3B.B.3BAB7.3AB.3B.B3A9.B2.2B2A.2A
2B2.B$18.BA2B.3B.2BAB6.A2.AB5ABA2.A11.2B2A.2A2B$20.AB5ABA8.2A2.A5BA2.
2A11.2B2AB2A2B$21.A5BA14.5B18.A3BA$22.5B15.A3BA19.BAB$22.A3BA17.A22.A
$24.A5$24.A20.A$23.BAB18.BAB$24.A18.A3BA$21.7B13.2B2AB2A2B13.A2BA$21.
7B13.2B2A.2A2B13.4B$8.D.D9.9A11.3B2A.2A3B11.A4BA$8.D.D8.2B7A2B8.BAB.B
2A.2AB.BAB8.AB4ABA$8.3D7.2A2B5.2B2A6.3AB.B2A.2AB.B3A6.A2BA2.A2BA$10.D
8.2B7A2B8.BAB.B2A.2AB.BAB8.AB4ABA$10.D9.9A11.3B2A.2A3B11.A4BA$21.7B13.
2B2A.2A2B13.4B$21.7B13.2B2AB2A2B13.A2BA$24.A18.A3BA$23.BAB18.BAB$24.A
20.A5$46.A$24.2A18.A3BA$22.A4BA16.5B$22.6B15.A5BA$21.A6BA13.AB5ABA$20.
AB6ABA10.BA2B.3B.2BAB$19.A2BA4.A2BA9.BA3B.B.3BAB$20.AB6ABA9.2BA3BA.A3B
A2B$21.A6BA10.2BA3BA.A3BA2B$22.6B12.BA3B.B.3BAB$22.A4BA12.BA2B.3B.2BA
B$24.2A16.AB5ABA$43.A5BA$44.5B$44.A3BA$46.A5$66.A$65.ABA$44.2A17.BA3B
AB$26.A12.2A2.A2BA2.2A8.2A.2BA3BA2B.2A$25.ABA11.A2.AB2ABA2.A8.A2.AB.A
BA.BA2.A$9.3D11.BA3BAB10.4A2B4A10.3AB2.A2.B3A$9.D13.BA3BAB$9.3D9.2AB.
ABA.B2A8.4A2B4A10.3AB2.A2.B3A$11.D8.A.AB2.A2.BA.A6.A2.AB2ABA2.A8.A2.A
B.ABA.BA2.A$9.3D8.A11.A6.2A2.A2BA2.2A8.2A.2BA3BA2B.2A$19.2A11.2A10.2A
17.BA3BAB$65.ABA$66.A7$9.3D11.2B9.B$9.D11.2B3A7.BAB$9.3D8.3B3A6.AB3AB
$9.D.D8.3A.3A4.A2B.3AB$9.3D9.3A3B5.AB2ABA$21.3A2B7.2AB$22.2B10.B8$23.
A$9.3D10.BAB$9.D.D9.2B3A$9.3D8.3B.BAB$9.D.D7.3A3.3A$9.3D8.BAB.3B$21.3A
2B$22.BAB$23.A4$24.2A$24.A.A$25.AB$24.2B$24.4B$23.BA4BAB$23.3A3B2A2B.
2A$9.3D11.2BA2B2A3BA.A$9.D.D10.4B2.4B.BA$9.3D7.AB.4B2.4B$11.D6.A.A3B2A
2BA2B$9.3D6.2A.2B2A3B3A$23.BA4BAB$26.4B$28.2B$27.BA$27.A.A$28.2A8$22.
B2A$5.D3.3D9.2BABA$5.D3.D.D9.5B$5.D3.D.D9.2BA2B$5.D3.D.D9.2B3A$5.D3.3D
10.3B4$22.B2A3B$5.D3.D.D10.A2BA2B$5.D3.D.D9.BA3BA2B$5.D3.3D10.BA2BAB$
5.D5.D9.2BA3BAB$5.D5.D10.2BA2BA$22.3B2AB3$25.B3.B$24.3B.BAB$22.7B2A2B
$21.3BA3BA5B$4.3D2.3D9.2BABA3B3A2B$6.D2.D10.BABA4BA3BA2B$4.3D2.3D7.B2A
BAB5ABA4B$4.D4.D.D8.2BAB3A.2A5B$4.3D2.3D9.4BA3.A4B$20.5B2A.3ABA2B$19.
4BAB5ABAB2AB$20.2BA3BA4BABAB$21.2B3A3BABA2B$21.5BA3BA3B$22.2B2A7B$24.
BAB.3B$25.B3.B8$29.B.3B$23.4B.6B$22.12B$5.D.D.3D9.14B$5.D.D.D.D7.5B2A
9B$5.3D.3D5.6B2A8B$7.D.D.D5.7B3A4B$7.D.3D6.7B2A3B$18.6B.4B$18.3B.B9$28.
2B$28.5B$19.2B6.B3A2B$19.5B3.3BA2B$18.6B2.3B2AB$18.6B.2A6B$17.8B4A3B$
16.10B3A2B$5.3D.3D3.12BA4B$5.D3.D5.17B$5.3D.3D3.17B$7.D.D.D3.4BA12B$5.
3D.3D4.2B3A10B$15.3B4A8B$14.6B2A.6B$15.B2A3B2.6B$14.2BA3B3.5B$14.2B3A
B6.2B$14.5B$17.2B7$9.3B.B$9.6B.4B$9.12B$8.14B$8.9B2A5B$10.8B2A6B$12.4B
3A7B$13.3B2A7B$5.3D.3D2.4B.6B$5.D.D.D10.B.3B.B$5.3D.3D12.2B2A$7.D.D.D
12.2B2A$5.3D.3D8.B.3B.B$14.4B.6B$13.3B2A7B$12.4B3A7B$10.8B2A6B$8.9B2A
5B$8.14B$9.12B$9.6B.4B$9.3B.B9$29.B.3B$23.4B.6B$22.12B$21.14B2.6B$3D.
3D.3D8.5B2A10B.B3A2B$2.D3.D.D8.6B2A8B3.BA6B$3D.3D.3D6.7B3A4B6.A4BA$2.
D3.D.D.D7.7B2A3B6.6BAB$3D.3D.3D7.6B.4B8.2B3AB$18.3B.B14.6B!

Code: Select all

x = 10, y = 27, rule = B34wyz/S2-n3History
$8.A$7.BAB$7.ABA$7.3B$7.3B$4.A2.B2A$2.2ABA.2AB$2.3B4AB$2.5BA2B$2.5A3B
$2.2B2A4B$2.8B$2.4BA3B$2.3BA4B$2.2BABA3B$2.B2A5B$.A2BA5B$.A2BA5B$.2B2A
BA3B$.4BABA2B$.9B$.4BA4B$.4BA4B$.4BA2BAB$.6BA2B$.4B2A3B!
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
Sokwe
Moderator
Posts: 3375
Joined: July 9th, 2009, 2:44 pm

Re: qfind - a spaceship search program

Post by Sokwe »

MDA wrote: July 4th, 2026, 7:13 am Are you planning to add support for searching diagonal and oblique spaceship speeds? What about photons and oscillators?
Unfortunately, none of those types of searches work well with qfind's method.

Diagonal spaceships: memory usage in qfind limits the search width to 10 or 11, which is typically much too narrow to find diagonal spaceships. I also tried implementing diagonal searches in zfind (which qfind is largely based on), but the search was slower than the equivalent search in JLS.

Photons: qfind's row ordering (taken from gfind) does not support photons. The method used by MPPS is much better for searching for high-period photons, and LLSSS is far better at finding p1 photons than qfind could ever be, so I see no reason to try to hack support for photons into qfind.

Oscillators: the methods for effective oscillator searching are typically quite different from spaceship searching. You are better off using other tools. I recommend LLS.
-Matthias Merzenich
User avatar
R2INT
Posts: 811
Joined: July 2nd, 2024, 7:42 pm

Re: qfind - a spaceship search program

Post by R2INT »

I found a very small c/7 spaceship in B35/S126 that caused problems for qfind:

Code: Select all

x = 15, y = 5, rule = B35/S126
bob3o3b3obo$ob2o2bobo2b2obo$obobo5bobobo$bob4ob4obo$3b2o5b2o!
It was found with a queue size of 23 after 17 minutes. Decreasing it to 22 results in this output, which prints "Success called on search root!" when encountering the spaceship:

Code: Select all

qfind v2.4b by Matthias Merzenich, 4 September 2025
Input: -t 24 -r B35/S126 -q 22 -h 22 -v c/7 -s o -w 8


Rule: B35/S126
speed: c/7
Width: 8
Symmetry: odd
Dump interval: 1800 seconds
Dump mode: overwrite
Queue size: 2^22
Hash table size: 2^22
Minimum deepening increment: 3
Lookahead caching disabled
Number of threads: 24

04/08/26 13:42:45 Starting search
04/08/26 13:42:46 Queue full, depth 6, deepening 3, 524k/551k -> 397k/424k
04/08/26 13:43:25 Queue full, depth 6, deepening 6, 524k/557k -> 365k/396k
04/08/26 13:43:55 Queue full, depth 6, deepening 9, 524k/563k -> 400k/437k
04/08/26 13:44:27 Queue full, depth 6, deepening 12, 524k/569k -> 361k/403k
04/08/26 13:44:58 Queue full, depth 6, deepening 15, 524k/575k -> 350k/397k
04/08/26 13:45:25 Queue full, depth 6, deepening 18, 524k/582k -> 308k/359k
04/08/26 13:45:45 Queue full, depth 7, deepening 20, 524k/590k -> 297k/357k
04/08/26 13:46:03 Queue full, depth 7, deepening 23, 524k/600k -> 257k/322k
04/08/26 13:46:19 Queue full, depth 7, deepening 26, 524k/607k -> 224k/294k
04/08/26 13:46:35 Queue full, depth 7, deepening 29, 524k/613k -> 206k/281k
04/08/26 13:46:49 Queue full, depth 7, deepening 32, 524k/622k -> 185k/267k
04/08/26 13:47:01 Queue full, depth 7, deepening 35, 524k/630k -> 168k/256k
04/08/26 13:47:11 Queue full, depth 7, deepening 38, 524k/639k -> 153k/248k
04/08/26 13:47:19 Queue full, depth 9, deepening 39, 524k/864k -> 168k/411k
04/08/26 13:47:31 Queue full, depth 9, deepening 42, 524k/873k -> 168k/443k
04/08/26 13:47:46 Queue full, depth 10, deepening 44, 524k/888k -> 171k/478k
04/08/26 13:48:02 Queue full, depth 11, deepening 46, 524k/922k -> 172k/509k
04/08/26 13:48:17 Queue full, depth 11, deepening 49, 524k/930k -> 156k/483k
04/08/26 13:48:34 Queue full, depth 11, deepening 52, 524k/931k -> 145k/473k
04/08/26 13:49:02 Queue full, depth 12, deepening 54, 524k/931kSuccess called on search root!
 -> 147k/495k
04/08/26 13:49:21 Search complete.

0 spaceships found.
Maximum depth reached: 12
Longest partial result:

x = 9, y = 1, rule = B35/S126
o7bo!
Queue size 23, which found the spaceship:

Code: Select all

qfind v2.4b by Matthias Merzenich, 4 September 2025
Input: -t 24 -r B35/S126 -q 23 -h 23 -v c/7 -s o -w 8


Rule: B35/S126
speed: c/7
Width: 8
Symmetry: odd
Dump interval: 1800 seconds
Dump mode: overwrite
Queue size: 2^23
Hash table size: 2^23
Minimum deepening increment: 3
Lookahead caching disabled
Number of threads: 24

04/08/26 13:49:44 Starting search
04/08/26 13:49:44 Queue full, depth 6, deepening 3, 1.0M/1.1M -> 731k/784k
04/08/26 13:51:54 Queue full, depth 6, deepening 6, 1.0M/1.1M -> 694k/755k
04/08/26 13:53:29 Queue full, depth 6, deepening 9, 1.0M/1.1M -> 679k/756k
04/08/26 13:55:04 Queue full, depth 7, deepening 11, 1.0M/1.1M -> 644k/736k
04/08/26 13:56:37 Queue full, depth 7, deepening 14, 1.0M/1.1M -> 556k/659k
04/08/26 13:57:45 Queue full, depth 7, deepening 17, 1.0M/1.1M -> 476k/589k
04/08/26 13:58:41 Queue full, depth 7, deepening 20, 1.0M/1.1M -> 436k/562k
04/08/26 13:59:28 Queue full, depth 7, deepening 23, 1.0M/1.2M -> 392k/532k
04/08/26 14:00:11 Queue full, depth 7, deepening 26, 1.0M/1.2M -> 352k/506k
04/08/26 14:00:40 Queue full, depth 7, deepening 29, 1.0M/1.2M -> 312k/478k
04/08/26 14:01:10 Queue full, depth 9, deepening 30, 1.0M/1.6M -> 353k/816k
04/08/26 14:01:42 Queue full, depth 9, deepening 33, 1.0M/1.7M -> 343k/862k
04/08/26 14:02:21 Queue full, depth 10, deepening 35, 1.0M/1.7M -> 349k/926k
04/08/26 14:03:04 Queue full, depth 11, deepening 37, 1.0M/1.8M -> 353k/986k
04/08/26 14:03:45 Queue full, depth 11, deepening 40, 1.0M/1.8M -> 315k/921k
04/08/26 14:04:27 Queue full, depth 12, deepening 42, 1.0M/1.8M -> 311k/958k
04/08/26 14:05:01 Queue full, depth 12, deepening 45, 1.0M/1.8M -> 280k/916k
04/08/26 14:05:31 Queue full, depth 13, deepening 47, 1.0M/1.8M -> 261k/939k
04/08/26 14:05:59 Queue full, depth 14, deepening 49, 1.0M/2.0M -> 242k/1.0M
04/08/26 14:06:30 Queue full, depth 15, deepening 51, 1.0M/2.1M
x = 15, y = 5, rule = B35/S126
bob3o3b3obo$ob2o2bobo2b2obo$obobo5bobobo$bob4ob4obo$3b2o5b2o!

 -> 222k/1.0M
04/08/26 14:06:55 Queue full, depth 16, deepening 53, 1.0M/2.2M -> 203k/1.1M
Range-2 INT
R2INT's Rule Collection

Travelling Ts has surpassed LeapLife in post count, but not yet in technology.
Post Reply