clojush.pushgp.report

behavioral-diversity

(behavioral-diversity population)

Returns the behavioral diversity of the population, as described by David Jackson in ‘Promoting phenotypic diversity in genetic programming’. It is the percent of distinct behavior vectors in the population.

csv-print

(csv-print population generation {:keys [csv-log-filename csv-columns]})

Prints a csv of the population, with each individual’s fitness and size. If log-fitnesses-for-all-cases is true, it also prints the value of each fitness case.

default-problem-specific-initial-report

(default-problem-specific-initial-report argmap)

Customize this for your own problem. It will be called at the beginning of the initial report.

default-problem-specific-report

(default-problem-specific-report best population generation error-function report-simplifications)

Customize this for your own problem. It will be called at the beginning of the generational report.

edn-print

(edn-print population generation edn-log-filename keys additional-keys)

Takes a population and appends all the individuals to the EDN log file. If the internal representation of individuals changes in future versions of Clojush, this code will likely continue to work, but will produce output corresponding to the new representation.

final-report

(final-report generation best {:keys [error-function final-report-simplifications report-simplifications print-ancestors-of-solution problem-specific-report]})

Prints the final report of a PushGP run if the run is successful.

git-last-commit-hash

(git-last-commit-hash)

Returns the last Git commit hash

implicit-fitness-sharing-report

(implicit-fitness-sharing-report population {:keys [print-errors meta-error-categories]})

This extra report is printed whenever implicit fitness sharing selection is used.

initial-report

(initial-report {:keys [problem-specific-initial-report], :as push-argmap})

Prints the initial report of a PushGP run.

json-print

(json-print population generation json-log-filename log-fitnesses-for-all-cases json-log-program-strings)

Prints a json file of the population, with each individual’s fitness and size. If log-fitnesses-for-all-cases is true, it also prints the value of each fitness case.

jsonize-individual

(jsonize-individual log-fitnesses-for-all-cases json-log-program-strings generation individual)

Takes an individual and returns it with only the items of interest for the json logs.

lexicase-report

(lexicase-report population {:keys [error-function report-simplifications print-errors print-history meta-error-categories]})

This extra report is printed whenever lexicase selection is used.

print-genome

(print-genome individual)

print-params

(print-params push-argmap)

report-and-check-for-success

(report-and-check-for-success population generation {:keys [error-function report-simplifications meta-error-categories error-threshold max-generations population-size print-errors print-history print-cosmos-data print-timings problem-specific-report total-error-method parent-selection print-homology-data max-point-evaluations print-error-frequencies-by-case normalization autoconstructive print-selection-counts exit-on-success print-csv-logs print-json-logs csv-log-filename json-log-filename log-fitnesses-for-all-cases json-log-program-strings print-edn-logs edn-keys edn-log-filename edn-additional-keys], :as argmap})

Reports on the specified generation of a pushgp run. Returns the best individual of the generation.

sample-population-edit-distance

(sample-population-edit-distance pop samples)

Returns a sample of Levenshtein distances between programs in the population, where each is divided by the length of the longer program.