Bellman

For scripts to aid with computation or simulation in cellular automata.
simeks
Posts: 402
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Post by simeks » May 5th, 2016, 4:48 am

Scorbie wrote:These were in your sample search file. Does it mean the solution is accepted if "either 1) or 2) happens" or "both 1) and 2) happens"?
I normally use just one of them, but if both "inactive-gens-at-accept" and "sum-of-active-inactive-gens-at-accept" are used, the solution will be accepted as soon as either one of the conditions are true.
Scorbie wrote:Well, I was setting the search to find something similar to the syringe.
That means: 1) Multiple catalysts 2) Block restoration with filter.
But with "#S continue-after-accept 1" the search only seems to continue adding catalysts ONLY IF the bait is restored by the first catalyst.
I can't repeat this behavious. Of course, with the filter it would be very surprising so actually find a solution with just three simple catalysts.
But with this input file, which is your example without the filter, I find a lot more solutions with "continue-after-accept" set to 1, than when set to 0:

Code: Select all

#S min-activation-gen 40
#S max-first-activation-gen 65
#S max-reactivation-gen 100
#S max-active-gens-in-a-row 8
#S inactive-gens-at-accept 6
#S continue-after-accept 1
#S max-added-static-oncells 32
#S max-activated-cells 5
#S max-local-complexity 10
#S max-local-areas 3
#S min-local-area-separation-squared 15
#S max-global-complexity 100
#S old-result-naming 0
#P 19 19
?????????????????????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
??????????......?????????.
??????????......?????????.
??????????..@@..?????????.
??????????..@@..?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
????????????????????????@.
???????????????????????@@.
???????????????????????@.@

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Bellman

Post by Scorbie » May 5th, 2016, 5:34 am

I wrote:But with "#S continue-after-accept 1" the search only seems to continue adding catalysts ONLY IF the bait is restored by the first catalyst.
simeks wrote:I can't repeat this behavious. Of course, with the filter it would be very surprising so actually find a solution with just three simple catalysts.But with this input file, which is your example without the filter, I find a lot more solutions with "continue-after-accept" set to 1, than when set to 0:
Whoops, I said it wrong... Coming from ptbsearch, I understood wrong how this works. Now I think I got it right. Without the filter, any one catalyst solution is accepted by Bellman, and when it's accepted, Bellman will move on, right? With the filter, Bellman doesn't accept the solution and will add more catalysts until it finds it... And I think setting "continue-after-accept" will lead to minimal solutions that do restore the bait block.

Also, this may be just me, but adding information about the approximate search time would be helpful...

simeks
Posts: 402
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Post by simeks » May 8th, 2016, 5:29 am

Scorbie wrote: Without the filter, any one catalyst solution is accepted by Bellman, and when it's accepted, Bellman will move on, right? With the filter, Bellman doesn't accept the solution and will add more catalysts until it finds it... And I think setting "continue-after-accept" will lead to minimal solutions that do restore the bait block.
I rarely use filters myself. Hopefully the result is reasonable both with and without the "continue-after-accept" parameter, but I should think this through properly before a new update.
But the basic idea with "continue-after-accept" is that if a solution with catalyst A is reported, Bellman_szlim will continue to evolve the pattern with catalyst A still in place, and may find solutions with catalyst A+B and A+C for example. Without "continue-after-accept" Bellman will move on to a new search path after reporting catalyst A, and other solutions will not contain catalyst A.

Did you try the "catbellman.py" script in the repository? I think it helps dealing with getting lots of solutions when searching without a filter. It uses hints in the solutions from Bellman_szlim_073 to present a result of the search much faster than "BellmanReport.py" can do. Set "old-result-naming" to 1 in the input file to get the file names the script expects.
Scorbie wrote: Also, this may be just me, but adding information about the approximate search time would be helpful...
I agree, but it's just very difficult to estimate within the program how far the search has proceeded. My best tip is to incremently increase the search settings (in particular "max-active-cells" and "max-global-complexity") and look for trends in how that affects the search time in each particular search.

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Bellman

Post by Scorbie » May 8th, 2016, 11:07 am

