## Generated by Codox

# Propeller 0.3.0

##### Released under the EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0

Yet another Push-based genetic programming system in Clojure.

## Installation

To install, add the following dependency to your project or build file:

    [net.clojars.lspector/propeller "0.3.0"]

## Topics

- Adding Genetic Operators
- Adding a Problem
- Adding a Selection Method
- A Guide to Experimentation
- Genetic Programming Loop
- Genome
- Introduction to Propeller
- Library Reference
- Selection
- Simplification
- Variation

## Namespaces

### propeller.core

Public variables and functions:

- -main

### propeller.genome

Public variables and functions:

- make-random-plushy
- plushy->push

### propeller.gp

Public variables and functions:

- gp
- report

### propeller.problems.PSB2.basement

BASEMENT from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.PSB2.bouncing-balls

BOUNCING BALLS from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- map-vals-input
- map-vals-output
- train-and-test-data

### propeller.problems.PSB2.bowling

BOWLING from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.PSB2.camel-case

CAMEL CASE from PSB2

Public variables and functions:

- -main
- cleanup-length
- error-function
- instructions
- random-char
- random-input
- train-and-test-data
- word-generator

### propeller.problems.PSB2.dice-game

DICE GAME from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- map-vals-input
- map-vals-output
- train-and-test-data

### propeller.problems.PSB2.fizz-buzz

FIZZ BUZZ from PSB2 Given an integer x, return “Fizz” if x is divisible by 3, “Buzz” if x is divisible by 5, “FizzBuzz” if x is divisible by 3 and 5, and a string version of x if none of the above hold.

Public variables and functions:

- -main
- error-function
- instructions
- train-and-test-data

### propeller.problems.PSB2.fuel-cost

FUEL COST from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.PSB2.gcd

GCD GREATEST COMMON DIVISOR from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- map-vals-input
- map-vals-output
- random-int
- train-and-test-data

### propeller.problems.PSB2.luhn

LUHN from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.PSB2.middle-character

MIDDLE CHARACTER from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.PSB2.paired-digits

PAIRED DIGITS from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-char
- random-int
- train-and-test-data

### propeller.problems.PSB2.shopping-list

DICE GAME from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- map-vals-input
- map-vals-output
- random-float
- train-and-test-data

### propeller.problems.PSB2.snow-day

SNOW DAY from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- map-vals-input
- map-vals-output
- train-and-test-data

### propeller.problems.PSB2.solve-boolean

SOLVE BOOLEAN from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- train-and-test-data

### propeller.problems.PSB2.spin-words

SPIN WORDS from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-char
- random-input
- train-and-test-data
- word-generator

### propeller.problems.PSB2.square-digits

SQUARE DIGITS from PSB2

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.PSB2.substitution-cipher

=========== PROBLEM DESCRIPTION ========================= SUBSTITUTION CIPHER from PSB2 This problem gives 3 strings. The first two represent a cipher, mapping each character in one string to the one at the same index in the other string. The program must apply this cipher to the third string and return the deciphered message.

Public variables and functions:

- -main
- error-function
- instructions
- map-vals-input
- map-vals-output
- train-and-test-data

### propeller.problems.PSB2.twitter

=========== PROBLEM DESCRIPTION ============================= TWITTER from PSB2 Given a string representing a tweet, validate whether the tweet meets Twitter’s original character requirements. If the tweet has more than 140 characters, return the string “Too many characters”. If the tweet is empty, return the string “You didn’t type anything”. Otherwise, return “Your tweet has X characters”, where the X is the number of characters in the tweet.

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.simple-regression

# =========== PROBLEM DESCRIPTION ============================= Simple Regression: Given inputs and outputs, find the target function.

Public variables and functions:

- -main
- error-function
- instructions
- train-and-test-data

### propeller.problems.software.fizz-buzz

Public variables and functions:

- train-and-test

### propeller.problems.software.number-io

Public variables and functions:

- -main
- error-function
- instructions
- random-float
- random-int
- train-and-test-data

### propeller.problems.software.smallest

Public variables and functions:

- -main
- error-function
- instructions
- random-int
- train-and-test-data

### propeller.problems.string-classification

# =========== PROBLEM DESCRIPTION ============================= String Classification: Given a string, return true if it contains A, C, G, and T. Else return false.

