I THINK ∴ I'M DANGEROUS

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
bfe [2016/03/07 17:55]
zashi
bfe [2016/04/05 19:52]
zashi [Framework]
Line 22: Line 22:
 Programmatically,​ the read/write head is equivalent to a pointer and the sheet is simply a contiguous block of RAM. Programmatically,​ the read/write head is equivalent to a pointer and the sheet is simply a contiguous block of RAM.
  
-In many ways, BF is ideal to use as genes. Aside from being Turing-complete,​ which allows it to do anything that can be accomplished with any other programming language, strings of non-functional code can exist and be bypassed. With a single character (command) mutation that bypassed code path can become active, just like actual genetic code consisting of base-pairs.+In many ways, BF is ideal to use as programmatic ​genes. Aside from being Turing-complete,​ which allows it to do anything that can be accomplished with any other programming language, strings of non-functional code can exist and be bypassed. With a single character (command) mutation that bypassed code path can become active, just like actual genetic code consisting of base-pairs.
  
 ====== Specific Design Needs ====== ====== Specific Design Needs ======
Line 28: Line 28:
  
 ===== Framework ===== ===== Framework =====
-BFE is the framework in it's entirety. ​The framework (BFE) depends ​on two executable ​modules ​and one Tcl proc. One to test strands and one to evaluate their output. ​The Tcl proc provides ​mutations ​to top-scoring strands. The framework consists ​of a master script and worker scriptThe master script mediates access to the database and handles logging. The worker script is run on each computation nodegenerally one process per available CPU core.+BFE is the framework in it's entirety. ​Previous versions of BFE relied ​on a master script with a slave running for each core in a cluster. 
 + 
 +The latest incarnation consists a single Tcl script using an interpreter with OpenMPI bindings. A stand-alone ​executable ​is used for running the bf code and a C-based ​Tcl extension provides the '​nmc'​ command used to score output. 
 + 
 +BFE tracks all mutations ​it generates, but when considering the next generation, it groups by score and picks randomly from the top 2% of this populationIn this waydifferent '​species'​ are picked rather than the same species of strand overfilling the top ranks. 
 + 
  
 ===== Mutation Algorithm ===== ===== Mutation Algorithm =====