This conversation is closed.

Genetic algorithm for computer programs. With life cycles based on usage.

It can be possible to make programs that evolve by creating children programs that are based on the success of the previous version. The unless features will be physically ignored (not used or looked at) and will be removed from the next generation and the great new features (that you use a lot) stay in the next generation.

By making this a Cloud effort and collecting this data in one environment it will be possible to let this programs DNA evolve in an extremely fast way. The choices you personally make in the use of your program will match up with other people and thus become more stable.

  • thumb
    Jul 26 2012: This sounds like a genetic algorithm. There is an interesting TED talk by Bill Gross that used such algorithms to optimize a solar power device:
  • Jul 26 2012: the variation will be randomly compiled from existing programs so there wont be huge amounts of data. the program it self is just run in an environment that tracks usability it does this be removing or adding building blocks on the basis of usage these building blocks. thedeadly mutations are only there for the duration that the program is started up in its virtual eco system. If it does not start (or dies before the user closes the program) than it automatically sees that code as failing and never uses that specific combination again.
  • thumb
    Jul 26 2012: in theory.

    in practice, i have my doubts. the problem is twofold: first, the search space is too big. a software can be as big as megabytes, so the possible number of programs is huge. i mean huge huge. so blindly searching that space can take many many generations. second, there is no other feedback than user ratings or something like that. because of that, one generation will take days at least, but probably weeks. on the positive side, the population can be quite big, if enough people using the program.

    there is one more severe problem: genetic algorithms produce a lot of failures (deadly mutations). i don't want to be the person that gets the defective version.
  • Jul 26 2012: This system is for the automatic development of computer programs. It will fix bugs over time and improve usability by using an evolutionary system.
  • thumb
    Jul 26 2012: Question is, can society stomach this controversial topic? Is it morally right to do this? I think that's where people start to agree/disagree/try to understand the concept.

    Also, so basically, you're effectively recreating the effects of evolution in the form of a computer program.
    • Jul 26 2012: In a a distant future there will be programs that are so complex that they can be called intelligent. These will be as real as humans and as real as characters in a book. All life, love, hate is but a flair of the imagination as everything in the future will be. Doesn't make it less beautiful ;)
      • thumb
        Jul 26 2012: Yeah, perhaps you're right. Like perhaps soon, once we really understand how humans process information and how humans store memory, we can eventually try to replicate it artificially and feed it code to execute.