HushGP/TODO.md

2.3 KiB

TODO

Push Language TODO

  • Make all vector functions applicable to string functions and vice versa
  • Implement all functions as seen in propeller
  • Implement all functions as seen in the specification
  • Implement Linear Algebra functions as specified in the previous papers
    • These are in a separate branch, just need merging now
  • Add a function to sort a vector forward and backwards
  • Disambiguate isEmpty and stackIsEmpty
  • Rename Logical to Bool
  • Make int yank, shove, yankdup, and shovedup generic
  • Write haddock documentation for each function
  • Refactor all functions to take state as the final parameter
  • Standardize the pattern matching parameter names, such as c1 : cs
  • Write unit/quickcheck tests for the generic functions
  • Use template haskell to generate function lists
  • Move utility functions to their own file
  • Make add/sub/mult/div/mod instructions generic
  • Use template haskell to (mostly) generate functions from generic ones (Split files based on the arity of their functions)
  • Add more special functions like sqrt, pow

PushGP TODO

  • Implement a Plushy genome translator
    • Implement silent and skip marker(s) as well [ ] Have close amt of 1,2, and 3
    • Need a random genome generator
      • I'm only going to implement propeller's :specified version
        • Is the best according to the papers
    • Need a NoOp that opens blocks
    • Have a way to balance amount of closes with open blocks
      • Implement "balanced" closed PushArg
  • Need to make genomes serializable (Check pysh json files)
  • Add Memory
  • Add history stack(s), like a call stack
  • Implement interpreter options (PushArgs would work well)
    • Should probably place this in a separate file
  • Implement Novelty Lexicase selection
  • Implement different forms of downsampling
  • Implement concurrent execution of creating random plushies and evaluating individuals
  • Devise a good way to implement ERCs
  • Implement random simplification of genomes
    • Find a way to multi-thread this
  • Look at using uniformShuffleList over System.Random.Shuffle
  • Impelment selectionCases for lexicase and tournament selection.
  • Make all randomness a float and not an int in Variation