propeller.simplification
To use Propeller’s auto-simplification system, simply include the following four command line arguments when running a problem:
:simplification? true
Toggle auto-simplification
:simplification-k 4
This is the upper bound for elements deleted from the plushy every step. Every step, a number in 1, k of elements is deleted from the plushy representation of the solution.
:simplification-steps 1000
Number of simplification steps to perform
:simplification-verbose? true
Whether or not to output simplification info into the output of the evolutionary run. The output with verbose adds the following lines to the output:
{:start-plushy-length 42, :k 4}
{:final-plushy-length 13, :final-plushy (:in1 :in1 :integer_quot :in1 :in1 :exec_dup :in1 :integer_mult close :exec_dup :integer_add 1 :integer_add)}
auto-simplify-plushy
(auto-simplify-plushy plushy error-function {:keys [simplification-steps training-data simplification-k simplification-verbose?], :as argmap})
simplifies plushy by deleting instructions that have no impact on errors. naive auto-simplification
choose-random-k
(choose-random-k k indices)
Takes k random indices
delete-at-indices
(delete-at-indices indices plushy)
deletes the values at given set of indices
delete-k-random
(delete-k-random k plushy)
Deletes k random instructions from the plushy