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
Last revision Both sides next revision
bfe [2016/04/05 19:46]
zashi [Brainfuck]
bfe [2016/05/26 14:52]
zashi [BFE]
Line 5: Line 5:
  
  
-<​html>​ 
-<a href="​https://​scontent-atl3-1.xx.fbcdn.net/​hphotos-xpa1/​v/​t1.0-9/​11216567_10203633998770577_6143067410198800947_n.jpg?​oh=96f6ae5cee070c0d138ef6a372e97d85&​oe=56A0FE0F"><​img src="​https://​scontent-atl3-1.xx.fbcdn.net/​hphotos-xpa1/​v/​t1.0-9/​11216567_10203633998770577_6143067410198800947_n.jpg?​oh=96f6ae5cee070c0d138ef6a372e97d85&​oe=56A0FE0F"​ width="​100%">​ 
-</a> 
-</​html>​ 
  
 ====== Abstract ====== ====== Abstract ======
Line 28: Line 24:
  
 ===== 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 =====
Line 44: Line 46:
 ===== n-Depth Mean Compare ===== ===== n-Depth Mean Compare =====
  
-Perhaps the greatest challenge in putting BFE together was determining how to score strands. [[:​n-Depth_Mean_Compare|n-Depth Mean Compare]] (NMC) compares one ordered set of bytes to another of potentially differing length. NMC returns a floating point greater than 0. The closer to zero, the more similar the sets are. A score of zero means the sets are identical.+Perhaps the greatest challenge in putting BFE together was determining how to score strands. [[:​n-Depth_Mean_Compare|n-Depth Mean Compare]] (NMC) compares one ordered set of bytes to another of potentially differing length. NMC returns a floating point greater than or equal to 0. The closer to zero, the more similar the sets are. A score of zero means the sets are identical.
  
 In function and practice, NMC is similar to calculating [[https://​en.wikipedia.org/​wiki/​Jaccard_index|Jaccard distance]], but also takes into account how far removed the set of bytes are from one another, not just how many bytes are common between the two. To clarify, NMC does not just calculate how similar one set is to another. The lower the n-Depth Mean Compare score, the fewer steps are needed to transform one set to the other. In function and practice, NMC is similar to calculating [[https://​en.wikipedia.org/​wiki/​Jaccard_index|Jaccard distance]], but also takes into account how far removed the set of bytes are from one another, not just how many bytes are common between the two. To clarify, NMC does not just calculate how similar one set is to another. The lower the n-Depth Mean Compare score, the fewer steps are needed to transform one set to the other.