simeks wrote:Did you try the "catbellman.py" script in the repository? I think it helps dealing with getting lots of solutions when searching without a filter. It uses hints in the solutions from Bellman_szlim_073 to present a result of the search much faster than "BellmanReport.py" can do.
I did. I don't have Bellman right now, but I remember that it filtered results with glider count and pattern population. I made something similar with ptbsearch that supports primitive pattern recognition, but I think some better algo should be introduced to choose "interesting" ones better.
simeks wrote:My best tip is to incremently increase the search settings (in particular "max-active-cells" and "max-global-complexity") and look for trends in how that affects the search time in each particular search.
Ah, I see. I get that it isn't so easy. In ptbsearch one was running small 1 catalyst additions to many partial results, so I was able to present a crude time estimate.

User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Bellman

Post by toroidalet » August 19th, 2017, 6:00 pm

When trying to install Bellman I get the following error:

Code: Select all

AdminisatorsMBP:bellman-code-e21ee33a96f32a97c7c03868a06a4b72ee5881ea [REDACTED]$ make
cc -O3   -c -o test_universe.o test_universe.c
cc  -o test_universe universe.o lib.o evolve_simple.o makegif.o evolve_bitwise.o readfile.o findstill.o writefile.o textconv.o test_universe.o -lgd
ld: library not found for -lgd
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [test_universe] Error 1
rm test_universe.o
Any sufficiently advanced software is indistinguishable from malice.

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Bellman

Post by wildmyron » September 12th, 2017, 10:16 pm

toroidalet wrote:When trying to install Bellman I get the following error:

Code: Select all

AdminisatorsMBP:bellman-code-e21ee33a96f32a97c7c03868a06a4b72ee5881ea [REDACTED]$ make
cc -O3   -c -o test_universe.o test_universe.c
cc  -o test_universe universe.o lib.o evolve_simple.o makegif.o evolve_bitwise.o readfile.o findstill.o writefile.o textconv.o test_universe.o -lgd
ld: library not found for -lgd
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [test_universe] Error 1
rm test_universe.o
Did you manage to compile Bellman?

It looks like you are missing libgd, or the linker can't find it.
Andrew posted a few tips on building for MacOS early in the thread. You don't need to do step 1 if you have the latest version of the code from sourceforge.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » December 27th, 2017, 9:07 am

Running BellmanWin (in Windows with Cygwin):

Code: Select all

TODO: handle tile wrap! (12, 0, 12)
Dumping 0
   000:
   001: EXPAND_LEFT DIFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELL                                                                                            S
   002: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIV                                                                                            E HAS_ON_CELLS
   003: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIV                                                                                            E HAS_ON_CELLS
   004: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIV                                                                                            E HAS_ON_CELLS
   005: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIV                                                                                            E HAS_ON_CELLS
   006: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE DIFFERS_FROM_PREVIOUS DIFFE                                                                                            RS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   007: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE DIFFERS_FROM_PREVIOUS DIFFE                                                                                            RS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   008: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE DIFFERS_FROM_PREVIOUS DIFFE                                                                                            RS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   009: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE DIFFERS_FROM_PREVIOUS DIFFE                                                                                            RS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   010: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE DIFFERS_FROM_PREVIOUS DIFFE                                                                                            RS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   011: EXPAND_LEFT DIFFERS_FROM_STABLE IS_DEAD DIFFERS_FROM_PREVIOUS DIFFERS_FR                                                                                            OM_2PREV IS_LIVE HAS_ON_CELLS
   012: EXPAND_LEFT DIFFERS_FROM_STABLE HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_FROM_P                                                                                            REVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   013: EXPAND_LEFT DIFFERS_FROM_STABLE HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_FROM_P                                                                                            REVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   014: EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE HAS_UNKNOWN_CELLS IS_DEAD D                                                                                            IFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   015: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT DIFFERS_FROM_STABLE HAS_UNKNOWN_CEL                                                                                            LS IS_DEAD DIFFERS_FROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   016: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_F                                                                                            ROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   017: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_F                                                                                            ROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   018: EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_FROM_PREVIOUS                                                                                             DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   019: EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_FROM_PREVIOUS                                                                                             DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   020: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_F                                                                                            ROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   021: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD DIFFERS_F                                                                                            ROM_PREVIOUS DIFFERS_FROM_2PREV IS_LIVE HAS_ON_CELLS
   022: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD
   023: EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD CHANGED
   024: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD                                                                                            
   025: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD                                                                                            
   026: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD                                                                                            
   027: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS IS_DEAD                                                                                            
   028: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   029: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   030: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   031: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   032: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   033: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   034: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   035: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   036: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   037: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   038: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   039: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   040: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   041: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   042: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   043: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   044: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   045: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   046: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   047: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   048: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   049: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   050: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   051: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   052: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   053: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   054: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   055: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   056: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   057: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   058: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   059: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   060: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
   061: EXPAND_UP EXPAND_DOWN EXPAND_LEFT EXPAND_RIGHT HAS_UNKNOWN_CELLS
