{ inercia }

  • Archive
  • RSS
  • Ask me anything

Genetic Programming and a LLVM JIT for restricted Python AST expressions

Genetic Programming is a machine learning technique used to optimize a population of computer programs according to their fitness for performing a task. So, the Genetic Programming engine applies biological evolution to find the best computer program for doing some task.

The way Genetic Programming algorithms work is

  1. they generate a population of random programs
  2. they evaluate how good they are are doing some job
  3. they do some mutations and crossover on the best programs
  4. and they repeat the process from the second step until we have a program we consider “the best”

However, the second step can be quite time consuming as it requires to run all programs in the population, and we can be talking about a very big population or a really CPU intensive problem. Things get worse we consider that these programs are usually written in some simplified form, usually some pseudo-code or byte-code, that is interpreted by the Genetic Programming engine.

So one of the alternatives could be to translate the population of pseudo-code programs to a population of native programs that could be directly run by the host machine. That is the purpose of Shine, a genetic programming library that does this transformation by using the LLVM Python bindings. Shine not only get a big performance boost when evaluating solutions fitness, but it also brings some flexibility by using a restricted Python for the representation of individuals on a Genetic Programming engine (so it could, potentially, call Python libraries).

    • #python
    • #genetic programming
    • #ai
  • 9 months ago
  • 3
  • Permalink
  • Share

3 Notes/ Hide

  1. guerrillatech likes this
  2. kickthebucketfatty reblogged this from inercia
  3. inercia posted this
← Previous • Next →

About

Avatar My name is Alvaro and I´m currently working in Telefonica R&D in Barcelona (Spain). I previously lived in Madrid, Edinburgh, Glasgow, Michigan (USA) and A Coruña (Spain).

Pages

  • My background
  • My linkedin
  • My facebook
  • My github

Find me elsewhere...

  • @inercia_tech on Twitter
  • Facebook Profile
  • inercia on Flickr
  • Call me on Skype
  • Linkedin Profile
  • inercia on github
  • RSS
  • Random
  • Archive
  • Ask me anything
  • Mobile

Effector Theme by Carlo Franco.

Powered by Tumblr