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