assertion "0" failed: file "bellman.c", line 866, function: bellman_choose_cells
Aborted
I can't seem to run it at all. Any ideas?
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: Bellman

Post by Kazyan » December 28th, 2017, 5:04 am

Rhombic wrote:Running BellmanWin (in Windows with Cygwin):

Code: Select all

:(
I can't seem to run it at all. Any ideas?
This looks like either A) your input file has a "?" cell on one of its edges or one cell from the edge--you need a padding of two blank rows all around for some reason--or B) your input file does not fit in a 64x64 space.
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » December 29th, 2017, 7:09 am

Kazyan wrote:This looks like either A) your input file has a "?" cell on one of its edges or one cell from the edge--you need a padding of two blank rows all around for some reason--or B) your input file does not fit in a 64x64 space.
Yes, that was the issue! After attempting to find particularly unlikely catalysts, I am now trying this, which seems to stop calculating or at least, does not dump the statistics any longer:

Code: Select all

#S first-encounter 28
#S last-encounter 31
#S repair-interval 16
#S stable-interval 15
#S max-live 42
#S max-active 15
#P 0 0
....................................
....................................
..................???????????????...
..................???????????????...
..................???????????????...
..................???????????????...
................?????????????????...
.....@..........?????????????????...
...@.@.........??????????????????...
....@@.........??????????????????...
...........@@..?*????????????????...
...........@@..?*????????????????...
...............??????????????????...
...............??????????????????...
...............??????????????????...
...............??????????????????...
...............??????????????????...
....................................
....................................
#F 37 10 9
....
.**.
.**.
....
Have I added something weird or are the parameters all fine?
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: Bellman

Post by Kazyan » December 29th, 2017, 9:46 pm

At max-active 15, that search will probably take weeks. I recommend max-active 6 for a short search or max-active 9 for a long one. If you're using fixed catalyst cells (the "*" cells), increase those thresholds by 3.
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » December 30th, 2017, 7:23 am

Kazyan wrote:At max-active 15, that search will probably take weeks. I recommend max-active 6 for a short search or max-active 9 for a long one. If you're using fixed catalyst cells (the "*" cells), increase those thresholds by 3.
Good advice! The search, in this particular case, still stops after 2552 attempts. The problem disappears when I remove the filter. Is the filter correctly placed? Or have I done something wrong with it?
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Bellman

Post by toroidalet » January 9th, 2018, 6:46 pm

When running Bellman with the input file

Code: Select all

#S first-encounter 1
#S last-encounter 2
#S repair-interval 40
#S stable-interval 20
#S max-live 20
#S max-active 6

............@@.@@
............@@.@@
.
......????....*....????.
......?????????????????.
......?????????????????.
......?????????????????.
......?????????????????.
......?????????????????.
it indicates a solution has been found and generates the following gif (a single pixel)
result000001-1-full.gif
result000001-1-full.gif (1.87 KiB) Viewed 19773 times
and this output file:

Code: Select all

#S first-encounter 1
#S last-encounter 2
#S repair-interval 40
#S stable-interval 20
#S max-live 20
#S max-active 6
(the partial looked exactly the same).
What's going on?
Any sufficiently advanced software is indistinguishable from malice.

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » March 30th, 2018, 11:10 am

