Slashdot Mirror


Self-Improving Systems

Roland Olsson writes "A relatively easy way to construct "intelligent" systems that improve themselves practically ad infinitum is described at http://www-ia.hiof.no/~rolando/SIG/ Maybe Steven Spielberg's AI film is closer to reality than the general public knows *smile*?"

6 of 174 comments (clear)

  1. Re:It's the fitness function, stupid... by Boronx · · Score: 1, Interesting

    What would a fitness function for a fitness function look like?

  2. Re:Genetic Programming by VB · · Score: 2, Interesting


    "...it takes *a lot* of random attempts to do better than a human doing it analytically."


    Which is why efforts at AI programming will continue to require human interaction for the foreseeable future. MIT has been at it over 40 years. Experience indicates that our programming interfaces haven't nearly evolved to the state of efficiency that we can interact with the machines in a natural enough way to make any significant progress. Many good programmers can't type. Some interface producers are giving us pseudo-intellegent controls that "learn" our preferences and traits (ex.: things that don't show up on menus if you haven't used them in 4 weeks, unless you expressly expand the list). The interfaces appear to be dummying down the human intelligence, which strikes me as antithetical to the task. Machine code is time-consuming. C/C++ also, but less so.

    The interface needed has to be more LISP in nature, and a Voice interface is probably going to be needed before enough programming effort can be applied.

    I'd certainly love to see the voice interaction tools start to evolve to a point of usefulness.

    --
    www.dedserius.com
    VB != VisualBasic
  3. Distributed Processing for GA's? by Hercynium · · Score: 2, Interesting

    I've experimented with some of this myself during my free time. It was nothing incredibly complex, however I used the basic concepts of protein synthesis and enzyme function to operate on a 'DNA' code base that was dynamically mutated and generated.

    While the 'enzymes' and 'proteins' were fixed during my experiments, they certainly could be mutated and evolved in more advanced versions of my programs.

    An interesting side effect was that as a strain of 'DNA' evolved it became longer and longer. Upon tracing advanced mutations I found large sections of the genes to go completely unused.

    Anyhow, what I menat to get to was that a model like this could certainly be distributed much like Bovine or SETI. A central server distributes 'DNA' to the client machines as well as a series of environmental test suites to measure their development. The client machines would iterate the DNA code through the test environment and mutate (or even breed) successors to the original DNA so as to discover a more efficient GA. The result set as well as the DNA fragments would then be transmitted back to the Server for analysis, processing and ultimately re-distribution.

    An additional benefit of this approach would be that if a single genome is sucessful on a large number of systems it would be relatively easy to identify.

    While my inital experiments were written in C, I eventually migrated to C++ (which actually made it much more complex.) However for a distributed client, the use of java would likely be the most efficient, espesially for the distribution of the testing environments.

    --
    I'm done with sigs. Sigs are lame.
  4. Re:Genetic Programming by call+-151 · · Score: 4, Interesting
    There are some "real applications" where genetic algorithms are used to solve some difficult questions in abstract mathematics.

    There are a number of difficult questions in the field of research in combinatorial group theory for which no reasonable-time (non-exponential or worse) algorithms are known. Genetic algorithms have proven to be surprisingly effective for some questions in this area; I am part of an open-source project (the Magnus project, an endeavor of the New York Group Theory Cooperative) which has implemented a number of genetic algorithms in our software for computations in combinatorial group theory. See this page for a descripition of some of the genetic algorithms implemented in our software. In particular, some difficult theoretical questions that had been studied for more than 20 years turned out to be answered quickly (less than 30 seconds on a 300 Mhz PII) via a genetic algorithm approach. (The most remarkable of them was the dismissal of a potential counterexample to the Andrews-Curtis conjecture which had been very resistant to theoretical and traditional computational approaches.)

    I know of other successes of genetic algorithms in research mathematics in areas like control theory and modelling, but I am most familiar with algebraic applications. In the situations described above, there are good measures of `fitness' and a good notion of two reasonably-fit individuals combining and possibly mutating to make even-more-fit offspring. It is much more difficult to apply the techniques where there is not a good measure of fitness or of combination.

    --
    It's psychosomatic. You need a lobotomy. I'll get a saw.
  5. Re:if only it were that simple by Alsee · · Score: 2, Interesting

    The main problem is what is not shown, i.e. the fitness function

    I've programmed some genetic projects myself, and your right. In some cases the hardest part is creating an effective fitness function.

    This leads me to an interesting insight. In some cases it may be worth evolving the fitness function. It may be easier to write a fitness function for a fitness function. A fitness function should return maximum value on correct data, minimum value on random data, and intermediate values for data with varying amounts of random errors. Creating a variety of degrees of random errors as test cases would usually be pretty easy.

    This technique would approximately double the time to solve a problem. For hard problems, double running time is a heck of a lot better than unsolvable.

    Interesting project, I'll have to give this a try. I haven't programmed any genetics in ages.

    --
    - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  6. I was recently contemplating the same thing by I+Am+The+Owl · · Score: 3, Interesting
    I was talking to a friend of mine the other day about how he had taken one of those programs in which you "make" your own battle robot out of assembly code, and had written a program that wrote a bunch of them and then matched them up, combining the instructions of the winning bots to form the next generation.

    This got me intrigued, so I hopped on to Google, and, lo and behold, this is what I found. Probably one of the more interesting works that I have read online in quite some time, although there were parts that I didn't understand since I haven't yet taken enough coursees in high math to properly comprehend them.

    --

    --sdem