Logic Life Search

For scripts to aid with computation or simulation in cellular automata.
User avatar
dexter1
Posts: 71
Joined: February 26th, 2020, 8:46 am

Re: Logic Life Search

Post by dexter1 » July 23rd, 2021, 4:04 pm

LaundryPizza03 wrote:
July 22nd, 2021, 6:38 pm
I got this error after updating the LLS from github and trying to run LLS again:

Code: Select all

...
I'm using macOS Big Sur 11.4 with Python 3.9.

EDIT: This is on the develop branch; the master branch works fine, but has the old flag system. It looks python2 is the branch I need.
You should switch to the gitlab repository. The develop branch has python3 support and the new flag system.
Frank Everdij

User avatar
LaundryPizza03
Posts: 2295
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Logic Life Search

Post by LaundryPizza03 » August 18th, 2021, 4:58 pm

dexter1 wrote:
July 23rd, 2021, 4:04 pm
LaundryPizza03 wrote:
July 22nd, 2021, 6:38 pm
I got this error after updating the LLS from github and trying to run LLS again:

Code: Select all

...
I'm using macOS Big Sur 11.4 with Python 3.9.

EDIT: This is on the develop branch; the master branch works fine, but has the old flag system. It looks python2 is the branch I need.
You should switch to the gitlab repository. The develop branch has python3 support and the new flag system.
I don't know what tht means I should do. The develop branch is the one that is causing problems for me.

Also, on the python2 branch, I got this error:

Code: Select all

> ./lls -r B2ce3e4jr5cin6-en7c8/S012-ac3-cn4-eikny5-kr67c8 -b 20 20 2 -p ">0" 0 -p "=0" 1

Getting search pattern...
Done

Preprocessing...
Done

Number of undetermined cells: 800
Number of variables: 2399
Number of clauses: 174629

Active width: 20
Active height: 20
Active duration: 2

Solving...
Traceback (most recent call last):
  File "./lls", line 515, in <module>
    indent = indent, verbosity = verbosity
  File "/Users/gb/logic-life-search/src/LLS_main.py", line 65, in LLS
    indent = indent, verbosity = verbosity
  File "/Users/gb/logic-life-search/src/LLS_main.py", line 268, in preprocess_and_solve
    indent = indent, verbosity = verbosity
  File "/Users/gb/logic-life-search/src/LLS_SAT_solvers.py", line 55, in SAT_solve
    solution, time_taken = use_solver(solver, dimacs_file, parameters = parameters, timeout = timeout, indent = indent, verbosity = verbosity)
  File "/Users/gb/logic-life-search/src/LLS_SAT_solvers.py", line 103, in use_solver
    stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
Another LLS search preprocessed in parallel appears to be working properly, which means the fault lies in this one. Now I can't find if there is a vanishing pattern in Banks-III.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

User avatar
pzq_alex
Posts: 792
Joined: May 1st, 2021, 9:00 pm
Location: tell me if you know

Re: Logic Life Search

Post by pzq_alex » August 30th, 2021, 9:46 pm

Can LLS search for catalysts like Bellman? I know Bellman searches for catalysts using a brute-force backtrack method, and LLS uses SAT solvers, so LLS should theoretically be better than Bellman at that.
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)

How much of current CA technology can I redevelop "on a desert island"?

yoleo
Posts: 124
Joined: October 26th, 2021, 11:48 pm

Re: Logic Life Search

Post by yoleo » October 26th, 2021, 11:58 pm

I'm trying to use Logic Life Search to find some tagalongs. I thought I'd target the ones here: https://www.conwaylife.com/wiki/44P5H2V0 maybe not the easiest starting point, but still. Anyway: I create the search pattern, pass in the proper arguments, and get...a blank pattern. I am passing the -i option. Am I overlooking something obvious and doing something wrong? Or is the program counting the ON cells from the spaceship? If so, how could I fix this?

Input pattern:

Code: Select all

0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 0 1 0 0 * * * * * * *
0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * *
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * *  
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * *
0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 
0 0 0 0 0 0 0 0 0 1 0 1 0 0 * * * * * * * 
0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 * * * * * * * 
0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 * * * * * * * 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 * * * * * * 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 1 0 0 * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 
0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 
0 0 0 0 0 0 0 1 1 0 0 1 0 0 * * * * * * * 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 
0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 1 0 0 * * * * * * * 0 0 
0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 0 0 
0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 0 0 
0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 0 0 
0 0 0 0 0 0 0 0 0 0 * * * * * * * * * 0 0 
0 0 0 0 0 0 0 0 0 0 0 * * * * * * * * 0 0 
0 0 0 0 0 0 0 1 0 1 0 0 * * * * * * * 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 
0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
Running LLS with