Public variables and functions:

- -main
- error-function
- instructions
- train-and-test-data

### propeller.problems.valiant

Possibly impossible to solve with genetic programming. Stems from the work of Leslie Valiant and involves determining the parity of an unknown subsequence of a larger sequence of bits.

Public variables and functions:

- -main
- error-function
- instructions
- num-inputs
- num-test
- num-train
- num-vars
- train-and-test-data

### propeller.push.instructions

Public variables and functions:

- cls->type
- def-instruction
- generate-instructions
- get-literal-type
- get-stack-instructions
- get-vector-literal-type
- instruction-table
- make-instruction
- make-metadata
- opens

### propeller.push.instructions.bool

Public variables and functions:

### propeller.push.instructions.character

Public variables and functions:

### propeller.push.instructions.code

Public variables and functions:

### propeller.push.instructions.input-output

Public variables and functions:

- _print
- handle-input-instruction

### propeller.push.instructions.numeric

Public variables and functions:

- _add
- _dec
- _from_boolean
- _from_char
- _from_string
- _gt
- _gte
- _inc
- _lt
- _lte
- _max
- _min
- _mod
- _mult
- _quot
- _subtract

### propeller.push.instructions.polymorphic

Public variables and functions:

- _deep_dup
- _dup
- _dup_items
- _dup_times
- _empty
- _eq
- _flush
- _pop
- _rot
- _shove
- _stack_depth
- _swap
- _yank
- _yank_dup

### propeller.push.instructions.string

Public variables and functions:

### propeller.push.instructions.vector

Public variables and functions:

- _butlast
- _concat
- _conj
- _contains
- _emptyvector
- _first
- _indexof
- _iterate
- _last
- _length
- _nth
- _occurrencesof
- _pushall
- _remove
- _replace
- _replacefirst
- _rest
- _reverse
- _set
- _subvec
- _take

### propeller.push.interpreter

Public variables and functions:

- interpret-one-step
- interpret-program

### propeller.push.limits

Public variables and functions:

- limit-code
- limit-number
- limit-string
- limit-vector
- max-code-depth
- max-code-points
- max-number-magnitude
- max-stack-items
- max-string-length
- max-vector-length
- min-number-magnitude

### propeller.push.state

Public variables and functions:

- empty-stack?
- empty-state
- example-state
- get-args-from-stacks
- peek-stack
- peek-stack-many
- pop-stack
- pop-stack-many
- print-state
- push-to-stack
- push-to-stack-many
- stack-limiter
- stack-size
- stacks
- vec-stacks

### propeller.selection

Public variables and functions:

- epsilon-lexicase-selection
- epsilon-list
- lexicase-selection
- select-parent
- tournament-selection

### propeller.session

Public variables and functions:

### propeller.simplification

Public variables and functions:

- auto-simplify-plushy
- choose-random-k
- delete-at-indices
- delete-k-random

### propeller.tools.calculus

Public variables and functions:

- deriv
- dx
- integrate

### propeller.tools.character

Public variables and functions:

- get-ascii
- is-digit
- is-letter
- is-whitespace

### propeller.tools.distributions

Public variables and functions:

- cdf-norm
- pdf-norm
- quant-norm
- rand-norm

### propeller.tools.math

Public variables and functions:

- abs
- approx=
- ceil
- cos
- div
- E
- exp
- floor
- log
- mean
- median
- median-absolute-deviation
- PI
- pow
- root
- round
- sign
- sin
- sqrt
- square
- tan

### propeller.tools.metrics

Public variables and functions:

- compute-next-row
- hamming-distance
- levenshtein-distance
- mean
- median
- sequence-similarity

### propeller.utils

Useful functions

Public variables and functions:

- count-points
- depth
- ensure-list
- first-non-nil
- indexof
- not-lazy
- random-instruction
- seq-zip

### propeller.variation

Propeller includes many kinds of genetic operators to create variation within the population. You can specify the rate of the variation genetic operators with the `:variation` map.

Public variables and functions:

- crossover
- diploid-crossover
- diploid-flip
- diploid-uniform-addition
- diploid-uniform-deletion
- diploid-uniform-silent-replacement
- new-individual
- tail-aligned-crossover
- tail-aligned-diploid-crossover
- uniform-addition
- uniform-deletion
- uniform-replacement