I posted about the feasibility of a further filtering tool for LLS but, after considering again, I have come to realise that it is so much more well-suited for Bellman.
The filter would involve that "at generation n, there must be N live cells in area (x,y,widthx,widthy) where A<N<B". This would allow so many more X->G or spark catalysts because you would not have to predict where the outcome appears! The filter could be set as follows:

#Z x y widthx widthy A B

(the variables have been described above)
I think this new type of filter is not only exceedingly useful for new discoveries, but should also be very easily implemented.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Bellman

Post by toroidalet » April 1st, 2018, 11:19 pm

When running a search with simeks' fork of bellman with the following input pattern, it immediately prunes the entire search tree because it didn't "become active in time":

Code: Select all

#S repair-interval 40
#S max-live 20
#S max-active 6
#S first-encounter 1
............@@.@@
............@@.@@
.
......????....*....????.
......??????.*.*.??????.
......?????????????????.
......?????????????????.
......?????????????????.
......?????????????????.
I know there's a parameter for that, min-first-active-gen (min-first-activation-gen?) but when i use that it claims that the parameter is unknown.
Any sufficiently advanced software is indistinguishable from malice.

simeks
Posts: 402
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Post by simeks » April 3rd, 2018, 1:34 pm

toroidalet wrote:When running a search with simeks' fork of bellman with the following input pattern, it immediately prunes the entire search tree because it didn't "become active in time"
When running bellman.exe from here on Windows with your input, I get this console output:

Code: Select all

=== Bellman_szlim, v0.74 ===
--- Starting search, max generations = 39
  Reasons why search space was pruned:
    Static pattern is unstable: 59092
    Stopped adding new on-cells: 0
    Found a solution: 0
    First activity too early: 0
    Did not become active in time: 0
    Activity after last allowed active generation: 84
    Too many active generations in a row: 0
    Too many added static on-cells: 0
    Too many active cells: 20922
    Too many local rectangles: 0
  Solutions: 0, prunes: 80098
Total time: 00:00:00
Are you trying to compile on MacOS? I have no way of testing that, but if your console output isn't the same, then it seems it doesn't compile correctly.

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » April 6th, 2018, 1:53 pm

Rhombic wrote:I posted about the feasibility of a further filtering tool for LLS but, after considering again, I have come to realise that it is so much more well-suited for Bellman.
The filter would involve that "at generation n, there must be N live cells in area (x,y,widthx,widthy) where A<N<B". This would allow so many more X->G or spark catalysts because you would not have to predict where the outcome appears! The filter could be set as follows:

#Z x y widthx widthy A B

(the variables have been described above)
I think this new type of filter is not only exceedingly useful for new discoveries, but should also be very easily implemented.
Sorry to bump without further input, but I think this deserves a closer look.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » August 25th, 2018, 6:43 am

Rhombic wrote:I posted about the feasibility of a further filtering tool for LLS but, after considering again, I have come to realise that it is so much more well-suited for Bellman.
The filter would involve that "at generation n, there must be N live cells in area (x,y,widthx,widthy) where A<N<B". This would allow so many more X->G or spark catalysts because you would not have to predict where the outcome appears! The filter could be set as follows:

#Z x y widthx widthy A B

(the variables have been described above)
I think this new type of filter is not only exceedingly useful for new discoveries, but should also be very easily implemented.
Honestly, I don't want to seem extremely insistent with this but I certainly am. Why? Because it would be one of the most powerful tools for Bellman to have - think of the c/2 signal extractor, or the 5c/9 signal extractor, or so so many other things. You can't "just guess" which lane and especially which tick the glider will appear in one exact position!! You literally prune the search space randomly if you do that.
This tool would honestly find all kinds of conversions that regenerate a catalyst.
Please, please, someone with more programming technique than me DO tackle this! It can be extended to so many problems that need solving, it would find all new catalysts that don't depend on specific pre-arranged transformations that we know happen...