Code: Select all

./lls -S lingeling inputFile.txt -i -p 5 -x -2 -y 0 -v 3 
EDIT: I realized that I cloned the project from GitHub, not GitLab. Thought that might do it, but nope, I'm getting the same result with the GitLab version too.

User avatar
yujh
Posts: 3066
Joined: February 27th, 2020, 11:23 pm
Location: I'm not sure where I am, so please tell me if you know
Contact:

Re: Logic Life Search

Post by yujh » October 27th, 2021, 10:42 am

yoleo wrote:
October 26th, 2021, 11:58 pm
I'm trying to use Logic Life Search to find some tagalongs.
Off-topic, but I think you are actually supposed to ikpx2 those stuff
Rule modifier

B34kz5e7c8/S23-a4ityz5k
b2n3-q5y6cn7s23-k4c8
B3-kq6cn8/S2-i3-a4ciyz8
B3-kq4z5e7c8/S2-ci3-a4ciq5ek6eik7

Bored of Conway's Game of Life? Try Pedestrian Life -- not pedestrian at all!

yoleo
Posts: 124
Joined: October 26th, 2021, 11:48 pm

Re: Logic Life Search

Post by yoleo » October 27th, 2021, 8:06 pm

Thanks for bringing that program to my attention! That's one of the struggles about GoL: there's so many search scripts, since they date back to the very start...I've messed around with bellman, LLS, and catalyst a little. (I'm on a Mac, so can't run WLS). ikpx2 seems like a different sort of program: it just kinda does its thing, searches without a lot of human input. To use this to find tagalongs, I'd just specify a partial? Also trying to figure out how I'd keep the search to "a reasonable size/time"...my hardware isn't great...

Speaking of which: how do people process the output of scripts? For example, running the Hereschel-to-behive.txt example for catalyst at https://github.com/dvgrn/b3s23life/tree/main/catgl yields about 300 results...that's almost too many to look through individually...

EDIT: thanks for the response, I got it to work. Also, the develop branch of LLS seems to have a circular import right now. In the file LLS_rules.py, comment out the line

Code: Select all

import src.LLS_formatting as LLS_formatting
.
Last edited by yoleo on December 4th, 2021, 5:49 am, edited 1 time in total.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » October 28th, 2021, 6:27 am

yoleo wrote:
October 26th, 2021, 11:58 pm
I'm trying to use Logic Life Search to find some tagalongs. I thought I'd target the ones here: https://www.conwaylife.com/wiki/44P5H2V0 maybe not the easiest starting point, but still. Anyway: I create the search pattern, pass in the proper arguments, and get...a blank pattern. I am passing the -i option. Am I overlooking something obvious and doing something wrong? Or is the program counting the ON cells from the spaceship? If so, how could I fix this?

Running LLS with

Code: Select all

./lls -S lingeling inputFile.txt -i -p 5 -x -2 -y 0 -v 3 
EDIT: I realized that I cloned the project from GitHub, not GitLab. Thought that might do it, but nope, I'm getting the same result with the GitLab version too.
Currently the best version of LLS to use is the 'develop' branch, found here: https://gitlab.com/OscarCunningham/logi ... ee/develop. This runs with Python 3.

The command line arguments have changed slightly, you would want to use

Code: Select all

./lls inputFile.txt -S lingeling -p=">88" -s p5 x2 y0 -v 3
where the -s option says that you want the pattern to have a symmetry where it repeats with period 5, translated by 2 in the x direction and 0 in the y direction, and the -p option says that you want the population to be more than 88 in the first generation (this includes the live cells already specified). The other thing is that LLS assumes the x direction to increase left-to-right and the y direction to increase downwards. So you want to use the reflection of your search pattern.

Code: Select all

0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
* * * * * * * 0 0 1 0 1 0 0 0 0 0 0 0 0 0
* * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * 0 0 1 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0
* * * * * * * 0 0 0 1 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
* * * * * * * 0 0 0 1 0 0 0 1 0 0 0 0 0 0
* * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * 0 0 0 1 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
* * * * * * 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
* * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0
* * * * * * * 0 0 1 0 0 1 1 0 0 0 0 0 0 0
* * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 0
* * * * * * * 0 0 1 0 0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
0 0 * * * * * * * 0 0 1 0 1 0 0 0 0 0 0 0
0 0 * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0
0 0 * * * * * * * * * 0 0 0 0 0 0 0 0 0 0
0 0 * * * * * * * * * 0 0 0 0 0 0 0 0 0 0
0 0 * * * * * * * * * 0 0 0 0 0 0 0 0 0 0
0 0 * * * * * * * * 0 0 0 0 0 0 0 0 0 0 0
0 0 * * * * * * * 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
Using these changes I successfully managed to find the tagalong on my machine.

