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*?"

36 of 174 comments (clear)

  1. if only it were that simple by rossjudson · · Score: 3, Insightful

    Please. Two notes on a page? Breakthrough? Hah. It's a hell of a lot tougher than it looks.
    Read Koza's three tomes for extensive research on genetic programming (the art of developing programs through genetic-evolutionary techniques).
    Read about particle swarms if you want to learn about an evolutionary technique that is quietly kicking the ass of most others wherever it is used.
    From a theoretical point of view, this feels like it won't solve or do anything that can't be found within the solution space anyway, by another technique.

    1. Re:if only it were that simple by xmedar · · Score: 3, Insightful

      The main problem is what is not shown, i.e. the fitness function, for those that don't agree I challenge you to derive a fitness function for human beings, when you start finding that the fitness function is partially given by the humans themselves and the technologies and social organisations they adopt (i.e. humans are part of the problem space too) you suddenly find that what looked easy is actually not. The system described on the webpage is a "solution" in the same way that economics has a "solution" by specifying that supply/demand curves are given and not derivable and therefore misses the point. Certainly genetic algorithms are useful for well defined fitness criteria, unfortunately much of life is so intertwined that actually defining it is not possible.

      --
      Any sufficiently advanced man is indistinguishable from God
    2. 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.
    3. Re:if only it were that simple by shibboleth · · Score: 2, Insightful

      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.

      If you had code that could determine how correct your data is that's all the fitness function you need.

      The problem of how to break down complex programming tasks into GA-buildable algorithms is often very difficult for a knowledgable and intelligent person much less a computer program. Therefore an automagic general case solution is in my opinion impossible until there is a general and flexible art. intelligence, something I believe no one has much of clue how to build. The good news: it's fun to try in the meantime.

      --
      "Be thankful you are not my student. You would not get a high grade for such a design :-)" - Minix pro
    4. Re:if only it were that simple by xmedar · · Score: 2

      So if we had 100 trillion decendents from a generation then we would have good fitness even though we would not be able to feed all but a few billion of them? Worst case people start lobing weapons of mass destruction around to get their fill of food and wipe out the human race. Like I said, fitness in human beings is not just a biological one, it is social and technological one as well. Humans are part of their own fitness function, therefore it is not possible to describe that fitness function without refering to the system itself, there will be lots of recursion involved and inflection points and discontinuities when we hit the introduction of new social organisations (like cities) and technologies (like the Net). In essence what I am saying is that the fitness function is at best chaotic and at worst a social/technological form of Heisenbergs uncertainty principle.

      --
      Any sufficiently advanced man is indistinguishable from God
    5. Re:if only it were that simple by xmedar · · Score: 2

      The number of offspring any given human has does not affect there probability of survival rather it speaks to the probability of there descendants survival.

      Depends, if the descendents say take on the belief system of their parents, like for example an apocalypic cult like Aum Shinrikyo in Japan, the number of offspring could be inversely related to their survival (more people to cause the apocalyse, more chance of it happening, more chance of them and the rest of us being killed)

      --
      Any sufficiently advanced man is indistinguishable from God
    6. Re:if only it were that simple by JesseL · · Score: 2

      Most people seem to agree that the ultimate survial probability for humans is 0% ;-)

      --
      "Prefiero morir de pie que vivir siempre arrodillado!"
    7. Re:if only it were that simple by Alsee · · Score: 2, Informative

      Sorry, that is _not_ a fitness function for humans
      In the context of evolution, number of decendants is the definition of fitness.

      but having many kids does not make a person _fit_
      In the context of evolution it does. Everyone dies. The genes of people with decendants survive.

      Economic success may give a competitive/survival edge, but it tends to correlate with lower birth rate. Mental instability and drug abuse may threaten survival, but they tend to correlate with higher birth rates. Nature's finess function has nothing to do with rational judgment.

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    8. Re:if only it were that simple by xmedar · · Score: 2

      Evolution doesn't give a damn about human ideas of good or bad. If you have 100 trillion people, and food for 10 billion, then 999.99 trillion would die. By definition the living ones are fit and the dead ones are not.

      So if say BillG cornered the worlds market in food and so only his offspring and employees survived they would "by definition" be fit even though their survival had nothing to do with any intrinic abilities they possessed but rather a random factor of birth/employment?

      A human's capacity for society/technology is a product of his biology. The society/technology he is surrouned by is his enviornment.

      This is a Nature 1 : Nurture 0 argument, i.e. biological predestination, my biology is very similar to all other humun beings, yet some work in supermarket check outs or fly airplanes and I chose to be a techie, my consciousness is only partly determined by my genetics, I would venture that mostly it's a product of my choices, driven by what I feel is interesting, as someone who is part of creating my environment I know that it is a two way relationship, which is what I was getting at.

      Even without technology the specific challenges an organism must overcome to reproduce are often Heisenberg - recursive, complex, and even contradictory. Mental instability may result in more offspring

      So you are agreeing with me that it is not possible to form a fitness function as negative and positive traits cannot be descerned.

      In the end, individuals with decendants are evolutionarily fit. Those without decendants are not.

      So test tube babies created from donor sperm/eggs make the individual fit then?

      Human society and technology makes for a very complex enviornment. The rules of evolution apply until we start choosing our own DNA.

      The rules of evolution always apply, the difference is what is fit in one social / technological environment is not fit in another, and as we humans shape our societies and technologies, we are already changing the selection criteria.

      --
      Any sufficiently advanced man is indistinguishable from God
    9. Re:if only it were that simple by xmedar · · Score: 2

      Some significant traits can be descerned, but ultimately the fitness function is the universe around that person. Each individual experiences a unique fitness function.

      And would you agree that an individual human beings effect on their environment is much larger than zero, and orders of magnitude greater than the other lifeforms on the planet, e.g. my "fitness" may be bad in a poor country as my technology skills are not required therefore I will not eat and therefore die, but if I get on a plane and fly to a country where my skills are in high demand I can live a very nice life and have many offspring. In that case I can choose my environment and therefore choose my fitness, therefore my fitness and my choices are inseperable.

      There is certainly a random factor. Fitness is the ability to survive the random set of challenges you face(your unique fitness function). Even in this example traits are being selected for. Those that died could have stored food, or been able to digest wood, or had a resistance to starvation. They failed that test. Those that survived had associated with a powerful person, a survival trait.

      My point is that conscious choice means that there is massive non-linear and random feedback which makes the fitness function impossible to devine therefore you cannot model the system. As for surviving by being associated with a powerful person, that assumes a continuation of power, in the above example you might survive a while, before BillG comes crashing down under the weight of Open Source and therefore has no more power therefore you die and the trait dies with you (sorry this is /. remember).

      The sun going nova would be a pretty intense selection pressure, hehe. In the year 2XXX humans will be fit. Interstellar travel could be a pretty handy survival trait :)

      I think the estimate is about 4 billion years before the Sun becomes a red giant and engulfs this planet, which illustrates my point again. Humans would take plants / animals with them and therefore the fitness function for planet/animals would also become entwined with humans and therefore their fitness function would not be calculable, imagine a fitness function that incorporates terms describing how liked they are by humans as pet/food/inspirational/spiritual, do you think you could do that?

      Nature is potential and inclination.
      Nurture is possibility and influence


      Agreed, and...
      Imagination is possibility.
      Conscious choice is actualisation.

      Society is part of the environment. The environment changed. Some forms of infertility are no longer selected against. So yep, they are fit in their environment.

      Who is they? Do you mean the genetic donor? The Sperm/eggs? Or in infertile parents?

      If we have designer babies (or redesign ourselves) the rules go out the window. The multiplication of genes is no longer linked to survival / sucessful reproduction. The elimination of genes is no longer linked to failure.

      The rules are already out of the window. Survival / reproduction is no longer something that is guided only by genes, nurture does play a part, and conscious choice now plays an even larger part. Take people who have a particular musical bent (like perfect-pitch), some might choose to be part of a classical orchestra, and some may choose to be a rockstar, the rockstar has more chance of reproduction than the classical musician, yet they both share a genetic predisposition in the same direction, so genetics becomes much less important than conscious choice, therefore the human is the more influential part of the fitness function and cannot be discounted, therefore there is no possibility of creating a fitness function for the human. QED

      --
      Any sufficiently advanced man is indistinguishable from God
    10. Re:if only it were that simple by mrogers · · Score: 2
      'Fitness' is easy to determine in simple optimization problems such as the travelling salesman problem, and this is the area where genetic programming has enjoyed some success. But it's difficult to imagine applying genetic programming techniques to the development of what most people think of as software: operating systems, word processors, web browsers and the like. The 'fitness' of large, complex programs can be as difficult to determine, and as subjective, as the 'fitness' of biological organisms. For example, even if you could measure abstract properties of a program such as usability, robustness and performance, what relative weights would you assign to those abstract properties in your overall fitness function? It is absurd to think that a property such as 'usability' could be measured in an automatic way (that is, without large amounts of user testing and statistical analysis of the results), and if a property cannot be measured it cannot be used in a fitness function.

      Genetic programming suffers from the same scalability problems as manual programming: it is easy to write an isolated algorithm or procedure, but the difficult part of design is not algorithms but architecture: to design the whole requires an understanding of the parts and vice versa. (Which is not to say that picking the right algorithm isn't important, but it shouldn't be difficult.) Designing the fitness function for a complex program requires as much architectural insight as designing the program itself.

      So where will genetic programming come into its own? Consider natural selection. An organism does not live or die based on an abstract fitness function, it lives or dies based on the particular circumstances in which it finds itself. The fitness function is different for each individual in each situation: in fact the fitness function is no less complex than the world itself. The fitness function includes every predator, every drop of rain, every photon escaping from the organism's surface. The enormous complexity of the environment drives the evolution of ever more complex organisms. As more complex organisms evolve, they make the world more complex for their neighbours, so species must continue to evolve just in order to survive: like the Red Queen, they must run to stand still.

      Where can we find this kind of complexity in computer science (outside of the POSIX standards documents)? In applications that are connected to the hugely complex social world of human beings: applications like email and chat. There are already programs living 'in the wild' in this complex environment, programs that are able to reproduce in the digital world by exploiting niches in the social world: email viruses.

      Evolution will occur in any system that meets three basic requirements:

      • Competition between individuals for limited resources
      • Variation among individuals, affecting their chance of reproducing ('fitness')
      • Inheritance (offspring are more similar to their parent(s) than to a random member of the population)

      Wherever evolution occurs, the complexity of the evolving system will increase to match the complexity of its environment. Viruses will eventually exceed the complexity of any hand-written software, because they will evolve to meet the complexity of their environment, the human social environment, which is far more complex than any artifact designed by a single human being.

    11. Re:if only it were that simple by xmedar · · Score: 2

      note: "organism" = "humans, just like everything else".

      Yes humans are organisms like every other the only difference is the magnitude of change in terms of survival that each individual can make not only to him/herself but also to the rest of the population, if you want to take recent events then look to see if there are any other animals that can slaughter 5,000-6,000 of its bretheren in the space of a couple of hours, I am certainly not aware of any other organism that can do such a thing. Compare say with an ant colony, say an ant wanders off on its own and does not return, that ants contribution to the whole is lost, but it does not make a difference of anything like the same magnitude as one human being can make. What Iam arguing is that humans, due to intelligence / technology / choice have a much higher tipping point as far as the survival of others is concerned. Maybe if Hilter had not been born there would have been no WWII and millions of lives would not have been lost. Comparing other organisms to humans makes sense if we were still cave dwellers scavenging for food, today we have the ability as individuals to affect the lives of millions or even billions of our species, no other organism can do that.

      There is a feedback loop between an organism and it's environment. The society that an organism is born into is part of it's enviornment. It's potential to relate to that society(and the rest of it's enviornment) and it's inclinations in doing so are determined by it's genes. The enviornment has a huge impact(possibilities and influences) on how it develops. Fitness is how well it interacts with it's enviornment to reproduce.

      As above I am saying that the feedback is orders of magnitude more than other organisms and therefore is approximate to a discontinuity.

      Earlier in the thread I said "ultimately the fitness function is the universe around that person[I should have used organism rather than person]...a more specific description...is necessarily incomplete" so I think we agree it is hopeless to try to create an actual function, human or otherise (except perhaps with huge simplifying assumptions).

      BINGO! The simplifying assumptions can approximate simple lifeforms which can then be modelled, like I said my point is that you cannot make assumptions about humans as you have to factor in the choice-technology part of the equation (e.g. you can only choose to nuke the planet if you have invented nukes) which can have more of an impact on survival than being a good hunter-gatherer.

      It looks like many parts of your post is centered around a relationship between human intellegence and fitness function. I *think* the dissagreement is that I don't see humans as beyond the rules.

      Do you mean that the intelligence-choice-technology aspect is so small as can be discounted as a simplifying assumption then? If so could you explain to my why as I see no way to discount them given the sort of examples I have given above and in this thread.

      Last post you said The rules are already out of the window, but your post before said The rules of evolution always apply? My position is/was "The rules of evolution apply until we start choosing our own DNA."

      The rules of evolution always apply because they would not be the rules of evolution if they did not. As far as the rules being out of the window, I should clarify I mean our conception of the rules is out of the window, i.e. survival of the fitest is always true by its own definition, it is just we cannot determine what constitutes "fit" due to addition of the highly disruptive intelligence-choice-technology component of the equation.

      Human thought is more sophisticated, but I don't see it as fundamentaly changing anything. Different enviornments(experiences) lead to different behavior(decisions).

      Expereince is not genetically coded and therefore is outside of the evolutionary sphere (unless you are arguing for Lamarkian evolution where expereince IS coded in genes). Environments(experiences) and behavior(decisions) are connected via the human brain which itself an evolving entity, i.e. you have evolution in the mind within the lifetime of the individual which is a majot part of determining whether the individual reproduces.

      As far as conscious choice - I think if you can "solve the problem" for apes then you have either solved it for humans, or are a relatively small step away.

      Thats fine, except for the fact it ignores technology which allows us more choices, an ape may choose to wipe out every other ape on the planet, but it doesnt have the means, we do, and thats why there is such a huge difference in the individuals contribution to not only its own survival but all the others survival. If you happen to have some AI that will even approximate an ape I would be very interesting in knowing about it, and if you can simulate the interaction of 6 billion apes with that AI to see how the AI changes the survival characteristics of an individual I would be more than happy to see it in action (read I can be anywhere in the world to see it in ~12hours with suitcases of money to fund you)

      iff (ape QED) iff (frog QED) iff (fly QED) iff (yeast QED).

      Thats a nice reductionist line, however complexity (which is what this is really all about) cannot be reduced in such a fashion, if it could be then the AI problem would be simple and we'd have cracked it by now. As far as say simulating a micro-organism is concerned it is possible to simulate by either completely discounting interactions with the environment or modelling them simply (no yeast is going to be elected president of the USA and cause global-thermonuclear war).

      Many species already rely on other species for survival. If you can give me all the current species functions without humans, I'll give you the you the the entwined function. :) I claim the difference is relatively trivial.

      Co-evolution does happen and that evolution does take place at the genetic level, there is no higher function like consciousness that gets in the way. Of course around 99% of the earths biomass is single celled organisms, if you can tell me how they are all affected by human intervention I'd be interested to know, as there are so many types you could start with the micro-organisms that live by deep underwater vents in the oceans and move through to those that live in rocks kilometres (or miles) down in the earths crust for billions of years before humans even walked on the earth :)

      --
      Any sufficiently advanced man is indistinguishable from God
    12. Re:if only it were that simple by xmedar · · Score: 2

      Sorry for the long posts, I am just trying to make the points as well as I can.

      My reducio-ad-absurdum of comparing yeast and humans - my point was that modeling yeast by "completely discounting interactions with the environment" is about as valid of a measure of yeast in the wild as modeling a human by "completely discounting interactions with the environment".

      You seem to be saying that yeast has the same potential as humans to affect its environment and therefore the rest of its species accordingly and that the biological and chemical interactions of yeast are no different in scale or scope to what humans achieve with technology. This is where I would have to disagree with you, from my perspective human potential is exponentially increased with the ability to a) have conscious choice and b) create technology.

      In most species of primates an individual is easily capable of killing one millionth of it's population in an hour. If you want raw numbers of dead, an ant colony can do it. (Before you complain a colony isn't an individual, a human can only do it based on the efforts of others as well. You can't build a nuke alone.) Even if I were to grant the human effect is larger, it's not a new effect

      If there were 6 billion apes would one individual be able to kill one millionth of that number? No, I think not, infact our ability to change out environment and thus the survival chances of one another are determined by technology and by our conscious choices, no other organism on the planet can do that. As for the ant colony, the colony is working for a common goal, the difference with humans is that an individual can subvert the work of all others to bring about an outcome that completely different to what the rest of the species was working towards, that is done through leveraging technology,something the ants cannot do.

      I'm saying *IF* you can deal with an effect present in non-humans, then you can deal with it in humans.

      Again you seem to be discounting the emergent phenomena that come from human cosnsciousness and technology. If you want to take the line down from yeast we could go down to a virus, or a protein, or an atom, or an electrons quantum waveform. This is again the same reductionist line that has failed time and time again do deal with emergent phenomena.

      I think our dissagreement is that you think I'm trivializing the effect of human intellegence and interaction, where as I think you are trivializing the effect of non-human intellegence and interaction.

      I'm not trivialising, I am saying that there is a large difference in what is possible due to human intelligence and interaction, one that is so large that it becomes the driving factor in determining survival vs. genetic traits. If you look at the number of geneticdefects that would be fatalin the wild and are not now due to human intervention you can see this, or look at the effect of estrogenic compounds in water that is now contributing to infertility.

      If you learn american sign language I'll dig up a gorilla to debate the point with you :)

      Please and while you're at it if you could get Noam Chimpsky to explain the themes of The Matrix with regard to late 20th century Western society :)

      I am saying the feedback is everything, and therefore equal.

      Therefore yeast can have an equal effect to humans in terms the effect on the planet earth?

      Organisms that interact well with their enviornment leave more copies of their genes in later generations. The details of that interaction may vary in nature and complexity.

      And how do we define "well"? If we have 6 billion humans on the planet that would assume we are interacting well and therefore "fit", unfortuantely if we degrade the environment through pollution / thermonuclear war etc and thus kill ourselves off in the end, we are then not fit, without knowing the future course of humanity it is not possible to determine whether we are fit as we don't know the outcome.

      I am puzzled by your request for me to show you Ape AI. My position was that human AI would be a relatively small small problem if we had it.

      Would it? Perhaps you'd like to take the current work on nematode brains and scale up (a small problem) to an ape brain and the on to a human and we can see if the jump is really that small.

      I am puzzled by your request for me to tell you how humans affect earths biomass. My position was that it was a relativly small problem if we had the function for earth without humans.

      No, I maade the point that most of life is single celled, and you said you'd show how human interaction affects any lifeform I asked, so I asked if you could provide the entwining function with regard to a) single celledorganisms living in superheated deep ocean vents and b) those living kilometres down in the earths crust, if you still want toanswer I'd be interested to hear some answers.

      I was trying to refute that by pointing out that any organism in a different enviornment will behave differently, human or not.

      My point is that I can choose my environment, asopposed to having to put up with whatever environment I am presented with, and yes animals and birds migrate, and that is not conscious choice of environment.

      P.S. Saying a individuals mind evolves is poor choice of words in an evolution discussion. An individual cannot evolve, it develops.

      That would depend is you define evolution as only genetic evolution, from Merriam Webster -
      Main Entry: evolution
      Pronunciation: "e-v&-'lü-sh&n, "E-v&-
      Function: noun
      Etymology: Latin evolution-, evolutio unrolling, from evolvere
      Date: 1622
      1 : one of a set of prescribed movements
      2 a : a process of change in a certain direction : UNFOLDING b : the action or an instance of forming and giving something off : EMISSION c (1) : a process of continuous change from a lower, simpler, or worse to a higher, more complex, or better state : GROWTH (2) : a process of gradual and relatively peaceful social, political, and economic advance d : something evolved
      3 : the process of working out or developing
      4 a : the historical development of a biological group (as a race or species) : PHYLOGENY b : a theory that the various types of animals and plants have their origin in other preexisting types and that the distinguishable differences are due to modifications in successive generations
      5 : the extraction of a mathematical root
      6 : a process in which the whole universe is a progression of interrelated phenomena

      --
      Any sufficiently advanced man is indistinguishable from God
  2. It's the fitness function, stupid... by Anonymous Coward · · Score: 2, Insightful

    The biggest problem with any genetic system is testing fitness. It has always been that way, and always will. The genetic system can only be as good (regardless of computing power) as the fitness function. Find a way to improve THAT automatically, then you will have true machine intelligence with infinite potential.

  3. Great.. by VFVTHUNTER · · Score: 3, Informative

    Someone took a GP algorithm and superimposed it on the architecture of an RS Flip-Flop. On the plus side, with all of /.'s traffic, they probably won't have a hard time finding someone to fill that open position at the bottom of the page.

  4. A framework for self-improving systems by Black+Acid · · Score: 4, Informative
    ResearchIndex lists Theo: A framework for self-improving systems. Although The NECI Scientific Literature Digital Library: ResearchIndex itself does not carry the document, it lists several related ones. Heavy stuff. An excerpt from ResearchIndex summarizes Theo quite well:
    For instance, the THEO system (Mitchell et al. 1989) uses a single knowledge base and a single set of axioms.
    I'd suggest anyone seriously interested in self-improving systems check out Mitchell, T. M., J. Allen, P. Chalasani, J. Cheng, O. Etzioni, M. Ringuette, and J. C. Schlimmer's 1989 book, Theo: A Framework for Self-Improving Systems: National Science Foundation, published by DEC.
  5. Genetic Programming by nyjx · · Score: 4, Informative
    ... has been around since the mid 80's and although it works for toy problems it's very hard to get systems of a significant scale out of it. You're basically swapping sub branches of your program around to see what works - tranversing the space of all possible programs - it takes *a lot* of random attempts to do better than a human doing it analytically. Most AI researchers believe that you need at least a little bit of knowledge to guide your program's adaptation rather than blind mutation.

    The Father of GP (John Koza) may disagree with me - he runs genetic-programming.org and more or less invented the field. He's also known for his vigorous defences of GP: anybody know of real applications?

    A somewhat more complete description of GP can be found at Genetic-programming.com.

    --
    .sig
    1. 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
    2. Re:Genetic Programming by Some+Dumbass... · · Score: 3, Insightful

      Which is why efforts at AI programming will continue to require human interaction for the foreseeable future.

      No kidding. And in related news, educating humans will require human intervention in the forseeable future.

      Obvious, eh? Almost as obvious as the idea that the random mutations used in genetic programming are about as efficient as real random mutations. They get the job done eventually, but require a lot of screw-ups to make one improvement.

    3. 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.
    4. Re:Genetic Programming by call+-151 · · Score: 2
      `Convexity' of a search space which can be described in terms of a vector of real numbers means that given any valid search parameters A and B, all possible convex combinations (combinations which are of the form tA + (1-t)B for some real number t between 0 and 1) are valid search parameters as well. If the search space lies in some Euclidean n-dimensional space, "convex" means the same thing as the usual convexity of a subset of n-dimensional space. (That is, a subset X of R^n is convex if given any two points A and B in X, every point on the segment joining A to B also lies in X.)

      When you are searching a convex search space, it makes sense to try things "in between" A and B- if your space is not convex, it is more difficult to come up with new valid guesses which are somehow related to A and B.

      --
      It's psychosomatic. You need a lobotomy. I'll get a saw.
  6. How do you define improvement? by Fuzion · · Score: 2, Insightful

    The problem with self-improving programs using Genetic Programming, is that the problem inherent in the process of evolution are present in the programs. When species evolve, it's not always for the better, there have been cases where evolution has made things worser than before.

    This might not be noticable for relatively simply programs, but on a very complex program, how do you tell if a certain modification introduced by the system, is actually an improvement? What if the modifications makes the program slightly faster, but introduces long-term problems?

    I think this is one of the biggest problems (other than the programs becoming sentient, and taking over the world ;-)) with self-improving programs.

    --
    "Knowledge makes us accountable." - Che Guevara
  7. Hmmm, I Wonder... by Myriad · · Score: 2
    ... if the author, or some of the people who have posted so far, have any first hand experience of "Automatic Design of Algorithms Through Evolution" (ADATE)?

    If not, might I suggest getting out more?? :)

    --
    "They do not preach that their god will rouse them, a little before the Nuts work loose." Kipling, 'The Sons of Martha'
  8. 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.
  9. Re:What's an RS Flip-Flop by VFVTHUNTER · · Score: 2

    EE may not be your cake, but at least you knew it was EE. Broadly speaking, there are two kinds of digital logic: combinatorial and sequential. Sequential digital logic is basically combinatorial digital logic with some feedback wires. An RS flip-flop is a couple of digital logic gates with the outputs fed back as inputs. This means that the output of the RSFF depends not only on its current inputs, but its current outputs (i.e., its current state) as well. So, in its most basic sense, an RS flipflop is (maybe) the simplest implementation of a finite state machine. The GP page this post links to uses feedback in much the same manner - the synthesized mutation code and crossover code are fed back into the GP systems. Given that many systems considered for analysis are inherently non-linear, this is probably a good idea - are brains would not be the wonders that they are without feedback.

  10. GA Archive by metlin · · Score: 3, Informative

    Check out the GA Archive. Great collection of the more famous GA's and proceedings.

    For those wishing to get an intro to GA, try The Hitchhiker's Guide to Evolutionary Computation.

  11. My own experiments with evolved code by melquiades · · Score: 4, Insightful

    In college, I did a project in which I attempted to evolve programs for Core Wars, in which two programs running in a virtual machine language basically attempt to overwrite each other's memory space.

    My algorithm started with random programs and pitted them against each other in the Core Wars arena. The fitness function was simple: programs that beat other programs got higher ratings. Top-rated programs would "breed", and all programs would mutate. The hope was that after time, successful warriors would evolve.

    And, lo and behold, they did! My algorithm "evolved" some simple bombers -- not nearly as good as what a human would write, but amazing considering I put no knowledge about strategy into the algorithm, and started with random core wars code.

    Ah, but (there's always a but) I found that there was no significant correlation between how successful a warrior was and how many generations of crossover went into it. In other words, the genetic algorithm did no better than an algorithm which simply selected lots of random programs and kept the ones that work. So actually, my result was not very impressive at all -- I was basically doing a brute force random search for programs, and happened to find a few.

    Others might get much better results with different languages, because Core Wars machine code does not lend itself to crossover (i.e. it's had to merge two Core Wars programs into a better program). Functional languages do a bit better with this. But I really doubt that Genetic Algorithms will prove useful in the near future for generating any sort of code that wouldn't be trivially easy for a human to write.

    1. Re:My own experiments with evolved code by Animats · · Score: 3, Insightful
      In other words, the genetic algorithm did no better than an algorithm which simply selected lots of random programs and kept the ones that work.

      That's not unusual. Any broad-front search (which includes genetic algorithms, simulated annealing, and neural nets) should be tested in this way. Both ends of the search spectrum - pure hill-climbing using a greedy algorithm, and random search, should be tried. Unless a more elaborate algorithm beats both of them, it's not accomplishing anything.

      This is an embarassing truth which GA researchers hate to hear. But GA people need to do this validation or they waste time on problems for which GAs are unsuitable.

    2. Re:My own experiments with evolved code by Rogerborg · · Score: 2
      • This is an embarassing truth which GA researchers hate to hear. But GA people need to do this validation or they waste time on problems for which GAs are unsuitable

      Amen to that. Back when I was in research, I had endless hours of fun baiting GA reasearchers on just this issue. For all the applications that I tried GA's for (most notably scheduling issues), using a good fitness evaluation function plus a random generator produced usable (but not optimal) results in much shorter times than a breeding program.

      I agree that to arrive at a optimal or unique solution in a large search space, GA's have a use, but for most human purposes, just roll the dice and see what you get.

      --
      If you were blocking sigs, you wouldn't have to read this.
  12. Why genetic algorithms are powerful by Alsee · · Score: 2, Informative
    --
    - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    1. Re:Why genetic algorithms are powerful by Alsee · · Score: 2, Insightful

      Most sorts based on divide-and-conquer are O (n log n), while most based on nested loops are O (n^2)). This isn't a matter of replacing a building block, but rather the whole algorithm!

      This issue is well known and studied in the field. A genetic algorithm randomly searches for a solution. If it happens to focus on a nested loop method it will probably converge to an extremely efficent form of O(n^2). This is known as a local optimum. Depending upon how the genetic algorithm is set up it may or may not be able to discover an O(n log n) solution given time. For one thing, a larger population size helps.

      The most common solution is to run the genetic algorithm from scratch a few times so that different random strategies get tested. Another technique is to co-evolve "parasites". First the sort programs converge on a solution and they all start to look alike. Then the parasites home in on the sorting programs. The sort programs start to diversify to escape the parasites. The "fleeing" sort programs explore for different algorithms to use.

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  13. That's called bloat by carlossch · · Score: 2, Informative
    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.

    The growth of the proportion of introns (genetic code which does not directly influence the fitness function) to exons ("relevant" genetic information) as the fitness of the individual grows is a reasonably well-documented phenomenon in GP communities, and is commonly called bloat. "Relevant" because, despite conclusive evidence, most researchers believe that the introns are also relevant to the individual, even if not directly.

    For example, mutations can occur on introns without any direct change to the individual. As introns are comprised essentially of copies or parts of original genetic code, they probably provide a place where mutations to possibly beneficial (albeit inactive) genes can occur safely.

    Besides that, as bloat increases, the active genetic code decreases in proportion, and as a result you get a kind of 'clustering' of active genes, which is a good thing, because the chances of a disrupting crossing-over go down.

    A great book on the subject is Genetic Algorithms + Data Structures = Evolution Programs, by Zbigniew Michalewicz (but I'm not sure if he covers bloat in the text). I remember reading a paper on bloat in one of the Springer-Verlag Lecture Notes on Computer Science about Genetic Programming.

    Now, to see some really wacky and interesting things, the book to read is Evolutionary Design by Computers, edited by Peter Bentley, with lots of nice papers to read (and a kickass foreword from THE MAN Richard Dawkins)

    Links for the paranoid:
    http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp ?theisbn=3540606769&vm=
    http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp ?theisbn=155860605X&vm=

    Carlos

  14. 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
  15. Not that simple by samael · · Score: 2

    Number of descendants that are _fit_ is the definition of fitness. :->

    Having 20 children that all die before having children of their own doesn't make you fit.

    1. Re:Not that simple by gorilla · · Score: 2

      Many people studying evolutionary biology use the number of grandchildren as the measurement. If you have grandchildren it's clear that your children survived to reproduce, and therefore your behaviour was good.

  16. Re:Similar to by Dyolf+Knip · · Score: 2

    I've always been impressed by things like Tierra. You write an environment where self-replicating programs have to compete with each other for space and runtime. Factor in the occasional mutation and the ancestral program (70 or 80 commands) evolves, after several million generations, into a whole panolpy of organisms. There were simple ones that could replicate using only 30 commands, then there were parasites on those that could do it in 20, ones that could only replicate in the presence of a similar program, parasites on the parasites, all sorts of things.

    --
    Dyolf Knip