It's the same as when I turned the searchRules.py into Rulesrc.py, I had actually said it quite a few times before I did it myself. Please do take me seriously with this, I might not be a great programmer but I try to keep my ideas consistent and well-supported by arguments :)
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
calcyman
Moderator
Posts: 2932
Joined: June 1st, 2009, 4:32 pm

Re: Bellman

Post by calcyman » August 25th, 2018, 6:27 pm

Rhombic wrote:Please, please, someone with more programming technique than me DO tackle this!
Become that someone.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » August 30th, 2018, 6:10 am

calcyman wrote:Become that someone.
I will have another look at the source code, but bearing in mind that I can only code half-confidently in Python and my experience with C is almost zero, I do not think I'll be getting much done.
OK, I've already implemented the variables and put a placeholder on the part where the script should check whether the condition is met (what I have zero clue how to do).
I have marked all additions with " // CXI " and the part that I need help with with "HELP".
I don't really know how to do the equivalent to "g.getpop()" with this, I have tried to look through it but I am having quite a lot of trouble. Some help would be greatly appreciated. I have had another look at it this morning but I can't find the way CGoL is simulated and frankly, I really just need the following in C:

Code: Select all

inhabit_rect=(inhabit_x,inhabit_y,inhabit_wx,inhabit_wy)
g.select(inhabit_rect)
g.copy()
g.new("")
g.paste(0,0,"or")
pop=g.getpop()
if (pop <= inhabit_max) and (pop>= inhabit min):
       return 1
else:
       return 0
Attachments
bellman_mod.c
(44.84 KiB) Downloaded 408 times
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Entity Valkyrie
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: Bellman

Post by Entity Valkyrie » November 24th, 2018, 12:37 am

My bellman does not work. It quit immediately after opening.

simeks
Posts: 402
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Post by simeks » November 24th, 2018, 5:40 pm

Rhombic wrote: I have marked all additions with " // CXI " and the part that I need help with with "HELP".
I made an attempt with this. It isn't very efficient, but I think it might work.
Would you do some tests and check if it does what you expect it to do?

Note: on line 791 I changed
if((first_active_gen > 0) && (ge->gen > first_active_gen + inhabit_gen)) { //CXI
to
if((first_active_gen > 0) && (ge->gen >= inhabit_gen)) { //CXI

I think that is what you meant, but I'm not sure...
Attachments
bellman_mod.c
(45.57 KiB) Downloaded 391 times

User avatar
Entity Valkyrie
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: Bellman

Post by Entity Valkyrie » November 26th, 2018, 2:10 am

But I still can't use bellman!!!

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » November 29th, 2018, 5:46 pm

simeks wrote:
Rhombic wrote: I have marked all additions with " // CXI " and the part that I need help with with "HELP".
I made an attempt with this. It isn't very efficient, but I think it might work.
Would you do some tests and check if it does what you expect it to do?

Note: on line 791 I changed
if((first_active_gen > 0) && (ge->gen > first_active_gen + inhabit_gen)) { //CXI
to
if((first_active_gen > 0) && (ge->gen >= inhabit_gen)) { //CXI

I think that is what you meant, but I'm not sure...
As soon as I get some free time on my hands I will be testing this!
Thank you for having a go at it, I had no clue how the Life API works :)
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Entity Valkyrie
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: Bellman

Post by Entity Valkyrie » November 30th, 2018, 11:49 pm

Entity Valkyrie wrote:But I still can't use bellman!!!
WHY DID NOBODY REPLY ME???

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Post by Rhombic » December 1st, 2018, 8:40 am

Entity Valkyrie wrote:
Entity Valkyrie wrote:But I still can't use bellman!!!
WHY DID NOBODY REPLY ME???
Can you say what you have done and what error appears?
Go on cygwin, move to the folder with your Bellman and do this:

Code: Select all

gcc bellman.c bitwise.h evolve_bitwise.c evolve_simple.c lib.c lib.h readfile.c readwrite.h textconv.c universe.c universe.h writefile.c -o bellman;
gcc evolve_bitwise.c evolve_simple.c findstill.c lib.c lib.h mkstill.c readfile.c readwrite.h textconv.c universe.c universe.h writefile.c -o mkstill
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

Post Reply