ConwayLife.com - A community for Conway's Game of Life and related cellular automata
Home  •  LifeWiki  •  Forums  •  Download Golly

Bellman

For scripts to aid with computation or simulation in cellular automata.

Re: Bellman

Postby 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:

#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
?????????????????????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
??????????......?????????.
??????????......?????????.
??????????..@@..?????????.
??????????..@@..?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
??????????......?????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
?????????????????????????.
????????????????????????@.
???????????????????????@@.
???????????????????????@.@
simeks
 
Posts: 369
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Postby 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...
Best wishes to you, Scorbie
User avatar
Scorbie
 
Posts: 1374
Joined: December 7th, 2013, 1:05 am

Re: Bellman

Postby 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.
simeks
 
Posts: 369
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Postby 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.
Best wishes to you, Scorbie
User avatar
Scorbie
 
Posts: 1374
Joined: December 7th, 2013, 1:05 am

Re: Bellman

Postby toroidalet » August 19th, 2017, 6:00 pm

When trying to install Bellman I get the following error:
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
x = 4, y = 2, rule = B3/S23
ob2o$2obo!

(Check Gen 2)
User avatar
toroidalet
 
Posts: 916
Joined: August 7th, 2016, 1:48 pm
Location: my computer

Re: Bellman

Postby wildmyron » September 12th, 2017, 10:16 pm

toroidalet wrote:When trying to install Bellman I get the following error:
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.
wildmyron
 
Posts: 1028
Joined: August 9th, 2013, 12:45 am

Re: Bellman

Postby Rhombic » December 27th, 2017, 9:07 am

Running BellmanWin (in Windows with Cygwin):
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
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby Kazyan » December 28th, 2017, 5:04 am

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

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
User avatar
Kazyan
 
Posts: 780
Joined: February 6th, 2014, 11:02 pm

Re: Bellman

Postby 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:
#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
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby 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
User avatar
Kazyan
 
Posts: 780
Joined: February 6th, 2014, 11:02 pm

Re: Bellman

Postby 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
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby toroidalet » January 9th, 2018, 6:46 pm

When running Bellman with the input file
#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 7176 times

and this output file:
#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?
x = 4, y = 2, rule = B3/S23
ob2o$2obo!

(Check Gen 2)
User avatar
toroidalet
 
Posts: 916
Joined: August 7th, 2016, 1:48 pm
Location: my computer

Re: Bellman

Postby 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
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby 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":
#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.
x = 4, y = 2, rule = B3/S23
ob2o$2obo!

(Check Gen 2)
User avatar
toroidalet
 
Posts: 916
Joined: August 7th, 2016, 1:48 pm
Location: my computer

Re: Bellman

Postby 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:

=== 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.
simeks
 
Posts: 369
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

Postby 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: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby 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
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby 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
calcyman
 
Posts: 1953
Joined: June 1st, 2009, 4:32 pm

Re: Bellman

Postby 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:
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 119 times
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?
User avatar
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

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

My bellman does not work. It quit immediately after opening.
User avatar
Entity Valkyrie
 
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: Bellman

Postby 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 125 times
simeks
 
Posts: 369
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Bellman

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

But I still can't use bellman!!!
User avatar
Entity Valkyrie
 
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: Bellman

Postby 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
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

Re: Bellman

Postby 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
Entity Valkyrie
 
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: Bellman

Postby 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:
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”?
User avatar
Rhombic
 
Posts: 1056
Joined: June 1st, 2013, 5:41 pm

PreviousNext

Return to Scripts

Who is online

Users browsing this forum: No registered users and 2 guests