Genetic Programming: Difference between revisions

From Hegemon Wiki
Jump to navigation Jump to search
Line 19: Line 19:


How do I avoid infinite loops.
How do I avoid infinite loops.
Does uninitialised memory need to be avoided?
Random numbers. Share the same random number for all programs in the same run?

Revision as of 22:45, 1 November 2016

Possible targets

  • LLVM - Can run as bytecode or compile to machine code.
  • Web Assembly - New.
  • JVM - I hate Java.
  • MonoVM - Meh.
  • SPIR-V - For the GPU. Can run naively (and fast), but would need to learn Vulkan/OpenCL at the same time. Problems with the GPU<->CPU differences.
  • X86-64 - Native but CISC... Could use a subset...
  • RISC-V - I love RISC-V (needs to be emulated).
  • AVR - For a microcontroller (needs to be emulated).
  • ARM - For a microcontroller (needs to be emulated).
  • MIR - Rust intermediate level. Not sure if it would be any advantage over LLVM.
  • BrainFuck - It's simplicity be good for genetic programming?
  • GPTree - A Genetic Programming AST. Traditional.
  • Maybe some made up IR that is then converted to X86-64, SPIPR-V or whatever (Isn't that LLVM bytecode?).

Ideas

  • Make the genetic program evolve genetic algorithms.
  • Evolve a selection function for example.

How do I avoid infinite loops. Does uninitialised memory need to be avoided? Random numbers. Share the same random number for all programs in the same run?