User avatar
LaundryPizza03
Posts: 2295
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Logic Life Search

Post by LaundryPizza03 » December 9th, 2021, 8:55 pm

This command gave me a glide-symmetric 5c/6o instead of a symmetric one. What's wrong with it?

Code: Select all

./lls -S cadical -b 10 9 -s p6 x5 "D2-" -p ">0" -r pB2ac345678/S012345678

Code: Select all

x = 3, y = 9, rule = B2acn3cery4acenqr5einq7e8/S12eik3jnry4cik5ijky6ek7
bo$2o2$b2o$3o$bo$2bo2$2bo!

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Logic Life Search

Post by AforAmpere » December 10th, 2021, 10:45 pm

LaundryPizza03 wrote:
December 9th, 2021, 8:55 pm
This command gave me a glide-symmetric 5c/6o instead of a symmetric one. What's wrong with it?

Code: Select all

./lls -S cadical -b 10 9 -s p6 x5 "D2-" -p ">0" -r pB2ac345678/S012345678
It didn't do so for me, I got this ship:

Code: Select all

x = 2, y = 7, rule = B2ac3ekn4ceiq5ijn6ai/S12-ce3-acey4ir5aceik6ak7
o$bo$bo$2o$bo$bo$o!
Are you sure that's the command that gave that ship?
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

User avatar
LaundryPizza03
Posts: 2295
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Logic Life Search

Post by LaundryPizza03 » December 10th, 2021, 11:57 pm

AforAmpere wrote:
December 10th, 2021, 10:45 pm
LaundryPizza03 wrote:
December 9th, 2021, 8:55 pm
This command gave me a glide-symmetric 5c/6o instead of a symmetric one. What's wrong with it?

Code: Select all

./lls -S cadical -b 10 9 -s p6 x5 "D2-" -p ">0" -r pB2ac345678/S012345678
It didn't do so for me, I got this ship:

Code: Select all

x = 2, y = 7, rule = B2ac3ekn4ceiq5ijn6ai/S12-ce3-acey4ir5aceik6ak7
o$bo$bo$2o$bo$bo$o!
Are you sure that's the command that gave that ship?
Yes; I had to specify D2- under a separate flag to get the expected symmetry type; e.g.

Code: Select all

./lls -S cadical -b 10 9 -s p6 x5 -s "D2-" -p ">0" -r pB2ac345678/S012345678

Code: Select all

x = 5, y = 9, rule = B2-en3-aijk4-ajky5-jn6akn7c/S1e2aei3-cein4ijnrz5aikqy6-en7e8
o2bo$b4o$b3o$b4o$5o$b4o$b3o$b4o$o2bo!
I could also reproduce the issue for c/2o spaceships in B2a rules. e.g.

Code: Select all

./lls -S cadical -b 10 9 -s p2 x1 'D2-' -p ">0" -r pB2ac345678/S012345678

Code: Select all

x = 9, y = 9, rule = B2-ik3-ajnr4-rtz5aejqr6ak7/S1c2ain3acn4-crwz5cjr6i78
o2bo$b2o3bobo$bo4b2o$ob4o2bo$5b3o$2b2obo$b3o2bobo$4obobo$bo2bo2bo!

Code: Select all

./lls -S cadical -b 10 9 -s p2 x1 -s 'D2-' -p ">0" -r pB2ac345678/S012345678

Code: Select all

x = 9, y = 9, rule = B2-ek3aciry4-aknw5-ajr6-ac7/S01c2-ac3acekn4-jkny5-acjn6ain78
4bo$obo4bo$bo2b2o$2b5obo$ob5o$2b5obo$bo2b2o$obo4bo$4bo!

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » December 22nd, 2021, 7:50 am

LaundryPizza03 wrote:
December 9th, 2021, 8:55 pm
This command gave me a glide-symmetric 5c/6o instead of a symmetric one. What's wrong with it?

Code: Select all

./lls -S cadical -b 10 9 -s p6 x5 "D2-" -p ">0" -r pB2ac345678/S012345678

Code: Select all

x = 3, y = 9, rule = B2acn3cery4acenqr5einq7e8/S12eik3jnry4cik5ijky6ek7
bo$2o2$b2o$3o$bo$2bo2$2bo!
The symmetry '-s p6 x5 "D2-"' says 'after six generations, translate by 5 in the x direction and reflect in the horizontal axis'. What you want is two symmetries: '-s p6 x5 -s "D2-"'.

User avatar
LaundryPizza03
Posts: 2295
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Logic Life Search

Post by LaundryPizza03 » March 29th, 2022, 2:38 am

The command

Code: Select all

./lls -S cadical -r B012345678/S123456 -b 3 2 -s p2 -a p1 -p ">=1"
failed to generate the expected dot. It is unclear why this happens, but it is also of note that increasing the bounding box did not fix the problem.

Code: Select all

x = 1, y = 1, rule = B012345678/S123456
o!
EDIT: Using this forced strobing background fixed the problem.

Code: Select all

0'

1'
EDIT2: Some patterns, such as 2*2 p4 oscillator in B0178/S1, return nonsense with this background. There is a genuine bug here.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » March 30th, 2022, 5:54 am

Thanks. I don't have time to look at this right now, but I'll add it as a test case. Note to self:

Code: Select all

./lls -r B012345678/S123456 -b 5 -s p2
also fails.

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

Re: Logic Life Search

Post by GUYTU6J » April 7th, 2022, 11:43 am

A quick note for fixing a bug: when following the latest instruction here inside WSL2, I got a "Permission denied" bug mentioned earlier in this thread. It turns out that simply "Drag kissat from that directory to the solvers directory of LLS" (inside WSL directory viewed in Windows File Explorer) is not working; the actual copying should be done in the WSL console like

Code: Select all

cp kissat/build/kissat ./logic-life-search-develop/solvers
And by the way, can we expect an update to Tutorials/LLS?

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 15th, 2022, 8:40 am

I finally decided to stop waiting around and just release the develop version to master. LLS is now Version 1 and runs on Python 3 (a.k.a. Python). Please let me know if I broke anything.

I also updated the LifeWiki tutorial. I'd appreciate it if someone with a Windows machine could update the Windowsy bits. Is Cygwin still the best way to run Python on Windows? Also if kissat works as well as lingeling on Windows it would be best to use that as our example SAT solver.
Last edited by Macbi on May 16th, 2022, 5:36 pm, edited 1 time in total.

User avatar
dexter1
Posts: 71
Joined: February 26th, 2020, 8:46 am

Re: Logic Life Search

Post by dexter1 » May 15th, 2022, 12:00 pm

Macbi wrote:
May 15th, 2022, 8:40 am
I finally decided to stop waiting around and just release the develop version to master. LLS now runs on Python 3 (a.k.a. Python). Please let me know if I broke anything.
I have found two minor problems:
- If a person runs the 'lls' script as a standalone script (without 'python' in front), the hashbang in the 'lls' script defaults to python2 on systems with both pythons installed. Better use:

Code: Select all

#! /usr/bin/python3
or the preferred method:

Code: Select all

#! /usr/bin/env python3
I'm not sure how this behaves in Cygwin, though.

- When using kissat i get the following error:

Code: Select all

frank@rhea:/tmp/logic-life-search$ !./lls
./lls -c -b 9 9 -s p2 RE\\ x1

Getting search pattern...
Done

Preprocessing...
Done

Number of undetermined cells: 153
Number of variables: 235
Number of clauses: 20003

Active width: 9
Active height: 9
Active duration: 3

Solving...
Traceback (most recent call last):
  File "./lls", line 482, in <module>
    src.main.lls(
  File "/tmp/logic-life-search/src/main.py", line 55, in lls
    ) = preprocess_and_solve(
  File "/tmp/logic-life-search/src/main.py", line 288, in preprocess_and_solve
    ) = src.sat_solvers.sat_solve(
  File "/tmp/logic-life-search/src/sat_solvers.py", line 55, in sat_solve
    solution, time_taken = use_solver(solver, dimacs_file, parameters=parameters, timeout=timeout, indent=indent)
  File "/tmp/logic-life-search/src/sat_solvers.py", line 141, in use_solver
    solution = solution[1]
IndexError: list index out of range
This is caused by kissat's default output not containing any lines before the solution line (starting with 's ') so the line

Code: Select all

141            solution = solution.split("\ns ")
... doesn't actually split the solution string in two parts, but has only one part. The next line will then fail:

Code: Select all

142             solution = solution[1]
Since there is no index 1 in the list.
This can be fixed by changing line 142 into:

Code: Select all

142             solution = solution[-1]
... so that python copies the last element in the list.
Frank Everdij

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 15th, 2022, 12:35 pm

dexter1 wrote:
May 15th, 2022, 12:00 pm
- If a person runs the 'lls' script as a standalone script (without 'python' in front), the hashbang in the 'lls' script defaults to python2 on systems with both pythons installed. Better use:

Code: Select all

#! /usr/bin/python3
or the preferred method:

Code: Select all

#! /usr/bin/env python3
Done.
I'm not sure how this behaves in Cygwin, though.
I imagine that if Cygwin is clever enough that one of them works then probably any of them works. But if they don't then people can just type 'python lls'.
- When using kissat i get the following error:
[...]
This can be fixed by changing line 142 into:

Code: Select all

142             solution = solution[-1]
... so that python copies the last element in the list.
I don't get the same error, but your fix works for me too, so I'll implement it. I hope to replace the whole solution parsing with something less hacky, but this will do for now.

LLS is now Version 2. Changes:
  • The above fixes.
  • Support has been dropped for all solvers except kissat, cadical, lingeling, plingeling, and treengeling. Please let me know if you want another solver supported, but consider using kissat since it is the fastest.
  • LLS no longer creates temporary .cnf files.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 16th, 2022, 10:13 am

LLS is now Version 3. Changes:
  • Significant simplification of the internal logic. Let me know if I broke anything!
  • Improved parsing of SAT solver output. dexter1 does it still work for you?
  • I said above that I had removed support for some SAT solvers, but it would be more correct to sat that LLS now supports any SAT solver that takes input in DIMACS format on STDIN and gives output in DIMACS format on STDOUT.
  • I renamed the 'defaults' file to 'settings' and moved it to the main directory for better visibility.

User avatar
dexter1
Posts: 71
Joined: February 26th, 2020, 8:46 am

Re: Logic Life Search

Post by dexter1 » May 16th, 2022, 2:51 pm

Macbi wrote:
May 16th, 2022, 10:13 am
[*]Improved parsing of SAT solver output. dexter1 does it still work for you?
Thanks for the update. Yes, it works fine: So far i tested LLS with the lingeling family, kissat and minisat and all produce correct output.
Frank Everdij

yoleo
Posts: 124
Joined: October 26th, 2021, 11:48 pm

Re: Logic Life Search

Post by yoleo » June 15th, 2022, 2:02 am

I've mentioned that I was working on a LLS-related script, for assembling search patterns for more complex interactions. The main program is the python package LayerManager.py in the zip file. See snark_demo.py and smaller_p27_gun.py for example usage.

Features:
  • The primary input to a SearchPattern is an array, a list of generations of cells. This means the entirety of python is at your disposal for creating searchPatterns. On the other hand, there is no tidy command line interface--you need to know how to assemble arrays in python to use this.
  • In addition to * (variable cell) and ' (ignore rule here), there's an "evolution wildcard" character @. The program keeps track of parent-child relationships from the rule-following cells. When it sees an @, it'll first try to apply the rules deterministically. If that doesn't work, it'll check recorded parent-child data. If there's no match there either, it'll create new default-named variable.
  • You can more easily set up search patterns for patterns with multiple interacting pieces: set up a SearchPattern for each piece, then use the otherPatterns and transformations options to stitch them together.
  • Via the saveGIF() function, you can check the accuracy of your work visually. (Current color scheme: variable cells are colored a shade of blue, based off the last time that same variable occurred in the same spot. Open to feedback on how to make this feature more useful.)
  • If there's a contradiction or non-rectangular grid the program will tell you where. Also, every deduction is stored in substitutions, so if you want to go retrieve that data, you can do so.
I want to move towards turning this into a full-fledged standalone product: the ability to have "custom clauses" could open up further CGoL problems to SAT methods, like catalyst searching. Here, by "custom clauses," I mean that the user can give arbitrary boolean conditions and the program will enforce those as clauses (see Tseytin Transform on Wikipedia). But that's still a few weeks or months away, so I thought I'd share what I have so far.

Please let me know (direct message or discord) if you have questions or find any bugs.
Attachments
LLS_stitching_patterns.zip
(872.37 KiB) Downloaded 39 times

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » July 18th, 2022, 9:01 pm

LLS is now Version 4. Changes:
  • This is just a small fix. I had forgotten that git can't see directories unless there is a file inside them. So I deleted the file I put inside the 'solvers' directory to force git to remember it. This meant that people were getting a download in which they had to know to create this directory themselves. I've now restored the token file within solvers.
  • Also deleted some unnecessary code and the 'substitute solution' option, which was always flaky. I aim to replace it with a better version soon.

User avatar
LaundryPizza03
Posts: 2295
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Logic Life Search

Post by LaundryPizza03 » February 12th, 2023, 2:20 pm

I tried to run LLS on the latest version of my OS, but got en error related to Python 2:

Code: Select all

> ./lls h
zsh: ./lls: bad interpreter: /usr/bin/python2: no such file or directory
In python3, I got the following error as well, where python3 could not locate one of the LLS source files:

Code: Select all

> python3 lls
Traceback (most recent call last):
  File "/Users/gb/logic-life-search/lls", line 9, in <module>
    import src.LLS_main
  File "/Users/gb/logic-life-search/src/LLS_main.py", line 2, in <module>
    import LLS_files
ModuleNotFoundError: No module named 'LLS_files'
I'm using macOS 12.5.1.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

User avatar
LaundryPizza03
Posts: 2295
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Logic Life Search

Post by LaundryPizza03 » February 16th, 2023, 10:11 pm

LaundryPizza03 wrote:
February 12th, 2023, 2:20 pm
I tried to run LLS on the latest version of my OS, but got en error related to Python 2:

Code: Select all

> ./lls h
zsh: ./lls: bad interpreter: /usr/bin/python2: no such file or directory
In python3, I got the following error as well, where python3 could not locate one of the LLS source files:

Code: Select all

> python3 lls
Traceback (most recent call last):
  File "/Users/gb/logic-life-search/lls", line 9, in <module>
    import src.LLS_main
  File "/Users/gb/logic-life-search/src/LLS_main.py", line 2, in <module>
    import LLS_files
ModuleNotFoundError: No module named 'LLS_files'
I'm using macOS 12.5.1.
I fixed this just by deleting and re-cloning the LLS directory. I will need to continue using python3 as the prefix for the LLS script.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

User avatar
confocaloid
Posts: 2723
Joined: February 8th, 2022, 3:15 pm

Re: Logic Life Search

Post by confocaloid » February 3rd, 2024, 5:48 am

When searching for multiple solutions in rulespaces, LLS prints essentially the same solution in different rules where it evolves the same way. Is this by design? (I found a way to disable this by commenting out the part that looks at the rule definition in SearchPattern.force_distinct)

Below is an example: I would expect it to print just two solutions (two orientations of the blinker, each in one of four rules in the specified rulespace), but it printed instead eight solutions (two orientations of the blinker multiplied by four rules in the rulespace).

Code: Select all

# ./lls -r "pB3aceijknqry8/S2aceikn3aceijknqry8" -b 3 3 -s "p2" -c -n   
Getting search pattern...
Done

Preprocessing...
Done

Width: 5
Height: 5
Duration: 3

Number of undetermined cells: 18
Number of variables: 30
Number of clauses: 1696

x = 5, y = 5, rule = B38/S238
bbbbb$
bbbbb$
booob$
bbbbb$
bbbbb!


x = 5, y = 5, rule = B38/S238
bbbbb$
bbobb$
bbobb$
bbobb$
bbbbb!


x = 5, y = 5, rule = B38/S23
bbbbb$
bbbbb$
booob$
bbbbb$
bbbbb!


x = 5, y = 5, rule = B38/S23
bbbbb$
bbobb$
bbobb$
bbobb$
bbbbb!


x = 5, y = 5, rule = B3/S23
bbbbb$
bbobb$
bbobb$
bbobb$
bbbbb!


x = 5, y = 5, rule = B3/S238
bbbbb$
bbobb$
bbobb$
bbobb$
bbbbb!


x = 5, y = 5, rule = B3/S238
bbbbb$
bbbbb$
booob$
bbbbb$
bbbbb!


x = 5, y = 5, rule = B3/S23
bbbbb$
bbbbb$
booob$
bbbbb$
bbbbb!


Unsatisfiable

Total solver time: 0.11156344413757324
127:1 B3/S234c User:Confocal/R (isotropic rules, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » February 4th, 2024, 3:49 am

Yeah, it considers two patterns distinct if they have different evolutions or different rules. I see how this isn't the behaviour you want in this case. I'll add it to the todo list, but LLS isn't my priority at the moment.

Post Reply