Slashdot Mirror


Evolution of Mona Lisa Via Genetic Programming

mhelander writes "In his weblog Roger Alsing describes how he used genetic programming to arrive at a remarkably good approximation of Mona Lisa using only 50 semi-transparent polygons. His blog entry includes a set of pictures that let you see how 'Poly Lisa' evolved over roughly a million generations. Both beautiful to look at and a striking way to get a feel for the power of evolutionary algorithms."

326 comments

  1. Sweet by Symbolis · · Score: 1, Interesting

    Awesome. That is all.

    1. Re:Sweet by Symbolis · · Score: 1, Insightful

      Yeah. I did it to piss on everyone elses parade.

    2. Re:Sweet by Symbolis · · Score: 1, Insightful

      While I'll admit my initial comment is rather succinct, it is, in fact, on topic.

      That's a nifty bit of code, there.

    3. Re:Sweet by Anonymous Coward · · Score: 0

      Stop burning your karma you dimwit.

  2. Source code by Anonymous Coward · · Score: 5, Insightful

    Is the source code available for this? It'd be a fun project to learn from and play around with.

    1. Re:Source code by elvstone · · Score: 5, Informative

      He says in the comments that he's supposed to release the source today.

      The source is apparently C# using .NET 3.5, so might take a bit of work to get running under e.g. Mono, should you be on a non-Windows platform.

    2. Re:Source code by daveime · · Score: 2, Funny

      Yes, the whole thing would have been FAR more accessible as a 40000 character perl regex.

      Dumbass, go troll your anti-ms propaganda elsewhere :-(

    3. Re:Source code by darkpixel2k · · Score: 3, Funny

      Yes, the whole thing would have been FAR more accessible as a 40000 character perl regex.

      Dumbass, go troll your anti-ms propaganda elsewhere :-(

      Yeah, but it'd be like 5 lines in Python... ;)

      --
      There's no place like ::1 (I've completed my transition to IPv6)
    4. Re:Source code by apankrat · · Score: 1

      Yeah, but it'd be like 5 lines in Python... ;)

      It'll be a single function call in the next Mathematica release :)

      --
      3.243F6A8885A308D313
    5. Re:Source code by darkpixel2k · · Score: 2, Funny

      Yeah, but it'd be like 5 lines in Python... ;)

      It'll be a single function call in the next Mathematica release :)

      Hey--this is slashdot. You can't talk about proprietary software in here unless you are bashing it! Hand in your geek card.

      --
      There's no place like ::1 (I've completed my transition to IPv6)
    6. Re:Source code by neomunk · · Score: 2, Funny

      Calm down, Emacs is getting a macro for it too!

  3. Any GA implementation.. woo by QuantumG · · Score: 4, Funny

    Genetic Algorithms are like the AI equivalent of text editors... everybody has spent a weekend writing one at some point.

    --
    How we know is more important than what we know.
    1. Re:Any GA implementation.. woo by martin-boundary · · Score: 4, Funny

      And afterwards it's just like the creationism vs evolution debate... everybody wonders what God was thinking when he wrote vi.

    2. Re:Any GA implementation.. woo by Swizec · · Score: 2, Funny

      Damn it! I'm lagging behind because I've done neither. FUCK. *rushes out of the office to go rot at home coding stuff nobody needs*

    3. Re:Any GA implementation.. woo by QuantumG · · Score: 3, Funny

      Be sure to write your own LISP interpreter too.

      --
      How we know is more important than what we know.
    4. Re:Any GA implementation.. woo by QuantumG · · Score: 4, Funny

      umm, Knuth didn't write vi, Bill Joy did.

      --
      How we know is more important than what we know.
    5. Re:Any GA implementation.. woo by jambox · · Score: 1

      Yeah I wrote a GA at university. Unfortunately the professor didn't like it and gave it a crappy mark. Anyway, it's not too tricky to make something look impressive but the problem with it is finding some real-world application for it...

      The main thing you learn from GAs is that we know a lot already and to get useful information from a simulation it has to be VERY complex. Finding a sensible fitness measure is often a big problem too. It can be a good idea to set up two or more different populations and have them compete against each other- then you don;t need a fitness measure.

      Eventually the complexities of the evolved individuals plateau and you don't see any further evolution even if you make the "DNA" longer.

      One other thing you can do with it is to find optimal solutions like in volume/area problems or travelling salesman-y stuff. But again, it can be tough to find a useful application! The best thing I did with it was coming up with an optimal maze solution and unit placement for Desktop Tower Defense! Still couldn't crack level 100 though... :(

      --
      You thought you could break the laws of physics without paying the PRICE?
    6. Re:Any GA implementation.. woo by QuantumG · · Score: 2, Informative

      One way to boost complexity is to evolve programs.. or neural networks, if you're that way inclined. One way to speed up the evolutionary process is to use probabilistic modeling to produce offspring.. it's must more efficient than just random mutation. See http://www.opencog.org/wiki/MOSES. Eventually, though, you will reach limits to blind search. At that point you need to complement it with logic. See http://www.opencog.org/wiki/PLN. And to focus your search you really need some kind of attention allocation. See http://www.opencog.org/wiki/Attention_allocation. An integrative approach means you can solve real world applications with modest hardware.

      --
      How we know is more important than what we know.
    7. Re:Any GA implementation.. woo by martin-boundary · · Score: 2, Funny

      Heretic! You think Bill Joy isn't God! Everyone knows that Knuth uses Emacs, you heathen.

    8. Re:Any GA implementation.. woo by QuantumG · · Score: 5, Funny

      Knuth uses pen, paper and toggle switches.. the way it's meant to be done.

      --
      How we know is more important than what we know.
    9. Re:Any GA implementation.. woo by jambox · · Score: 1

      Awesome will give those a read! Before I do, I did read a couple of papers (years ago) on self-programming and had a play with the application of GA to it. Basically you'd start with a fixed input and model output then evolve a source file to produce the bit in the middle and try to compile it. You'd then match the output to your model as a fitness score which is trivial if you're just manipulating text. I could never think of a way to improve the viability of a semi-random source though- in other words, an evolved and mutated source file has a very low chance of actually compiling in any language you'd want to use!

      --
      You thought you could break the laws of physics without paying the PRICE?
    10. Re:Any GA implementation.. woo by fatphil · · Score: 1

      Forth is always a good substitute if you don't like brackets and don't want to tackly your fears head on.

      --
      Also FatPhil on SoylentNews, id 863
    11. Re:Any GA implementation.. woo by ivucica · · Score: 4, Interesting

      Real world application?

      At our Faculty (www.fer.hr), reservations for "lab practices" is done via genetic algorithms. It's kinda hard to assemble over 500 people for your class to be assigned times when they don't have any other class (there are numerous combinations of classes one can take), and to reduce the time which they have to wait after their last class ends before they are meant to go to the "lab practice".

      In case I didn't make much sense -- optimal schedules for students!

    12. Re:Any GA implementation.. woo by kvezach · · Score: 1

      For any complex problem, the devil's in the details. Do you use tournament selection, roulette wheel, or stochastic sampling? Objective GA or Pareto coevolution? One-point, two-point, or random crossover? Continuous-valued or binary genes? And so on... and we haven't even got to the population/mutation parameters.

    13. Re:Any GA implementation.. woo by jambox · · Score: 1

      Brilliant! That is the sort of thing they're good for - optimisations (like TSP). Have been trying to think of something I can use it for in the office - would probably get me a promotion just for cleverness - but I haven't thought of anything yet.

      Also I forgot the mention the application in real-time scenarios like the city (I forget where) that had the water supply balance supply using computer-operated valves. Or the real-time missile guidance system that would rotate different tracking strategies and evolve them while it was in the air, so being able to adapt to more or less any evasive maneuver by the target.

      --
      You thought you could break the laws of physics without paying the PRICE?
    14. Re:Any GA implementation.. woo by theaveng · · Score: 1

      I must be weird.

      My first "real" program (after the two-line "Hello World" stuff) was a Star Trek game. Written in Commodore 128 BASIC so it ran very slow but worked quite well. Why would anyone bother with boring stuff like text editors?

      --
      FOX NEWS.com should be BANNED from television and internet. Have the Congress take it over and give us Truespeak.
    15. Re:Any GA implementation.. woo by kvezach · · Score: 1

      It's not that hard to make the GA construct a program that always compiles; you just have to use a functional approach. Construct a program as a tree of functions. A function takes a certain number of parameters and gives an output (and ignores excess parameters). If you want modularization, you could have an alias operator, where if a function has an alias root, it's not called, and the main tree substitutes that function whenever it sees an alias reference operator among its nodes.

      For more information, see the chromosome representation section of the Wikipedia article on genetic programming, here. If you know Standard ML, ADATE may also be of interest.

    16. Re:Any GA implementation.. woo by TheRaven64 · · Score: 3, Funny

      Nietzsche said 'God is dead,' which eliminates both Knuth and Joy. Obviously God is Dijkstra.

      --
      I am TheRaven on Soylent News
    17. Re:Any GA implementation.. woo by TheRaven64 · · Score: 1

      Not my first program, but one of my first, was a WYSIWYG text editor for the Psion Series 3. The word processor it came with allowed you to create RTF documents, but on screen you just saw bold / italic / underline, and all fonts the same size and shape. The most difficult part was representing the documents in a language with no pointers, arrays limited to 255 elements, and strings limited to 255 characters. I ended up writing a simple VM system that used a temporary file and swapped fragments in and out as they were accessed (a decade later, I discovered that Microsoft Word used a very similar model for its file structure, for entirely different reasons), which was what first got me interested in how operating systems worked.

      --
      I am TheRaven on Soylent News
    18. Re:Any GA implementation.. woo by genner · · Score: 1

      And afterwards it's just like the creationism vs evolution debate... everybody wonders what God was thinking when he wrote vi.

      Vi is divine. Emacs is the work of man.

    19. Re:Any GA implementation.. woo by TheRaven64 · · Score: 1

      And a kernel. Every programmer should write a simple kernel and a simple compiler (or interpreter, but I think you'll learn a bit more from a compiler). This gives you a real understanding of how any code you write works (I should include the obligatory plug for my book for people wanting to write a kernel, but I've probably done that enough times already).

      --
      I am TheRaven on Soylent News
    20. Re:Any GA implementation.. woo by Anonymous Coward · · Score: 0

      that the devil beat him with emacs

    21. Re:Any GA implementation.. woo by ivucica · · Score: 1

      My knowledge of GA is very limited, but as far as I know they operate on principle of random values, and betting on algorithm coming up with a good solution.

      Honestly, I would not feel good living in a city where the public services company is treating my water supplies with a random-operation-based algorithm, or with random-operation-based algorithm controlling any kind of military equipment.

      It's probably just paranoia in me, but bugs in that kind of applications might result in scary consequences. (Or at least it's easy to imagine something like that happening.)

    22. Re:Any GA implementation.. woo by jambox · · Score: 1

      No, trust in the laws of nature! If you think of it like that you'd be paranoid of falling over all the time in case your legs evolved wrong. It is just random chance, after all! Try not to think about congenital birth defects.

      --
      You thought you could break the laws of physics without paying the PRICE?
    23. Re:Any GA implementation.. woo by mangu · · Score: 0

      Nietzsche said 'God is dead,' which eliminates both Knuth and Joy. Obviously God is Dijkstra.

      There are two mistakes here. First, Nietzsche said that before any of those men were born, so God cannot be any of them. Second, I'm very much alive.

    24. Re:Any GA implementation.. woo by Hognoxious · · Score: 1

      Which language did you use, the OPL that came buit in?

      I thought there was a way to implement pointers using PEEK and POKE or ADDR(). If I remember, there was an pseudo-OO OPL that was a code generator that did that (and produced very ugly code) under the hood.

      I think I still have a 3mx with a borked screen somewhere. Nice lawn!

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    25. Re:Any GA implementation.. woo by Erdferkel · · Score: 1

      Be sure to write your own LISP interpreter too.

      You mean something like (loop (print (eval (read))) ?

    26. Re:Any GA implementation.. woo by Bob-taro · · Score: 5, Funny

      Vi is divine. Emacs is the work of man.

      vivivi is the editor of the beast.

      --
      Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
    27. Re:Any GA implementation.. woo by genner · · Score: 1

      Vi is divine. Emacs is the work of man.

      vivivi is the editor of the beast.

      Lol you win.
      I guess I'll become a humble pico user.

    28. Re:Any GA implementation.. woo by TuringTest · · Score: 1

      My first program was a videogame. It was written with paper and colour pencils before I had a computer. I did not write a Hello World much after that.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    29. Re:Any GA implementation.. woo by Beezlebub33 · · Score: 2, Interesting

      GA's can find some very bad solutions to poorly created problems. I once used a GA to solve a combat problem where the problem, meaning the evaluation function, was largely based on the length of the combat. Unfortunately, the solution it found was to kill it's own side, and the combat was over almost immediately.

      There's usually a simple heuristic (for example, nearest neighbor for TSP) that does better than a random. You should check your GA solution compared to the heuristic to make sure that it's not doing something completely stupid.

      --
      The more people I meet, the better I like my dog.
    30. Re:Any GA implementation.. woo by jambox · · Score: 1

      What are you, crazy? You just have to write a completely generalised GA then evolve the parameters! Duh! I have such a thing on my laptop right here, honest. Not showing you though.

      --
      You thought you could break the laws of physics without paying the PRICE?
    31. Re:Any GA implementation.. woo by ivucica · · Score: 1

      Haha :D

      Recommended reading -- it may be fiction, but it's got some interesting, scary ideas. (I prefer Croatian translation, by the way, but whatever :P )

      I think it's safe to use GAs for stuff like meeting schedules and toying around. For other things? Other stuff are ... safer :)

    32. Re:Any GA implementation.. woo by s73v3r · · Score: 1

      It seems the only way to win is not to play...

    33. Re:Any GA implementation.. woo by AliasTheRoot · · Score: 1

      What a waste of time, just use the Emacs macro.

    34. Re:Any GA implementation.. woo by Hotawa+Hawk-eye · · Score: 1, Funny
    35. Re:Any GA implementation.. woo by spiffmastercow · · Score: 1

      Please tell me this isn't going to lead to a meme similar to the (hopefully defunct) Chuck Norris ones.

      Example: Donald Knuth has actually created and proven correct the perfect operating system. He just refuses to test it.

    36. Re:Any GA implementation.. woo by mrchaotica · · Score: 1

      Vi is divine.

      I'm honestly surprised there's not a fork of vi called "diVIne."

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    37. Re:Any GA implementation.. woo by Savantissimo · · Score: 1

      My first thought on reading that was "Wow - Dijkstra is on Slashdot?!"

      My second thought was that Dijkstra has a rather high Slashdot ID, considering - still impressive to be posting, being dead and all.

      Sorry, God / Mangu.

      My third thought is: "I'm /still/ pissed that GOTO is considered harmful."

      --
      "Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
    38. Re:Any GA implementation.. woo by LanMan04 · · Score: 1

      I wrote a recursive descent parser (for a subset of PASCAL), with fully functional lexical, syntactic, and semantic analyzers, all without the benefit of LEX, YACC, Bison, etc. The grammar we were given wasn't even LL1, and we had to remove recursion by hand. Hell, everything was by hand.

      Of course, I implemented it in Java, so at least that part was easy.

      Man, grad school was awesome. :)

      --
      With the first link, the chain is forged.
    39. Re:Any GA implementation.. woo by Haeleth · · Score: 1

      Vi is divine.

      And it requires the patience of a deity to use it.

      (I say this as someone who was forced to use vi this morning due to an unfortunate NFS outage rendering all other editors inaccessible. And I mean vi, not vim. Lord, that was painful...)

    40. Re:Any GA implementation.. woo by Haeleth · · Score: 1

      No, that's merely an interface to an existing LISP interpreter. You haven't written the interpreter unless you implemented read, eval, print, and loop yourself -- and all the other basic functions that are necessary to write an actual program in LISP.

    41. Re:Any GA implementation.. woo by genner · · Score: 1

      Vi is divine.

      I'm honestly surprised there's not a fork of vi called "diVIne."

      It was all my idea. Patent pending! Patent Pending! All shall bow before my diVIne work.

    42. Re:Any GA implementation.. woo by johanatan · · Score: 1
      He already said that:

      stuff nobody needs

    43. Re:Any GA implementation.. woo by gambet1234 · · Score: 1

      http://xkcd.com/505/
      Toggle Switches! Toggle Switches!!!

      Rocks, man, rocks.

      --
      When an officer of the law breaks the law they are no longer acting as an officer of the law and need to be dealt with a
    44. Re:Any GA implementation.. woo by JuliaNZ · · Score: 1

      Oh come on, somebody mod this up!

  4. Triangles by prockcore · · Score: 5, Interesting

    I would've liked to see it done with triangles... complex polygons just feels a bit like cheating. Not that it isn't super cool.

    On reddit, someone posted another neat GA algorithm which evolves a car to match terrain:

    http://www.wreck.devisland.net/ga/

    1. Re:Triangles by ThatsNotFunny · · Score: 2, Funny

      Dorito Lisa?

      --
      "Was it a millionaire who said 'Imagine No Posessions?'" -- Elvis Costello
    2. Re:Triangles by Anonymous Coward · · Score: 0

      uh, i dont know a lot about this stuff but isnt the point that the car gets better over time? It seems to just randomly pick new incarnations.

    3. Re:Triangles by prockcore · · Score: 4, Informative

      It does.. for every generation it makes 20 mutations.. so you're seeing each of those 20 mutations run. Takes a while just for one generation to complete.

    4. Re:Triangles by Anonymous Coward · · Score: 0

      now that's fucking awesome

    5. Re:Triangles by Symbolis · · Score: 1

      From what I understand of it(which is very little, I'll admit): It started with a random bit of code to generate a polygon. It then "mutated" that bit code a bit and used the "mutated" version to render a few polygons. Next, it compared the polygons to the "master image". If they were found to be more "true" to the master image, this bit of modified code was kept to begin the next iteration.

      So, while there is randomness involved, it also follows a specific guide(the master image), within its limitations.

      I'm sure someone will be along shortly to correct me if I'm wrong.

    6. Re:Triangles by iVasto · · Score: 3, Insightful

      Just let it run for a while. In the beginning the car was always tipping over, after a few minutes the car will consistently travel across the terrain. I'm assuming that if I let it run for longer it will keep going farther and farther.

    7. Re:Triangles by lysergic.acid · · Score: 2, Interesting

      it seems pretty random actually (i've run the program like 4-5 times). sometimes it starts off slow and then gets a little better. but sometimes it starts off with a really good design and then just gets worse. it seems pretty random overall.

      the point of genetic evolution is for there to be progressive enhancements. it's not just randomly throwing the dice over and over again. you have to retain the positive enhancements of past iterations for it to "evolve." you could run this program all day long and it'll never get better than it was during the first 10 generations. that's because every time it mutates it throws out all the previous data. it's just non-directed randomness.

    8. Re:Triangles by mweather · · Score: 2, Insightful

      Real evolution works similarly, only instead of checking a source image, it checks whether you're more likely to reproduce. He simply changed the criteria.

    9. Re:Triangles by syousef · · Score: 5, Funny

      I would've liked to see it done with triangles... complex polygons just feels a bit like cheating. Not that it isn't super cool

      Here it is done with 914400 tiny coloured pixe^H^H^H^Hrectangles:

      http://avline.abacusline.co.uk/pictures/jpeg/pics/mona.jpg

      --
      These posts express my own personal views, not those of my employer
    10. Re:Triangles by aussie_a · · Score: 1

      So, while there is randomness involved, it also follows a specific guide(the master image), within its limitations.

      Sounds quite a bit like real evolution then. I wonder what our final form will actually be. Will we become gods who then go out and populate other planets?

    11. Re:Triangles by LordLucless · · Score: 1

      Uh, no. We won't do anything, because by introducing artificial controls, we've shortcircuited evolution. An unintelligent organism would eventually evolve to be ideally adapted to its environment. We're more likely to populate the universe through our own accumulation of knowledge and the expanding of our scientific abilities than by sitting around waiting to evolve telekinesis.

      Either that, or idiocracy is right.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    12. Re:Triangles by robinvanleeuwen · · Score: 1

      See it like this:

      With this we select the end result by comparing it to something it should look like, if it doesnt meet the demands it will be discarded.

      In real evolution we compare the end result, take a human being for example, to something it should look like (be attractive) or perform some task very well (be strong and fight off predators in the good 'ol days, or be successfull and bring in money for food in more modern times). And so if the result of mutation doesn't meet our demands, well... we discard it.

      Same principle, only with this it's only one demand: it should look like time mona lisa.
      In real evolution there are much more demands...

      --
      If you don't like my sig then don't read it.
    13. Re:Triangles by jibjibjib · · Score: 2, Insightful

      you could run this program all day long and it'll never get better than it was during the first 10 generations. that's because every time it mutates it throws out all the previous data

      I'm sorry, but you're completely wrong. Did you even run this program? Did you notice the messages about selection and crossover, which show that it doesn't throw out all the previous data? Or the graphs that clearly demonstrate the performance of the car improving?

      After running it for a while, the cars appear to get killed without colliding with anything, so I'm assuming this is because there's some time or distance limit on each run. That's why the evolution appears to stop after ~10 generations.

    14. Re:Triangles by pato101 · · Score: 1

      On reddit, someone posted another neat GA algorithm which evolves a car to match terrain:

      hmmm, it is time to stop trying to beat records at Xmoto.

    15. Re:Triangles by Fleeced · · Score: 1

      Uh, no. We won't do anything, because by introducing artificial controls, we've shortcircuited evolution.

      At what point did our actions become artificial?

    16. Re:Triangles by LordLucless · · Score: 2, Insightful

      Since we developed medicine. It is very rare now that humans as individuals are eliminated from the gene pool due to poor adaptation to their environments. With the aid of modern medicine, people with genetic disabilities are able to often live relatively normal lives, and reproduce. Birth control means that being succesfully sexually doesn't necessitate being successfully reproductively. The human gene pool is not being filtered by adaptiveness to the environment anymore.

      All these things are good, mind. It just means that we're not evolving due to natural selection. We're guiding our own progress. Which is good, cause the old way is slow as hell.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    17. Re:Triangles by N+Monkey · · Score: 1

      On reddit, someone posted another neat GA algorithm which evolves a car to match terrain:

      http://www.wreck.devisland.net/ga/

      Nice. Just we just need to cross that with Fantastic Contraption and we might get some really strange solutions to the puzzles!

    18. Re:Triangles by Threni · · Score: 1

      That's more artificial than using sticks as weapons, or fire to cook food? If something is made by a natural organism, is it not also natural? Do any animals do artificial things? Regarding music and the meaning of artificial:

      > While in Japan he (Stockhausen) also met up with the famous Zen master Daisetsu T. Suzuki, then in his 90s, who ridded Stockhausen of some of the apprehension he was feeling about using
      > "artificial" means to create sound. The Zen master told Stockhausen that it would be artificial only if it went against Stockhausen's inner convictions, and Stockhausen immediately understood that
      > Suzuki was quite right.

    19. Re:Triangles by LordLucless · · Score: 1

      That's a lovely little koan, but like most koans, it doesn't really add anything to the discussion. Evolution by natural selection is predicated on genetics. Certain genes are included or excluded based on their adaptability to the given situation. When behaviours develop that prevent that selection from occurring, the selection is no longer "natural", and is therefore "artificial".

      To use your example, yes, fire could be considered a means of artificial selection. If a creature was insufficiently adapted to the cold, and it's fellow creatures had developed fire such that it could survive anyway, it's less than advantageous genes would have been preserved by it's society's action - it was a "social" selection more than a "natural" selection. Eventually, that society may develop to a state whereby they cannot survive without fire. At that stage, they can also practice social selection by exiling members out of the society - without access to fire, that member will die, and (if they haven't reproduced), their genes will die with them. Again, social selection, not natural.

      Saying "you set your own standards for artificiality" doesn't really help anything.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    20. Re:Triangles by digitig · · Score: 1

      It's not that close to real evolution, as it's driven towards a target "species" -- the Mona Lisa -- which has already been designed. It's more the sort of thing that ID proponents could leap on to say that individual steps that look evolutionary are not incompatible with a designer setting the target of evolution. Real evolution would be constantly changing to an ever changing environment, with no preconceived notion of what the outcomes will look like.

      That's also the problem with your conception of our "final" form. Apart from the fact that it assumes there will be just one final form -- if we colonise space it's quite conceivable that humanity might diverge into different species -- the "final" form of an evolutionary process isn't the fittest form, it's the first form to fail totally to adapt to its changing environment, leading to the extermination of that evolutionary line. Our final form(s) will be, by definition, our least successful, worst adapted form(s). Perhaps you need to clarify what you mean by "become gods"?

      --
      Quidnam Latine loqui modo coepi?
    21. Re:Triangles by digitig · · Score: 1

      Since we developed medicine. It is very rare now that humans as individuals are eliminated from the gene pool due to poor adaptation to their environments.

      They are eliminated as often as they ever were. What you're missing is that their environment includes the availability of medicine, so a dependency on medicint is not poor adaptation to the environment.

      Birth control means that being succesfully sexually doesn't necessitate being successfully reproductively.

      But that doesn't change the evolutionary effect, it's just another environmental factor. After all, mules can be "successful" sexually but not reproductively. It's just part of the evolutionary equation, not an evolution-killer.

      The human gene pool is not being filtered by adaptiveness to the environment anymore.

      You just take too narrow a view of environment. Anything we do is part of it.

      --
      Quidnam Latine loqui modo coepi?
    22. Re:Triangles by LordLucless · · Score: 1

      And I say you take too wider view of it. I mean, you could just describe eugenics as natural selection, where the environment happens to include psychotic scientists with delusions of grandeur.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    23. Re:Triangles by aussie_a · · Score: 1

      I'm saying that just as this "evolution" involved comparing the intermediate phases with the final form (a Mona Lisa painting), perhaps humans are "evolving" and each time we do we're compared with the final form (only god knows what that is).

      Here's a question, people always assume that DNA will change into a form that makes it better able to reproduce. Why does it do that? You could say that its a "survival instinct" or that those that don't reproduce better are overwhelmed and annihilated by those that do, but why does that happen? Why must living things always be driven by the need to reproduce? We're on a ball of rock, heat, gas and liquid that revolves around a ball of fusion energy. Why must life propel itself into existing?

      Perhaps it doesn't.

      Here's another question. If you could do one of the two following things, what would you do?
      A) Create the perfect human being and hard-code all the knowledge that you have and make it a perfectly moral person who has the perfect personality and the perfect interests that benefits society.
      B) Raise a baby with love and care and teach it everything you know, letting it form its own opinions on what it thinks and how it feels. Let it make its own mistakes, and gain a new personality.

      If everyone says they would do (a) I think life would be boring, I also think the end product would be a world with no free will (with some arguing we don't even have that now. But I think what we've got is closer to free will then what the offspring of (a) would have).

      So perhaps there is a god, and it's chosen (b), but on a much larger scale. Rather then caring for a single person, it's caring for the entire race and is having us evolve into a particular form. Just as the person did in the article.

    24. Re:Triangles by oojah · · Score: 2, Insightful

      I think it's got a fixed time limit rather than a distance limit. This should mean that it selects for speed as well as ability to cross the terrain. Pretty neat either way!

      --
      Do you have any better hostages?
    25. Re:Triangles by Half-pint+HAL · · Score: 1

      Birth control means that being succesfully sexually doesn't necessitate being successfully reproductively.

      But that doesn't change the evolutionary effect, it's just another environmental factor. After all, mules can be "successful" sexually but not reproductively. It's just part of the evolutionary equation, not an evolution-killer.

      His point is valid. For a start, mules are rare to the point of never having been observed in nature, so are hardly an example of the natural world without human intervention.

      One of the key points of natural selection is that attractive and/or successful individuals will get more, and by getting more will produce more off-spring. Nowadays successful individuals get more, but beget less. Large families are now almost exclusive preserve of the working class and developing nations -- ie the less successful sectors of the population. This was noted a century ago and we got the quite repulsive idea of manipulating the human genestock (or eugenics, as we know it).

      HAL.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    26. Re:Triangles by Dogtanian · · Score: 1

      No, the Mona Lisa isn't the lifeform as such. The Mona Lisa is the intended result (cf. gathering and using food as efficiently as possible) which determines reproductive fitness. The "lifeform" is really the program- or rather the set of polygons that the program uses to generate the image- and we don't know *that* in advance.

      --
      "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
    27. Re:Triangles by Half-pint+HAL · · Score: 5, Informative

      the point of genetic evolution is for there to be progressive enhancements. it's not just randomly throwing the dice over and over again. you have to retain the positive enhancements of past iterations for it to "evolve."

      Not entirely true. Let's get back to basics, and hill-climbing algorithms.

      You have a robot and a hill, and you program the robot to always take the steepest uphill slope possible. That's progressive enhancement -- it's always getting "better" (higher).

      Except for one type of thing: local maxima.

      You see, most hills have more than one summit.

      So if the robot ends up on a lower, secondary summit, it will refuse to go down, as it must get better/higher with each step.

      But logically, to get from a lower peak to a higher one, you have to descent a short distance and then start ascending the true summit.

      Any search strategy has to account for local maxima and other dead ends, and in GA and other evolutionary algorithms, these means introducing the possibility that children are less optimal than their parent iterations.

      HAL.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    28. Re:Triangles by genner · · Score: 1

      Real evolution works similarly, only instead of checking a source image, it checks whether you're more likely to reproduce. He simply changed the criteria.

      It's guided evolution so long as the program is checking the creators source image.

    29. Re:Triangles by TheRaven64 · · Score: 5, Interesting

      Which brings us to a real use for this kind of thing. Depending on how fast it runs, it could be an interesting form of image compression. 50 polygons is generally a lot less data than 914400 rectangles. For higher quality, you could add more polygons. You then get a resolution-independent version of the original image with some loss of quality. I'm not sure if it's more interesting than topology-based compression, but it's certainly an interesting avenue.

      --
      I am TheRaven on Soylent News
    30. Re:Triangles by xZgf6xHx2uhoAj9D · · Score: 1

      I'm guessing you didn't run it for long. The fitness isn't monotonically increasing for sure, but it does increase over time. Generation 50 is better than generation 10. Generation 100 is better than generation 50. I haven't run it too much longer than that.

    31. Re:Triangles by Ihmhi · · Score: 1

      Looks like it may have run under Fantastic Contraption...

      I love how the algorithm just outright trashes some designs before they even hit the floor after spawning. "Nope, crap. Crap. Crap. This one can't even stand up straight! Crap. Crap. Crap."

    32. Re:Triangles by Raffaello · · Score: 1

      Your "social selection" is a straw man. Human society is itself a product of natural selection. What human society does is itself the both the result of and fodder for natural selection.

      You can't point at some some actions (social interaction) of a particular species (humans) and say they are somehow magically beyond the scope of natural selection. If a thing can result in differential reproductive success (and social interactions certainly can) then that thing is a basis for natural selection.

      Indeed evolutionary psychologists base much of their discipline on the notion that adaptation to the human social landscape has been one of the primary driving forces in human evolution for many thousands of years.

    33. Re:Triangles by CFTM · · Score: 1

      Uh huh, and that brings me to my next point kids, DON'T SMOKE CRACK!

    34. Re:Triangles by CFTM · · Score: 1

      That's got to be just about the dumbest thing I've ever heard. Oh wait, then I read your signature.

    35. Re:Triangles by Raffaello · · Score: 1

      You really need to read Stephen J. Gould's essay on the panda's thumb. The ad hoc, opportunistic nature of evolution is abundantly clear to those with the intellectual courage to actually look at the evidence.

      No intelligent designer would craft the poorly functional panda's thumb from a wrist bone if that intelligent designer knew the "final form" beforehand. Evolution on the other hand would and did. Faced with only wrist bones to work with, evolution did the best with available material which resulted in an awkward and far from well designed result.

      This is exactly what an intelligent designer who knew in advance the "final form" would not do. Such an intelligent designer would provide the necessary proto thumb in ancestors so that it was available for panda thumb evolution when needed. But evolution doesn't know the future in advance, doesn't know the "final form" (because there is none). So evolution doesn't provide handy proto organs, proto limbs, etc. to pick up and use as needed down the road. Evolution merely mutates whatever is to hand even if it results in an awkward "design."

    36. Re:Triangles by digitig · · Score: 1

      And I say you take too wider view of it. I mean, you could just describe eugenics as natural selection, where the environment happens to include psychotic scientists with delusions of grandeur.

      Yes, the environment should include that. After all eugenics take place in "nature" too. Evolution is a strong enough theory to include that -- there's no reason to exclude it unless for political or religious reasons you want to argue that humans are not part of nature.

      --
      Quidnam Latine loqui modo coepi?
    37. Re:Triangles by PhilHibbs · · Score: 1

      The first generation of 20 pretty much all just hit the ground and explode. After 5 or 6 generations, you get something with two wheels on the ground that gets a decent distance. After a dozen generations it's pretty much explored the problem space and you've got some of the best cars that the simple parameters can produce. After that, the random variations can only make it worse and rely on the genetic selection to weed out the bad mutations.

    38. Re:Triangles by digitig · · Score: 1

      I'm saying that just as this "evolution" involved comparing the intermediate phases with the final form (a Mona Lisa painting), perhaps humans are "evolving" and each time we do we're compared with the final form (only god knows what that is).

      There's no place for a "final form" in evolution, the process simply adapts to the prevailing environmant, and no form is any more final than the environment it is in.

      Here's a question, people always assume that DNA will change into a form that makes it better able to reproduce.

      What people assume that? Nobody who has the first clue about evolution would produce such nonsense. DNA changes at random, with no drive whatsoever towards being a form that is better able to reproduce. It happens that those forms that are better able to reproduce are likely to be present in higher proportion in the next generation, simply by virtue of being better able to reproduce, but the mutation in the DNA wasn't directed towards that.

      Why must living things always be driven by the need to reproduce?

      By definition of "life"?

      We're on a ball of rock, heat, gas and liquid that revolves around a ball of fusion energy. Why must life propel itself into existing?

      Who says it "must". Evolution says that if it ever does then it can be self-sustaining, but there's no "must" about it.

      So perhaps there is a god, and it's chosen (b), but on a much larger scale. Rather then caring for a single person, it's caring for the entire race and is having us evolve into a particular form. Just as the person did in the article.

      Perhaps there is. And your evidence would be?

      --
      Quidnam Latine loqui modo coepi?
    39. Re:Triangles by Anonymous Coward · · Score: 0

      So is Inteligent designed then?

    40. Re:Triangles by HungryHobo · · Score: 1

      You could. If they're using chemicals to cause a miscarriage to stop those they consider unfit from being born then a fetus which is remarkably resistant to the chemicals involved would get a massive advantage.

      Of course the environment(what chemicals they use) might change rapidly but it's still part of the environment.

      A child who simply fits their criteria would gain a massive advantage as well.

      "Environment" doesn't need to mean trees and snakes.

      Anyway, the only way the human race would be in trouble would be if every single member needed tech to have a child. variation is good as long as even a tiny number remain in a state which would allow them to survive without societies help.

    41. Re:Triangles by digitig · · Score: 1

      One of the key points of natural selection is that attractive and/or successful individuals will get more, and by getting more will produce more off-spring. Nowadays successful individuals get more, but beget less.

      There are two definitions of "success" going on here. You're looking at success in social terms. That's not the measure of success that's relevant to evolution. In evolutionary terms the poor who are out-reproducing the rich are far more successful. There's nothing in natural selection about "attractive" or (socially) "successful", only "fitness". You might not like the way evolution is going, but it is still going on and is ignoring our value system (as it is bound to, being impersonal).

      --
      Quidnam Latine loqui modo coepi?
    42. Re:Triangles by digitig · · Score: 1

      But the Mona Lisa is still a static and designed goal, and so the process is closer to ID than Darwinian evolution.

      --
      Quidnam Latine loqui modo coepi?
    43. Re:Triangles by Hognoxious · · Score: 1

      Guided to me would imply a more hands-on approach - that he tweaks and steers it to get there.

      That's different to if you define the goodness-of-fit algorithm upfront and it evaluates by applying it at each stage.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    44. Re:Triangles by moose_hp · · Score: 1

      [...] perhaps humans are "evolving" and each time we do we're compared with the final form (only god knows what that is).

      I think that would give a new meaning to be "made into God's image".

      --
      DON'T PANIC.
    45. Re:Triangles by HungryHobo · · Score: 2, Insightful

      Why does it do that? You could say that its a "survival instinct" or that those that don't reproduce better are overwhelmed and annihilated by those that do, but why does that happen? Why must living things always be driven by the need to reproduce? We're on a ball of rock, heat, gas and liquid that revolves around a ball of fusion energy. Why must life propel itself into existing?

      this sounds like a variation on the anthropic principle. "isn't it amazing that almost all the living things around us happen to be like/decended-from the ones which happened to be driven to reproduce and as a result had the most kids... this must surely be proof that a god designed the universe"

      I think Zero Punctuation said it best. It's a little odd that people believe that we were created in the image of god despite the fact that when you put most humans in a similar position of absolute power over an artifical world with some kinds of simulated life in it they consider the beings within less as things to be loved and cared for and more as TARGETS.

      I love Alife simulations, I've even tried writing my own with little environments but in the end I always seem to get bored and start blasting them or infecting them with some kind of plague to liven things up a bit.I'd prefer a universe without any god resembling people like me.

    46. Re:Triangles by Blublu · · Score: 1

      Actually, that is a misunderstanding. We're still "evolving" and it's still because of "natural selection". Just because we invented birth control and medicine doesn't change that, it only changes who reproduces.

      --
      meh
    47. Re:Triangles by 3dr · · Score: 1

      One can think of the Mona Lisa in this application as the "environment," and "fitness" of a picture candidate is defined, as in nature itself, as the picture "best" suited to the environment. For digital pictures, "best" is then determined by minimal per-pixel RGB mismatches.

      The lifeform is the DNA/polygon sequence that is tested against its environment.

      So this is quite Darwinian in that the lifeform evolves to fit its environment. This application could, I think, be applied to any picture to approximate it.

    48. Re:Triangles by Iwanowitch · · Score: 1

      Genetic algorithms however have a very effective strategy against this: crossover. By keeping a large pool and combining entries from everywhere in the search space, it is hoped that one does not get stuck in local optima.

      It's in this thing, but not in the Mona Lisa example though. I wonder why it doesn't get stuck in a local optimum, really. On the other hand, it needed a million generations, which is kind of much really.

      --
      One CS student VS 893 DOS games: Let's play oldies
    49. Re:Triangles by Twinbee · · Score: 1

      Here's something it wouldn't be good for. Imagine a simple shaded backdrop (skyline say). It would have to create individual polygons for each shade.

      A better version maybe would be to place colour points at each corner, and have them fade into each inside the polygon.

      --
      Why OpalCalc is the best Windows calc
    50. Re:Triangles by kwerle · · Score: 1

      That's kind of a funny conclusion... I guess you've never read the bible, and seldom open the newspaper, then.

    51. Re:Triangles by Beezlebub33 · · Score: 1

      Sort of, but only in the sense that the evaluation function was intelligently created.

      In real evolution, the evaluation function is built into reality. If you want to consider that intelligently designed, then it's a metaphysical issue and you would not be alone. But, it doesn't look like the evaluation function (reproductive fitness) or generation process (reproduction) are directly intelligently designed.

      --
      The more people I meet, the better I like my dog.
    52. Re:Triangles by Nahor · · Score: 1

      Depending on how fast it runs, it could be an interesting form of image compression. 50 polygons is generally a lot less data than 914400 rectangles. For higher quality, you could add more polygons.

      That already exists and is called fractal compression but usually involves more complex fractals than simple rectangles.

    53. Re:Triangles by tristanreid · · Score: 1

      What you're describing is called "simulated annealing". My AI professor described it as "shaking up the whole system".

      If you think of the solution space as a 3D map, you can envision the local maxima as little mountain peaks. You run until you get an optimal solution (possibly a local optimum), then completely change all the parameters to something far away from the solution. If the hill-climber goes back to the same peak, it's still a candidate for the global optimal solution.

      -t.

    54. Re:Triangles by Tenek · · Score: 1

      Correct. If the creator is either manually choosing the mutations, or manually selecting the 'best' one for the next generation, then it's guided. Setting up the environment and hitting "go" does not constitute guidance.

    55. Re:Triangles by LordLucless · · Score: 1

      No, but it changes the pressures that direct it from our environment, to social pressures - something directly under our control. Instead of our environment dictating our evolution, now we (collectively, as a society) do.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    56. Re:Triangles by Fleeced · · Score: 1

      The human gene pool is not being filtered by adaptiveness to the environment anymore.

      On the contrary, we've just figured out more efficient ways to adapt. Medicine, birth control, technology - these are tools of our adaptation. I guess it's just semantics - but I disagree with those who think our level of intervention is a bad thing

      All these things are good, mind. It just means that we're not evolving due to natural selection. We're guiding our own progress. Which is good, cause the old way is slow as hell.

      Natural selection vs Artificial selection... In the case of intervening in our own lives, I'd still call that natural selection. Intervening in other species - eg, breeding cattle to be nice and tasty, or to have a high milk yield - that's a case of artificial selection on the part of cattle.

    57. Re:Triangles by Fleeced · · Score: 1

      To use your example, yes, fire could be considered a means of artificial selection. If a creature was insufficiently adapted to the cold, and it's fellow creatures had developed fire such that it could survive anyway, it's less than advantageous genes would have been preserved by it's society's action

      No, the genes which gave it the ability to acquire knowledge on how to create fire ARE the advantageous genes. I do agree with your point below about eugenics though...

    58. Re:Triangles by Anonymous Coward · · Score: 0

      After running it for a while, the cars appear to get killed without colliding with anything, so I'm assuming this is because there's some time or distance limit on each run. That's why the evolution appears to stop after ~10 generations.

      I'm sure there's some distance limit (as the terrain seems to be static, which means it's probably hand-drawn and finite), but I don't think the vehicles are coming close to it after just 10 generations - I'm basing this on the fact I got a particularly good primordial soup once, and those vehicles got further along the terrain than any other time I've run it, even on some instances when I've let it go for hundreds of generations.

      It seems more like to me that it stops the simulation as soon as each iteration either a) does better (navigates obstacles more quickly) than all previous iterations in it's generation; or b) does worse (goes slower, falls over, gets stuck).

      So basically, as soon as one car gets 1 pixel further, or gets there 1 nth of a second faster (or slower), it stops that sim and starts the next one.

    59. Re:Triangles by cowtamer · · Score: 1

      I was just about to say the same thing myself. You couldn't really run it fast enough for realtime compression (not with today's technology, at least), but a variant of this might be really good for downloadable content (long compression, fast download, fast decompression). I'm thinking downloading a 'video' version of this to a low-powered cell phone over a very low bandwidth connection....

      BTW, although the idea is similar, I don't think this is the same thing as fractal compression.

    60. Re:Triangles by aussie_a · · Score: 1

      this sounds like a variation on the anthropic principle. "isn't it amazing that almost all the living things around us happen to be like/decended-from the ones which happened to be driven to reproduce and as a result had the most kids... this must surely be proof that a god designed the universe"

      Some humans have risen above the need to perpetuate themselves. But they still do it. Some donate sperm in return for money. They're not doing it as a need to perpetuate their DNA into the next generation. They're doing it for some extra cash so they can have some creature comforts. That has nothing to do with perpetuating itself. Whales beach themselves, and while they might not do it on purpose, apes in captivity have been known to eat feces for the explicit purpose of choking themselves so they die. Humans kill ourselves in a multitude of ways. Some have the exact same DNA as someone else, and yet life circumstances lead to killing ourselves. So we can't even say that DNA does have a built-in mechanism that will cause itself to be reproduced at any cost. Because if it did then all humans, the most numerous of large mammals on this planet, would have children and life circumstances wouldn't be able to stop us.

      And yet, more and more people are putting off having children until they're older, with some deciding never to have children. Their DNA obviously failed to have that survival instinct, and yet how could such a mutation be cropping up so often in a species that should have been overwhelmed by DNA that continually seeks to perpetuate itself?

    61. Re:Triangles by Anonymous Coward · · Score: 0

      which either mutations or the random initial "genes" is designed to mitigate

    62. Re:Triangles by HungryHobo · · Score: 1

      So we can't even say that DNA does have a built-in mechanism that will cause itself to be reproduced at any cost. Because if it did then all humans, the most numerous of large mammals on this planet, would have children and life circumstances wouldn't be able to stop us.

      Perhaps if you look at it through the eyes of a 5 year old.
      mutation and variation happen.
      There is no requirement for everyone to act the same way.
      Organisms can vary their rate of reproduction to suit the environment. Plants can produce better fruit in bad years when the plant is at risk of dying in a sort of "last ditch" effort while producing less fruit in good years when there will be more competition for space.
      Animals can produce less young in crowded environments.

      Well as for the smaller number of kids later in life, there can be more benefit in raising 2 kids to be successful and stable when you have the resources than popping out 12 kids starting at age 12 and having them all end up on the bottom tiers of society.
      It could also be attributed to how people react to living in a crowded environment.

      As for people killing themselves, there is a price for having a system for dealing with complex reasoning, sometimes it gets broken and leads to actions which are clearly bad for your chances of reproducing.
      It's like asking "what's with all these people with bad genetic mutations" it's a side effect of something which give an advantage overall.

    63. Re:Triangles by mhelander · · Score: 1

      Thanks for a very good explanation.

      However,

      >Any search strategy has to account for local maxima and other dead ends, and in GA and other evolutionary algorithms, these means introducing the possibility that children are less optimal than their parent iterations.

      It isn't necessarily true that you need to allow less optimal children to survive. You can get out of local maxima by making large enough leaps (over the entire canyon, to the next climbing hill wall). So in the case of Mona Lisa, allowing the points in the polygon to move large enough distances per mutation would allow it not to get stuck in a local maximum.

    64. Re:Triangles by Threni · · Score: 1

      > Gay Marriage redefines your marriage as "no different than that of a gay couple". - Paraphrased from hitchkitty

      Can you reduce that to:

      Marriage redefines your marriage as "no different than that of a couple" ?

      Being married is the same as being a couple? It's certainly not in the UK as far as tax, inheritance etc is concerned. This piece of specious, homophobic nonsense didn't come from some religious fuckwit, by any chance?

    65. Re:Triangles by Espinas217 · · Score: 1

      What you miss is that there are two different set of genes. One acquire the knowledge to save another one. Then the one with the less favorable genes is preserved along with the one with the more favorable genes overriding the natural selection that would have happened. The species as a whole is being selected against another species (the ones that goes extinct).

      --
      La vida no es una pastafrola. :wq
    66. Re:Triangles by aussie_a · · Score: 1

      This piece of specious, homophobic nonsense didn't come from some religious fuckwit, by any chance?

      How is it homophobic?

      Everyone seems to take offense to this quote, but I don't understand why. She is saying that Gay Marriage means that we recognise Heterosexual Relationships aren't automatically better then the love felt between two gay people. Because gay couples are on an equal footing to heterosexual couples, which they currently aren't (they don't get all the benefits heterosexual married couples get).

    67. Re:Triangles by skeeto · · Score: 1

      Why must living things always be driven by the need to reproduce?

      Because only species that reproduce can even exist, otherwise they would be gone after one generation.

      It's really simple. If an individual is really good at reproducing it passes on its traits of being good at reproducing to many children. Animals that do very poorly at reproduction won't be passing on these traits, so they don't exist.

      It's not about some subconscious will to survive. Clouds don't stay in the sky because they will themselves there. These are just the mechanisms of the system in action.

      perhaps humans are "evolving" and each time we do we're compared with the final form

      Evolution is a process. There is no overall direction towards some final end state. In the big picture, there is no "more evolved" or "less evolved". It is a feedback mechanism that causes animals to change over many generations to become more suited to surviving in their changing environments.

      The comparison to the final image in TFA is just the fitness function. The real world fitness function is the measure of how many surviving babies you can make before you die. The Mona Lisa isn't a final state of evolution; it is a measure of survivability, like measuring the thickness of a fur coat in cold climates.

      The rest of your post is really just blabbering.

    68. Re:Triangles by mweather · · Score: 1

      Guided evolution never made sense to me. It implies evolution is flawed and eneds god's guidance to get the result god wants. But why wouldn't god just make evolution in such a way that the result he is looking for is the result he gets?

    69. Re:Triangles by Hognoxious · · Score: 1

      He's too busy trying to make a stonne that's so heavy he can't lift it.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  5. Not genetic programming by Anonymous Coward · · Score: 5, Informative

    One individual trying to improve itself isn't evolution, it's simulated annealing. Just because you call your parameters "DNA" it doesn't turn it into genetic programming.

    Genetic programming requires a population and a crossover operation.

    1. Re:Not genetic programming by usul294 · · Score: 4, Informative

      It doesn't necessarily require crossover, asexual reproduction that selects based on merit and uses mutation will have an evolving population, though generally not as fast as with crossover.

    2. Re:Not genetic programming by khallow · · Score: 4, Informative

      One individual trying to improve itself isn't evolution, it's simulated annealing. Just because you call your parameters "DNA" it doesn't turn it into genetic programming.

      But doesn't simulated annealing involve quenching? That is, there's a "temperature" of the system. High temperature means states are more likely to make big random jumps to far from optimal states. Low temperature means the jumps are shorter and more optimal is strongly prefered. Here's what I dimly recall. As the temperature declines, the more fit states become higher prefered. If you cool too rapidly (there is a mathematical view in which that statement makes sense), you risk getting stuck in a suboptimal extreme state. But cooling at a rate of time to the -0.5 power settles to a optimal state as long as the optimal state is isolated, I think. In comparison, the algorithm of the story appears to be constant temperature with respect to time.

      Another aspect of simulated annealing is that it doesn't take the best fit at each generation. By randomly mutating at each step and lowering the temperature slowly as above (and making more optimal states increasingly prefered), the problem naturally settles to an optimal state. In comparison, the algorithm mentioned in the story takes the best fit at each generation.

      It appears to me not to fit very well in the viewpoint of simulated annealing.

    3. Re:Not genetic programming by lysergic.acid · · Score: 3, Informative

      that depends on what you mean by "population." if by population you simply mean variation, then yes. that's required. but if by population you mean a set of concurrent genetic lineages and breeding individuals then, no, that isn't required. that may be required in biological evolution, but that's an incidental result.

      at its core, all evolution really is is directed randomness. biological evolution requires large populations only because sexual selection necessitates it. but non-biological evolution (like the evolution of ideas, designs, language, etc.) do not entail sexual selection.

      one good example of this, interestingly enough, is the design process used by an aeronautics engineer to design airfoils in a documentary i saw a while back. he basically described how he started with a rough wing shape and measured its flight characteristics (lift, drag, etc.) and then created a handful of random variations each with a slightly different shape/cambers and angle of attack. he'd then test each of the variations and pick the best one to repeat the process with. there's no crossover operation or horizontal gene transfer, but it still demonstrates the basic principles of evolution, such as evolutionary selection and cumulative/incremental changes.

    4. Re:Not genetic programming by glwtta · · Score: 1

      Yeah, it's not SA either. I think the problem is that he isn't actually doing any kind of optimization, or anything to avoid local minima (though he doesn't mention how the "DNA" is "mutated" so it's hard to say how much of a problem that is here).

      So this is basically what, stochastic hill climbing? Now I'm really curious to see how a real genetic algorithm would perform here.

      --
      sic transit gloria mundi
    5. Re:Not genetic programming by The+River · · Score: 1

      Just about every species that uses asexual reproduction also has sexual reproduction: in RL, asexual reproduction just has too many cons. Also, the post called this a genetic programming approach: by definition it clearly is not, with a "population" of only one individual.

    6. Re:Not genetic programming by Anonymous Coward · · Score: 0

      Exactly. Also the answer is already in the program. Real evolution does not know the answer already, but there are certain criteria (i.e. to survive) based on which the winners are selected.

    7. Re:Not genetic programming by locofungus · · Score: 1

      Just about every species that uses asexual reproduction also has sexual reproduction: in RL, asexual reproduction just has too many cons. Also, the post called this a genetic programming approach: by definition it clearly is not, with a "population" of only one individual.

      While I understand your argument, this could be considered a version of genetic programming.

      One parent produces many offspring. The parent stops reproducing and dies once it's produced an offspring fitter than itself. Offspring die without reproducing if they are less fit that their parent.

      Just consider his environment so hostile that there is only room for a single individual to survive long enough to reproduce (again) and at every step the parent and child compete for who will reproduce.

      Real evolution is never going to evolve a creature similar to this from scratch (IMO) because the early generations are too "unfit".

      However, it's conceivable that for already existing life, conditions might slowly become so hostile that effectively something similar does occur. There is obviously a significant risk of extinction if there really is only room for a single individual to survive.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    8. Re:Not genetic programming by khallow · · Score: 1

      Stochastic hill climbing sounds about right. Same here on a real genetic algorithm.

    9. Re:Not genetic programming by Dogtanian · · Score: 1

      One individual trying to improve itself isn't evolution, it's simulated annealing.

      Although this doesn't negate your entire post, I should point out that the Mona Lisa isn't the "lifeform" being evolved and nor is the program generating the polygons. Those are merely an abstract reproductive fitness test- the similarity to the Mona Lisa replacing effective use of food and sexual behaviour- and in a sense they represent the environment and the concept of evolution itself.

      The actual lifeform- if you can call it that- is the evolving data set of polygons being used to generate the image.

      --
      "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
    10. Re:Not genetic programming by Arthur+B. · · Score: 1

      asexual reproduction just has too many cons

      Such as ? Beware, it has to be a con for the genes.

      --
      \u262D = \u5350
    11. Re:Not genetic programming by Beezlebub33 · · Score: 1

      Not Bdellid rotifers. See http://en.wikipedia.org/wiki/Bdelloid

      Actually, it's fascinating that they have lost sexual reproduction and probably indicates something important, we just don't know what yet.

      --
      The more people I meet, the better I like my dog.
    12. Re:Not genetic programming by dookiesan · · Score: 1

      It was proved that for an admittedly infeasibly slow cooling schedule, simulated annealing will converge to the global optimum. Apparently (I didn't read the paper) it was also shown that this is true because at that cooling schedule, you have time to visit almost every possible state anyway!

    13. Re:Not genetic programming by khallow · · Score: 1

      The thing to remember though is that you don't stay in that state when you originally visit it. But you settle in it as you cool down. And with asymptotic methods like simulated annealing, you're working with infinite time anyway. The key thing to remember is that if you cool too aggressive, you can settle in something other than the global optimum even though you have infinite time to work with.

    14. Re:Not genetic programming by The+River · · Score: 1

      Protection from parasites, for example (i.e., the parasitic theory of sexual reproduction). And be careful about saying that it has to be a con "for the genes": while this is true, remember that it is generally in a "gene's" "benefit" (i.e., it's going to be passed on to children, rather than solely consume the organism) if the whole organism still functions well enough to have children. Of course, things can start to play rather odd here: look at sickle cell anaemia, which makes an organism pretty sick, but does have enough of an advantage in certain special circumstances to keep the genes for it present in the genetic pool.

    15. Re:Not genetic programming by Anonymous Coward · · Score: 0

      Makes me wonder if this was how the Wright Brothers managed to make such a highly efficient propeller.
      (Without the help of computer aided designs and the laws of modern aerodynamics to help.)

  6. Pretty Cool But Not Evolution in the Usual Sense by Anonymous Coward · · Score: 0

    Evolution does not use a comparison function.

  7. A million generations.. by crimzunblu · · Score: 2, Interesting

    Wont evolution speed up as the organism becomes more complex ? It took over a billion years for a single cell to evolve into a complex organism. But it took only 30000 years for us to jump from cave paintings to space travel. Do such leaps happen in such evolutionary algorithms ?

    1. Re:A million generations.. by aiht · · Score: 2, Insightful

      The leap from cave paintings to space travel is trivial compared to the leap from bacteria to mammal.
      We're so used to being multi-cellular that we take it for granted - but space travel is still a novelty.

    2. Re:A million generations.. by WGFCrafty · · Score: 1

      And in the space travel age a million generations of polygons seems even more trivial when you call it evolution.

      I wonder how much the accuracy would be increased if the number of generations was increased to five billion.

    3. Re:A million generations.. by Rakishi · · Score: 1

      Humans have pretty much short-circuited traditional evolution due to our very heavy reliance on learned information. It's sort of like suddenly switching your genetic algorithm from a Pentium 1 to a modern super computer. Regular evolution using DNA gets slower as an organism becomes more complex, for a variety of reasons. A bacteria can, for example, evolve immunity to antibiotics in weeks while it'd take humans centuries to evolve an even minor resistance to a disease.

    4. Re:A million generations.. by TapeCutter · · Score: 1

      Not disputing the evolutionary signifigance of technology but when you compare the complexity of the cell colony (complex organisim) to the complexity within the cells, the organanisim may be the simpler of the two levels.

      Do such leaps happen in such evolutionary algorithms ? - Yes, the 'leaps' concept is called punctuated equilibrium.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    5. Re:A million generations.. by Arker · · Score: 1

      Wont evolution speed up as the organism becomes more complex ? It took over a billion years for a single cell to evolve into a complex organism. But it took only 30000 years for us to jump from cave paintings to space travel. Do such leaps happen in such evolutionary algorithms ?

      You are confusing biological evolution with cultural development. While there are enough parallels that the latter is sometimes even referred to as "social evolution" or similar phrases, they are entirely different things. And yes, we can change our behaviour far more quickly through cultural development than through evolution - that's sort of the point to developing culture.

      Also, there is no hard and fast rule that more complex organisms evolve faster - the trend would be the other way around. Mutations in simpler organisms are more likely to be viable, hence evolution tends to work much faster in simpler organisms.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    6. Re:A million generations.. by Erik+Hensema · · Score: 1

      Space travel took no evolution at all. Humans didn't adapt to space travel in order to survive, nor did their intelligence increase enabling to 'invent' space travel.

      Basically you can take a baby from cavemen and raise it to be a modern human being.

      That's because there's been little evolutionary pressure on mankind to evolve into something slightly different in order to have a slightly better chance of survival/reproduction.

      Chances are the cavemen baby will die of disease we're now all imune to though. Also, it will likely be lactose intolerant. Lactose tolerance evolved when we were farmers, thousands of years after the cavemen.

      --

      This is your sig. There are thousands more, but this one is yours.

    7. Re:A million generations.. by ObsessiveMathsFreak · · Score: 1

      Do such leaps happen in such evolutionary algorithms ?

      All the time apparently. Typically in the evolutionary algorithms I have seen, the solution will march along making only slight improvements for a few generations then, "Boom!", makes a big order of magnitude or greater improvement in one or two generations, then settles down to incremental improvements again.

      This page has a good graph of the behavior I'm talking about, as well as some code snippets.

      --
      May the Maths Be with you!
    8. Re:A million generations.. by oliverthered · · Score: 1

      but learned information still follows evolution, well except for all those wackos out there.

      --
      thank God the internet isn't a human right.
    9. Re:A million generations.. by lisaparratt · · Score: 1

      It's not like lactose tolerance is all that common in humanity, just from the populations derived from Europe.

    10. Re:A million generations.. by SleptThroughClass · · Score: 1

      So you think someone had to evolve to create a rocket? Did someone have to evolve to create your toaster, while someone else evolved differently to create my different toaster? Learning is not evolution. CowboyNeal didn't have to evolve in order to /.

    11. Re:A million generations.. by Raffaello · · Score: 1

      If the hypothetical "caveman baby" does die of a disease we're all immune to now then there most certainly has been significant evolution of the human immune system and/or cell surface proteins, etc. since the time of the "caveman baby."

      Similarly if the "caveman baby" fails to marry and/or reproduce because s/he isn't well adapted to modern social systems and interactions then there certainly has been significant evolution of the human brain since "caveman baby" times, in particular evolution of social cognitive skills.

      Not all significant evolution involves visible change in gross external anatomy.

    12. Re:A million generations.. by HungryHobo · · Score: 1

      depends how deadly the disease and how much of the population catches it.
      spray some disease with a 90% kill rate over the whole earth so that everyone gets infected.
      25 years later do the same thing. (assuming there's no technological protections put in place to stop you from doing it more than once.)
      In a few generations the population will be pretty resistant.

      bacteria just reproduce every 20 minutes while we take 20 years per generation.

  8. Re:First by Clarious · · Score: 0, Offtopic

    Next time remember to tick "Post Anonymously"....

    Did I forget something?

  9. Brilliant! by evanbro · · Score: 3, Insightful

    Wait...let me see if I've got this right.

    1) Take a random group of polygons
    2) Randomly change those polygons until they're more like the Mona Lisa
    3) Repeat

    And people are surprised that the end result is something that looks more like the Mona Lisa than when he started?

    1. Re:Brilliant! by GravityStar · · Score: 2, Interesting

      No, we are not surprised. Some of us are just wondering about practical implementations.
      1) Image compression
      2) Games (video cards use polygons to render 3D scenes, right?)
      3) ...?

      The thing I'm also wondering is, is the output better or worse than a expert algorithm? Could the output of a expert algorithm be used as the input to get this genetic algorithm a head-start?

    2. Re:Brilliant! by thermian · · Score: 2, Insightful

      he was trying to evolve to fit a required pattern, this is fairly standard GA stuff.

      You always need a target.

      Also, its damn cool.

      --
      A learning experience is one of those things that say, 'You know that thing you just did? Don't do that.' - D. Adams
    3. Re:Brilliant! by K.+S.+Kyosuke · · Score: 1

      Have you ever built a gadget? (Whatever that might have been.) If so, you didn't feel that warm, fuzzy feeling when it started working? Because, you know, most people feel like that even in the case they knew that it *would* work.

      --
      Ezekiel 23:20
    4. Re:Brilliant! by Ian+Alexander · · Score: 1

      In no way are we surprised. I just think it's cool to watch the progression from a bunch of random polygons to a pretty decent approximation of the Mona Lisa.

    5. Re:Brilliant! by lena_10326 · · Score: 2, Insightful

      1) Image compression

      It's cool because of a few reasons.

      • it's overlapping polygons for maximal reuse of corners
      • it uses straight edged polygons as opposed to bezier edges, lines are computationally simpler to rasterize
      • it's yielding some mad compression
      • the GP is a dork
      --
      Camping on quad since 1996.
    6. Re:Brilliant! by srussia · · Score: 1

      Also, its damn cool.

      Oh yeah? Let's see how many iterations it needs to get an image of Kevin Bacon!

      --
      Set your phasers on "funky"!
    7. Re:Brilliant! by lena_10326 · · Score: 1

      Oh yeah? Let's see how many iterations it needs to get an image of Kevin Bacon!

      Ummm.. totally wild guess here... 6?

      --
      Camping on quad since 1996.
    8. Re:Brilliant! by Migala77 · · Score: 1

      Yeah, but if you try Chuck Norris, Chuck Norris will iterate you!

    9. Re:Brilliant! by Alnitak73 · · Score: 1

      What would be really interesting would be to see how many more generations it takes to get from the current polygon set into a picture of someone else !

    10. Re:Brilliant! by grimJester · · Score: 1

      It's cool because of a few reasons.

      * it's overlapping polygons for maximal reuse of corners
      * it uses straight edged polygons as opposed to bezier edges, lines are computationally simpler to rasterize
      * it's yielding some mad compression


      To get a natural looking picture with as little data as possible, shouldn't it skip the straight edged polygons though? I can see how rendering is simpler this way, making for some interesting possibilities with moving / shape changing polygons for ultra-compressed video. However, further evolving it to bezier patches or a gradient mesh would make for some really realistic images, right?

      Does anyone know of other projects doing vectorization with genetic algorithms?

    11. Re:Brilliant! by SanityInAnarchy · · Score: 1

      When I'm done building my gadget, it doesn't hit the front page of Slashdot. So I do see GP's point.

      But it did manage to generate a fair number of comments. It's held my interest, for one.

      And simplicity of algorithm doesn't make it any less cool. Take z=zz+c, for instance.

      --
      Don't thank God, thank a doctor!
    12. Re:Brilliant! by Alsee · · Score: 4, Interesting

      I have hobby expertise in this subject. I've studied the subject in general, I have studied the math behind it, and I have programmed several evolving systems.

      You always need a target.

      Nope. Evolution works great even when you don't have the faintest clue what a successful "target" might look like. In fact evolutionary methods are most valuable exactly when you lack a lack a target and when you are unable to "intelligently design" a solution yourself.

      The technical term for what you need is a 'fitness function'.

      However even that overstates what you need. While it is convenient if you have a function to numerically evaluate fitness, all you really need is a comparison ability - some means of comparing individual A and individual B and selecting which on is "better", for any definition of "better". It doesn't even have to be an absolute or accurate comparison - all you need is some means of selection that chooses the "better" individual more than 50% of the time.

      As for this article, it is a visually nice demo for introducing people to the subject, but in fact it uses one of the most limited and least powerful aspects of evolving processes. It is a simple asexual hillclimbing of a single individual.

      Sexual recombination in an evolving population is almost infinitely more powerful. There's some deep mathematics behind the power of sexual recombination, but it is so powerful that essentially all species above bacteria have seized on it. Asexual reproduction has many obvious advantages and simplicity, but virtually all species abandon it whenever possible because sexual recombination is where the real power lies in evolution.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    13. Re:Brilliant! by ObsessiveMathsFreak · · Score: 1

      No quite right. You need:

      2a) Randomly change those polygons for a number of copies
      2b) Choose the "fittest" group based on its likeness to the Mona Lisa.

      Natural selection of random mutation is what is going on here. Just Random mutation will simply get you a random result.

      --
      May the Maths Be with you!
    14. Re:Brilliant! by dzfoo · · Score: 1

      No, that will be mother Russia. Chuck Norris will kick your evolutionary ass.

                -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    15. Re:Brilliant! by Ambiguous+Puzuma · · Score: 1

      One possible application comes to mind: scaling an image to sizes larger than its original size.
      Obviously no additional detail can be recovered, and the technique wouldn't be suitable for realtime scaling, but I wonder how the results would compare with other algorithms...

    16. Re:Brilliant! by Hognoxious · · Score: 1

      I think you're confusing target (what it does) and target (how it does it).

      Natural evolution has a target of the first kind (staying alive long enough to reproduce), but not of the second.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    17. Re:Brilliant! by Anonymous Coward · · Score: 2, Funny

      • it uses straight edged polygons as opposed...

      ...as opposed to these beer drinking, promiscuous polygons.

    18. Re:Brilliant! by WilburCobb · · Score: 1

      Under your misunderstood point of view, you should be very surprised that this worked at all. 50 Random polygons would of course eventually approximate any picture, but the number of tries would be enormous. This is the usual creationist fallacy against evolution theory.

      Your algorithm's "description" is missing the selection: after a number **small** mutations, the best one is selected, and only then repeat. The resulting effectiveness is still somewhat surprinsing, but entirely understandable in mathematical terms.

      An analogous experiment is described in Richard Dawkins' book "The blind Watchmaker" with the phrase "Methinks it is like a weasel". Still, this "demonstration" of evolution theory must be criticized because it is teleological: there is a final, "perfect" model to be reached. Nonetheless, it explains why selection is a key aspect of evolution.

    19. Re:Brilliant! by Anonymous Coward · · Score: 0

      When I'm done building my gadget, it doesn't hit the front page of Slashdot.

      That says more about your gadget than about Slashdot.

    20. Re:Brilliant! by genner · · Score: 1

      No quite right. You need:

      2a) Randomly change those polygons for a number of copies 2b) Choose the "fittest" group based on its likeness to the Mona Lisa.

      Natural selection of random mutation is what is going on here. Just Random mutation will simply get you a random result.

      It's artifical selection. An intelligent being chose the target result. Nature had nothing to do with it.

    21. Re:Brilliant! by Anonymous Coward · · Score: 0

      Asexual reproduction has many obvious advantages and simplicity, but virtually all species abandon it whenever possible because sexual recombination is where the real power lies in evolution.

      -

      He forgot to mention: it's also more fun!

    22. Re:Brilliant! by Chapter80 · · Score: 2, Funny

      Sexual recombination in an evolving population is almost infinitely more powerful. There's some deep mathematics behind the power of sexual recombination, but it is so powerful that essentially all species above bacteria have seized on it.

      Shit, I always just say "want to go up to my room to see my etchings?" Good to hear what lines my competition is using!

    23. Re:Brilliant! by Anonymous Coward · · Score: 0

      Sexual recombination in an evolving population is almost infinitely more powerful. There's some deep mathematics behind the power of sexual recombination, but it is so powerful that essentially all species above bacteria have seized on it. Asexual reproduction has many obvious advantages and simplicity, but virtually all species abandon it whenever possible because sexual recombination is where the real power lies in evolution.

      Could you elaborate and/or point to an article/book?

    24. Re:Brilliant! by Dr.+Manhattan · · Score: 1

      You always need a target.

      Actually, no. There are a-life systems that don't have any explicit target or 'fitness function', and yet display increasing complexity and even ecologies. (I wrote a version myself just to play with it, and reproduced the results myself. Even a couple minor new ones.)

      It's a very unusual kind of GA, I'll grant. But it seems to be a GA nevertheless.

      --
      PHEM - party like it's 1997-2003!
    25. Re:Brilliant! by grep_rocks · · Score: 1

      I agree - this is just glorified curve fitting - not a demonstration of evolutonary algorithms - he is just lucky his fit (fitting his polygons to an image with a trivial cost function) didn't fall into a local minima, that is the only thing that suprised me.

    26. Re:Brilliant! by TerranFury · · Score: 1

      Indeed.

      First, a disclaimer, because I'm a nice guy: What this guy did is a neat sort of hack, and I approve. Many of us could have done this just as well, but this guy bothered and we didn't, so he deserves credit, and we should be happy for and with him. And it looks cool; that counts for a lot. So let us not rain on his parade. Sincere kudos are in order.

      That said, here's an algorithm I just made up that ten (metaphorical) bucks say will kick his GA's ass. It stems from the fact that he's blending the polygons, which is, if it's additive blending he's using, a linear operation (if not, you can probably perform a transformation on the color values to turn it into something linear; e.g., take a log if it's multiplicative blending.)

      Step 1: Generate a bajillion random images of polygons.

      Step 2: Perform Graham-Schmidt orthonormalization on said images, while keeping track of the coefficients. In other words, do QR factorization.

      Step 3: Project the Mona Lisa onto these vectors. I.e., premultiply it by Q^T.

      Step 4: Throw out all of components of the projected Mona Lisa that fall below some threshold.

      Step 5: Generate polygon-a-Lisa as a linear combination of images (from step 2) using the coefficients you computed in step 3 and kept in step 4.

      The end! Isn't linear algebra fun?! :-) And of course you can rearrange the steps and do some similar variations of this to make the whole process less memory intensive; you don't need to actually store all these random images; you can instead do the projection and thresholding as you generate random polygons.

    27. Re:Brilliant! by Chris+Burke · · Score: 1

      However even that overstates what you need. While it is convenient if you have a function to numerically evaluate fitness, all you really need is a comparison ability - some means of comparing individual A and individual B and selecting which on is "better", for any definition of "better". It doesn't even have to be an absolute or accurate comparison - all you need is some means of selection that chooses the "better" individual more than 50% of the time.

      Though on the other hand, defining a good fitness function is the hardest part of genetic programming, and bad fitness functions are the big source of failure. Especially in cases where you have no idea what a proper solution should look like, and you need a way to measure some degree of progress even when the algorithm is very far from the goal.

      Actually, one of the things I really like about genetic programming is that, much like real-life evolution, it doesn't give a rats ass what your pre-conceived notions of what the solution should be are. You give it a criterion for success, it satisfies it, sometimes with unexpected (both pleasant and unpleasant) results.

      One example I like involves some robotics engineers who were making a dragonfly robot, and instead of coding up logic to make it fly they decided to use GA. Being modest, they decided that simply rising a small distance above the table would be sufficient. Very quickly, the GA zeroed in on a solution whereby the robot simply folded it's wings down completely, lifting its body off the table enough to satisfy the criterion. Oops!

      Another one, an unexpected success, involved using GA to program an FPGA for some task. It eventually arrived at a solution to the proble that used fewer gates than the hand-designed solution, so they were pleased. When they looked closely at the design it created, they saw that it had made use of some gates that weren't attached to anything else in the design at all. Thinking they must just be 'cruft' in the genetic code, they removed those gates. The design stopped working. Via capacitance/inductance, those circuits were affecting the behavior of the rest of the design, resulting in analog behavior in an otherwise digital circuit! Sadly this means it wasn't very useful, since it was much more sensitive to changing heat/voltage/etc than a digital design, but still an awesome demonstration of unexpected solutions.

      Early in my own hobbyist fumblings, I used GA to create a neural network that could play tick-tack-toe. My fitness function was my hand-coded opponent, which played random but optimal moves. It trained quickly to always tie, so then I decided to take the winner and play against it myself. Just for grins, I played a sub-optimal move, and what do you know, the network went bonkers, trying to play illegal moves and whatnot. I learned my lesson about having too specific of test cases.

      As for this article, it is a visually nice demo for introducing people to the subject, but in fact it uses one of the most limited and least powerful aspects of evolving processes. It is a simple asexual hillclimbing of a single individual.

      That's very true, but since this is Slashdot, let's stick to what's most important: All the people saying that this isn't evolution or genetic programming are wrong. :)

      --

      The enemies of Democracy are
    28. Re:Brilliant! by TerranFury · · Score: 1

      That said, here's an algorithm I just made up that ten (metaphorical) bucks say will kick his GA's ass.

      Undue bravado: easier said than done! I whipped up some code to do roughly what I described in my previous post, and though it works -- and perhaps more quickly than Alsling's GA, which took a million generations -- the results are much, much less impressive: It doesn't look as good, and it uses more polygons (however, I use triangles). I think a lot of it has to do with the fact that, although I can achieve a reasonable square error with my method, it neglects the low frequencies, which is actually what the eye pays attention to.

      So: kudos, Roger Alsing.

    29. Re:Brilliant! by Anonymous Coward · · Score: 0

      > almost infinitely

      So, finitely?

    30. Re:Brilliant! by Alsee · · Score: 1

      >sexual recombination is where the real power lies in evolution.
      Could you elaborate

      The real and advanced answer is a bit of mathematics called the Schemata Theorem. It demonstrates there is an effect called Implicit Parallelism that supplies a free power multiplier going on in sexual evolution, and that the multiplier effect is essentially exponential in the size of the genome. I'm not going to try to explain this math here, but I will explain some simple aspects demonstrating how sexual recombination makes evolution more powerful.

      Imagine you have some mammal species with a population of say a million, and we follow them for a number of generations. Lets say conservatively ten million mutations happen in this population. Lets say 90% are neutral - nine million neutral mutations and one million non-neutral mutations. Lets conservatively say 99.999% of those are harmful an 0.001% are beneficial. That gives us 9,999,990 harmful mutations and 10 beneficial mutations. One beneficial mutation gives a five point IQ boost, another gives resistance to the flu, another gives the ability to self-produce some essential vitamin, another gives the ability to digest some new foodstuff, another gives the ability to see in color instead of black and white, another gives better resistance to various toxins like snake venom, another gives better long distance running stamina, another reduces the risk of cancer, another slightly modifies the hands for better manual dexterity with tools and whatnot, and lets say the tenth beneficial mutation gives a different five point IQ boost that can add with the previous IQ boost listed.

      Now... the chance of any two of these mutations happening at the exact same moment in one particular individual out of the million population is virtually nill. So we are generally talking about ten different individuals in the population with these ten swell advantages. With asexual reproduction you have no way to combine them. What happens is that these ten individuals each have one advantage and they multiply and out-compete and eventually displace all of the "normal" individuals of their species. So umpteen generations you still have a population of a million, a hundred thousand with each of these ten benefits. And then these ten groups are competing with each other. Some of these groups will get competed to extinction and their beneficial mutation will cease to exist, or perhaps they will wind up diverging to a different species. Either way, no individual gets to inherit more than one beneficial mutation. The only way for one of these individuals to get two of these mutations would be by the insanely rare chance of randomly re-evolving one of the other beneficial traits. In order to get all ten beneficial traits you would have to keep reinventing the wheel over and over and over, over countless generations, trying to sequentially rediscover each mutation in a single line of descent.

      In sexual reproduction what will happen is that each of the ten mutations will provide and advantage and they will all spread throughout the population pretty quickly. One parent with a 5 IQ point boost will mate with someone with the other 5 IQ point boost and they will have four children. Basic genetics says that one child will inherit neither benefit, a second child will inherit the first IQ boost mutation, the third child will inherit the other IQ benefit, and the fourth child will inherit BOTH and get a 10 IQ point benefit. The first "dumb" child is most likely to die or fail to find a mating partner, and the super-smart child with both benefits is the most likely to succeed and have lots of kids passing on the double intelligence combination. In fact that super smart kid may choose the weird/interesting person with color vision as their partner, and immediately have smart color-vision children.

      There's another huge problem with asexuality - if you inherit some ad mutation, there's no way to get rid of it except for all your descendants to die off. Lets say you g

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    31. Re:Brilliant! by lena_10326 · · Score: 1

      Yes. I think altering the algo to use bezier curves would make it more realistic, but the computations could be a bit more time consuming on the compression and rendering side because rather than 2 variables at a time (2 points to a line) it's got 4 variables (for quadratic bezier curve).

      --
      Camping on quad since 1996.
    32. Re:Brilliant! by Anonymous Coward · · Score: 0

      I don't normally waste bandwidth to just say "thanks!' but in this case I will make an exception. That was an awesome explanation and one of these learning experiences for me that will enhance the way I look at the universe. Here a question: if 2 genders are good why wouldn't more be better? If more is better, then why haven't there been alot of species that evolved 3 or more genders? I suppose it's because the benefits are outweighed by how complex it would make reproduction(?)

    33. Re:Brilliant! by The+Raven · · Score: 1

      Even bacteria evolve in ways that are not simply mutation. Genetic material swapping between bacteria is a close analog of sexual reproduction. In fact, it may be better than sexual reproduction at transferring positive genes across a population... it just doesn't work well once you're multi-cellular. Us communal organisms have to make do with sexual reproduction as a substitute.

      --
      "I will trust Google to 'do no evil' until the founders no longer run it." Hello Alphabet.
    34. Re:Brilliant! by Alsee · · Score: 1

      if 2 genders are good why wouldn't more be better?

      The benefit of sex is you get to shuffle and recombine the genetic information. You don't really gain anything new by having 3 or more genders. It doesn't much alter the rate of shuffling nor the value of the shuffling. There's little-to-nothing to justify the added complexities and costs of additional genders.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    35. Re:Brilliant! by Alsee · · Score: 1

      Yeah, bacteria have a couple of neat tricks, but they fall far short of the power of sexual recombination. In just one thousand years bacteria can run through about as many generations as mammals have ever had since they first appeared. The per-generation asexual rate of evolution is virtually zero, compared to the rate of sexual evolution.

      And on top of that, bacteria population sizes are something like a trillion times larger. The per-individual asexual rate of evolution is virtually zero, compared to the rate of sexual evolution.

      On a per-individual per-generation basis, the rate of asexual evolution is pretty much zero squared. Chuckle. Even with the best tricks bacteria have, sexual evolution is many many orders of magnitude more powerful as an information processing and information creation engine.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  10. Not genetic, still a good demonstration by usul294 · · Score: 4, Interesting

    As someone who has written a few genetic algorithms for optimization in systems I've engineered, this really shows off the inherent power. Yeah, its not going to get a perfect answer, but sometimes its quicker and easier to get genetically optimized than to do the optimization by hand. After reading Selfish Gene and doing GA's, it really gave be an appreciation for the beauty of evolution and its mechanism.
    Its not genetic programming because theres only phenotype being evaluated each generation(the image). If the algorithm had 10 individual sets that traded polygons somehow, with a tendency for the pictures closer to the Mona Lisa to get reproduction preference, then it would be genetic.

    1. Re:Not genetic, still a good demonstration by khallow · · Score: 3, Interesting

      Yea, I was wondering why it took a million generations. But since he's just mutating, it makes sense. It'll be interesting to see what sort of speed up he gets from proper genetic programming.

    2. Re:Not genetic, still a good demonstration by zippthorne · · Score: 1

      I prefer the one where the researcher evolved a speech recognizer out of FPGAs, and the result took advantage of the nonlinearities inherent in the line of FPGAs he used.

      --
      Can you be Even More Awesome?!
    3. Re:Not genetic, still a good demonstration by martin-boundary · · Score: 1

      It's often quicker to do straight gradient descent. Just calculate the derivative and do some Euler steps. GA is overkill, unless you're looking for an excuse to waste some time.

    4. Re:Not genetic, still a good demonstration by idigitallDotCom · · Score: 1

      From my experience of genetic algorithms, this "inherent power" _can_ also be it's downfall. imho, it's just too random and when I used it to solve our local version of the timetable problem this randomness factor pi$$ed me off! I think GA's are only useful if it's user has NO FLIPPIN' CLUE how to get to the solution: (1) generate some random cr@p. (2) ??? (3) look for the 2 best (4) randomly swap parts of the 2 best. (5) repeat. (6) HOPE it doesn't fall into any one of the gazillion local minima (7) profit?? maybe!

      --
      blog.idigitall.com
    5. Re:Not genetic, still a good demonstration by retchdog · · Score: 1

      Yeah, but you have to spend all that time learning (shudder) calculus... and for what? So you can solve the problem efficiently and in a way which explicitly makes use of structure in the problem statement, instead of ZOMG TEH MAGIC GENETIC BLINDWATCHMAKER DARWIN C0DE?!

      Like seriously, why would anyone learn all that hard math just so they can make their project sound less 'leet? I mean which of these sounds more badass: "genetic programming" or "regularized energy minimization"?

      --
      "They were pure niggers." – Noam Chomsky
    6. Re:Not genetic, still a good demonstration by lkeagle · · Score: 2, Insightful

      The power of GA's, and of most AI research that has ever led to anything useful, is simply to search through spaces that are too large for brute force or heuristic algorithms to cover exhaustively. GA's work very well for optimizing problems with large numbers of dimensions, but in the end, it's just a hill climbing algorithm, albeit a really cool one. In this regard, you're right. We usually only use GA's when we have no clue how to optimize a complicated multi-variable problem using standard algorithms.

      By mimicking biological evolution, it adds the ability to effectively climb several 'hills' simultaneously, as well as explore new 'hills'. This increases the probability that one of these hills has the highest 'peak'. Without that randomness, the population would never leave the hills they are on, and would almost certainly miss an optimal solution if it existed on another hill.

      If your system failed to converge, I would hesitate to blame the GA. It's more likely that your parameters for how much randomness (mutation, crossover) you used in the system was far too large in proportion to your population size.

    7. Re:Not genetic, still a good demonstration by Bob-taro · · Score: 1

      By mimicking biological evolution, it adds the ability to effectively climb several 'hills' simultaneously, as well as explore new 'hills'. This increases the probability that one of these hills has the highest 'peak'. Without that randomness, the population would never leave the hills they are on, and would almost certainly miss an optimal solution if it existed on another hill.

      I never studied GA, so I may be off here, but I'm not sure that's accurate. The algorithm described for this Mona Lisa project sounds like it would be just as likely to find a local min (or max in hill climbing terms) as a gradient descent algorithm (it would just take longer to get there!). In both cases, I think the likelihood of hitting a local min would depend more on the amount you change your parameters with each iteration.

      A previous post sounds more to the point ... it's easier to see how different two images are than to figure out what "direction" to move each vertex to optimally improve the match at each iteration.

      --
      Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
    8. Re:Not genetic, still a good demonstration by lkeagle · · Score: 1

      All GA's are driven by some calculation of 'fitness'. The method of fitness in this case is simply "How different am I from my target image". In other cases, it can be something like "How far did I travel" or "How long did I live in a simulated environment. No GA "figures out what direction" to move algorithmically, and I don't believe I ever suggested that.

      In any case, I'm talking about GA's in general, not the Mona Lisa project. The Mona Lisa project is not using randomness to imitate a biological process. Without a population, and at least the reproductive crossover function, it's barely more than a random-walk hill climbing algorithm. You need a population in order to maximize the the coverage of the state space of your problem. I haven't looked at the code yet, but I would guess that he found some way of representing his individual in a binary string and stopped there. It would probably be trivial to add in the methods that would make this a real GA, which would likely converge much, much faster than a single individual.

      Most successful GA's use very little mutation, if at all, just like biological evolution. The purpose of mutation is to prevent an entire population from converging on a local optima.

    9. Re:Not genetic, still a good demonstration by Bob-taro · · Score: 1

      No GA "figures out what direction" to move algorithmically, and I don't believe I ever suggested that.

      I was trying to describe gradient descent. Basically, I was saying that finding the gradient in this case sounds pretty difficult, so this alleged "GA" algorithm sounded much easier to implement. I apologize for my poor description.

      The Mona Lisa project is not using randomness to imitate a biological process. Without a population, and at least the reproductive crossover function, it's barely more than a random-walk hill climbing algorithm.

      Thanks for the explanation. Hmmm, that makes me want to try this project with the process you describe. I'm guessing it would converge a lot faster (fewer generations anyway). I can see now what you meant by "climbing more than one hill at a time". With the algorithm described in the article, that didn't make sense, but with a population greater than 1 it does.

      --
      Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
    10. Re:Not genetic, still a good demonstration by lkeagle · · Score: 1

      Enjoy! GA's can be a lot of fun, and they do have a lot of practical applications. In my own experience, I find that I spend as much time tweaking the GA parameters (population sizes, mutation rates, etc.) as I do running the algorithm! I once joked with an AI professor that I needed to write a GA to determine the optimal parameters for my GA...

      For a really cool demonstration of how cool GA's can be, check out Breve (http://www.spiderland.org/). It's a 3D simulation framework, but one of the demos is using a GA to teach a 4-legged 'robot' how to walk. In this case, the fitness function is how much distance the object can move in a set time period. Of course, I had to let it run all night to get something that did more than writhe around on its back!

    11. Re:Not genetic, still a good demonstration by Anonymous Coward · · Score: 0

      I agree, this is not genetic, nor is it simulated annealing (this was mentioned in passing earlier).

      As seems to be the consensus, this is hillclimbing, an iterative improvement process, and is therefore highly susceptible to being trapped on a local maxima - it will never accept a poorer solution as (part of) the current state.

      A true GA would maintain a population, cull some of the weaker candidates (Perhaps with some probability distribution, so weak candidates may still survive and breed for a time) and produce offspring by randomly combining polygons from parents, along with throwing in the odd mutation. To continue the hill anology, the offspring would pop up in different places on the terrain and occasionally find new maxima. The mutations still provide hillclimbing ability.

      Still an excellent demo though!

  11. Re:Pretty Cool But Not Evolution in the Usual Sens by Roland+Piquepaille · · Score: 5, Funny

    Evolution with a comparison function is called intelligent design. Here for example is the code snipped that created man (from the good book):
    ...
    while(strcmp(image(man),image(god)))
    {
        free(man);
        man=(man_t*)malloc(sizeof(man_t));
    }
    bless(man); ...

  12. Survival of the Fittest by Anonymous Coward · · Score: 0

    As everyone else keeps saying, this isn't evolution. Evolution has no "end point" or supreme goal. We're not constantly getting better, per se.

    It does seem fair to call this "survival of the fittest" though.

    1. Re:Survival of the Fittest by mweather · · Score: 1

      The supreme goal of evolution is an organism that successfully reproduces more than the previous generation.

    2. Re:Survival of the Fittest by bmgoau · · Score: 2, Insightful

      Then life would have stopped with bacteria.

    3. Re:Survival of the Fittest by PhilHibbs · · Score: 1

      And yet it's impossible for that to continue for ever. Evolution can be "satisfied" with a balanced population.

    4. Re:Survival of the Fittest by PhilHibbs · · Score: 2, Insightful

      It did. We're just a very complex bacteria colony.

    5. Re:Survival of the Fittest by mweather · · Score: 1

      Balance can only come if no mutation results in a more successful organism in a given environment. There are a few cases of this, most notably sharks and crocodilians. Other than some basic variations, not much has changed for millions of years.

  13. If you like this story... by greg_barton · · Score: 4, Informative

    ...you'll love Picbreeder: picbreeder.org

  14. A similar project by dmomo · · Score: 4, Interesting

    I did something very similar. Instead of random polygons, I used random circles. I would choose the best and then clone it... adding a random circle to each.

    http://www.eigenfaces.com/

    An interesting thing, I found, was to take a handful of low-quality creations and "average" them out. You end up with more detail.

    1. Re:A similar project by dmomo · · Score: 4, Interesting

      Oh... I forgot to mention. I also tried it against some video. It seems that by adding motion, you percieve even more detail. This is about 20 frames with a resolution of about 1000 generations each.

      http://www.eigenfaces.com/img/morphs/anim-100x20.gif

      This was all done with Python / Pygame. A great little package for those who are keen to dabble

    2. Re:A similar project by Ceriel+Nosforit · · Score: 1

      Nice! The circles look sorta like bokeh, which feels natural to the eye.

      I wonder how a neural approach would fare using the same basic rendering emthod...

      --
      All rites reversed 2010
    3. Re:A similar project by DrEasy · · Score: 1

      This is very cool! You probably get even better compression than by using polygons. Care to share the code?

      --
      "In our tactical decisions, we are operating contrary to our strategic interest."
    4. Re:A similar project by yogikoudou · · Score: 1

      May I ask, what image comparison algorithm did you use in your fitness function? Was it something like |pix1 - pix0| for all the pixels? That sounds like a lot of comparisons at each step (159,300). I guess you could pick n points (in a grid or at random) and compare these, while incrementing the value of n as time goes...

      Also, how long did it take to run 2.5M generations?

      Thanks.

    5. Re:A similar project by petaflop · · Score: 1

      Just to check I understand your method:

      The final image in your demonstration (i.e. after 2.5 million generations) is the sum of 2.5 million circles?

    6. Re:A similar project by soniCron88 · · Score: 2, Interesting

      Seems like a fun project, but...

      Since the circles are getting iteratively smaller, doesn't this ultimately amount to just guessing the value of the pixels?

      Where the polygon Mona Lisa could be compressed to an extremely small number of points, yours is layer upon layer of color data, right?

      Wouldn't a more equivalent approach be to weigh the value of the circles on their apparent size; bigger being more valuable?

    7. Re:A similar project by dmomo · · Score: 1

      I'm happy to share the code. I'll see if I cannot clean it up and add some comments first.

    8. Re:A similar project by Tablizer · · Score: 1

      Clip from pr0n?

    9. Re:A similar project by DrEasy · · Score: 1

      Very cool! Care to share the code please?

      --
      "In our tactical decisions, we are operating contrary to our strategic interest."
    10. Re:A similar project by dmomo · · Score: 2, Interesting

      Yes indeed. It turns out the more detailed things get, the smaller the circles get. Obviously. I set the software so that the minimum circle radius is larger than a pixel. Because of the alpha blending, color is not determined by just the circle, but also the overlap of other circles.

      The first experiment I did was to actually randomize all pixels... and mutate a different pixel in each child. Not as nice as the circles. BTW, the code can just as well draw polygons. I made one with triangles. When it comes down to it... I simply like the way the circles look!

      One thing the Mona Lisa example does that I will probably now try is the ability to make arbitrary polygons. Right now, mine are all "regular" polygons: square, triangle, pentagon, hex, octagon, etc.

      I was never really concerned with compression so much as the idea, to be honest. Like yours did, my gut tells me the Mona Lisa would indeed compress better. But where one unit is "n points (x,y for each), color, alpha" on the Mona Lisa example, mine is just: x,y,radius,color, alpha.

    11. Re:A similar project by dmomo · · Score: 1

      Indeed.. I compare the distance of the colors in the color cube.

      You have the right idea about the comparison. To save on computation, I do this:

      Choose a random subsection of the canvas to mutate. Say, the first quadrant. Clone that section... and start trying different circles. Compare that section to the same clipped area of the original.

      2.5 million generations began on a Wed. and finished monday. I'm actually up to about 6 million. It's getting marginally better, but very slowly.

    12. Re:A similar project by dmomo · · Score: 1

      Ahh, each generation doesn't necessarily yield a circle, though. At first almost all of them do. But as it moves on.. it gets harder to find a better fit.. one that "improves" the image. After millions of generations, getting an improvement becomes rare. Unfortunately, I never bothered counting the circles that actually get plotted, so I can not say how many circles make up the image.

      Also, I tried different "number of children" per generation. The bigger that number, the more likely I am to find an improvement, but the longer it takes. There's got to be a "sweet spot" for that number. I am thinking for quality over time, it's about 40. Maybe with more memory it'd be different. Also, there is no threaded. A multi-core machine would be able to do a lot of this comparison in parallel.

    13. Re:A similar project by dmomo · · Score: 1

      I hope to get it posted to eigenfaces soon. I'll come back to this thread and notify you when I do.

  15. convex polygons? please by OrangeTide · · Score: 2, Informative

    I think it's cheating to use convex polygons, why not use complex polygons then you could probably do it with 5 polygons?

    --
    “Common sense is not so common.” — Voltaire
    1. Re:convex polygons? please by glwtta · · Score: 1

      They don't seem to be convex to me...

      --
      sic transit gloria mundi
    2. Re:convex polygons? please by F�an�ro · · Score: 1

      convex polygons at least have some mathematical properties that make them easier to handle.
      For example you can more easily determine wether a given point is inside the polygon or not.

    3. Re:convex polygons? please by OrangeTide · · Score: 1

      You're right. I was thinking concave polygons, which is what they do use.

      I think it would be more fair to use a convex polygon. But you could reduce the number of polys if you used complex/reentrant polygons.

      --
      “Common sense is not so common.” — Voltaire
    4. Re:convex polygons? please by Anonymous Coward · · Score: 0

      and they didn't use convex polygons, you'll see lots of concave polygons being generated in the screen shots.

  16. Really fun by brilanon · · Score: 1, Interesting

    Genetic algo's are a great thing to do at home. I've been tinkering with Avida for the last few days, trying to get these programs to grow instead of shrink. Maybe they will gain some kind of structures then.

    http://devolab.cse.msu.edu/

    See also

    http://www.framsticks.com/
    http://www.stellaralchemy.com/lee/virtual_creatures.html
    http://www.spiderland.org/

    Any of which are fun if you get them going. The joy in these things is sort of in tuning them. But I think a lot lately about GA's on GA's to adjust the parameters within certain windows. A lot of these models aren't open-ended enough to demonstrate intelligence. But you never know. Check out Polyworld, Achilles, and Critterding, too, if you're in Linux

  17. Hmm, I could name that tune in 1 polygon... by Anonymous Coward · · Score: 0

    Albeit, textured...

  18. blech by Yaur · · Score: 1

    there is no way that code is gonna pass review.

    1. Re:blech by dzfoo · · Score: 1

      That's why it was released into the wild without SQA testing.

              -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
  19. "Alsing Image Compression" by Kenyai · · Score: 1

    Well, maybe. Who knows? I wonder what would happen if you allowed for catenaries... I mean, look at the top of her head.

  20. This is not a "genetic algorithm" by haggais · · Score: 5, Informative

    Sorry, but this is hill climbing, pure and simple. The (very cool) result was achieved by introducing random changes ("mutations", if you like) into a "state" or "temporary solution" (the set of polygons), and keeping the new state only if it increases a target function (the similarity to a target image).

    The name "genetic algorithm" is actually used for a more complex situation, more reminiscent of our own genetics: the algorithm maintains a pool of states or temporary solutions, selects two (or more) of them with probability proportional to their target-function score, and then randomly recombines them, possibly with "mutations", to generate a new state for the pool. A low-scoring state is probably removed, to keep the pool at constant size.

    Quite possibly, a genetic algorithm would do an even better job here, as it could quickly find, for example, two states which each approximates a different half of the image.

    1. Re:This is not a "genetic algorithm" by Andy+Kitchen · · Score: 1

      A low-scoring state is probably removed, to keep the pool at constant size.

      That means they got eaten by the whumpus

    2. Re:This is not a "genetic algorithm" by Anonymous Coward · · Score: 0

      Typical. The moment we want to remove some low-scoring state in the real world, everybody cries "monster" :|

    3. Re:This is not a "genetic algorithm" by Anonymous Coward · · Score: 0

      No, it isn't. He's using a (1+1) evolution strategy. A hill-climber is deterministic.

    4. Re:This is not a "genetic algorithm" by haggais · · Score: 1

      Not really. I refer the honourable AC to the already-cited wikipedic reference. "Steepest ascent" is one form of hill-climbing, but just picking some higher-value neighbour is another.

    5. Re:This is not a "genetic algorithm" by eples · · Score: 1

      I disagree. If the polygons were a static set then, yes, it could be considered hill-climbing. If you look at the images you can see that the 50 polygons are not static and do change (random starting set and some kind of mutation as indicated in the text).

      Just because there is a single well-defined optima doesn't make it hill-climbing.

      --
      I'm a 2000 man.
    6. Re:This is not a "genetic algorithm" by Dr.+Mu · · Score: 1

      I agree. I'm not sure it's even hill climbing in a follow-the-gradient sense, since a gradient is never computed. It's more of an optimized random walk. The overall performance would surely improve if a true, Holland-inspired GA involving both mutation and crossover on a large population were employed.

      Another concern is the size of the polygons. If they are allowed to increase in complexity (i.e. by adding vertices), it's uncertain what the program really demonstrates. It'd be like starting with an amoeba and producing a chimpanzie by adding codons to its genome one-by-one and rewarding matches to the known chimpanzie DNA sequence. I'd have been more impressed if the "genotype" had been constrained to 250 triangles, say, and not allowed to increase in complexity along the way.

      One feature of this demonstration does stand out as inspired, however: the use of semitransparency in the polygons. A couple of the intermediate renditions have a Cubist flavor to them in the style of Picasso or Gris. This I find to be more intriguing than the final result!

    7. Re:This is not a "genetic algorithm" by Hatta · · Score: 1

      The (very cool) result was achieved by introducing random changes ("mutations", if you like) into a "state" or "temporary solution" (the set of polygons), and keeping the new state only if it increases a target function (the similarity to a target image).

      So it's like an asexual bacterium that mutates each generation and survives only if it's more fit than the previous generation. Sounds like an algorithm that simulates genetics, or in other words, a genetic algorithm.

      The name "genetic algorithm" is actually used for a more complex situation, more reminiscent of our own genetics

      They should have used a more specific name for that.

      --
      Give me Classic Slashdot or give me death!
    8. Re:This is not a "genetic algorithm" by haggais · · Score: 1

      Let's go back to the 1950s, then, and change the accepted nomenclature CS people have been using ever since then, shall we? Because this sounds ever so slightly like something else someone may have wanted to call a "genetic algorithm". Tell you what, let's go the whole hog, and decide that every iterative algorithm with a complex state is called "genetic". And let's also call them "simulated annealing", while we're at it.

    9. Re:This is not a "genetic algorithm" by Anonymous Coward · · Score: 0

      Crossover is useful, but not essential, for a genetic algorithm. Essentially, this guy's approach was equivalent to asexual reproduction (like bacteria) rather than sexual reproduction (like us).

  21. Misspelling? by OpenSourced · · Score: 1

    "Both beautiful to look at adn a striking way"

    Pnu intended?

    --
    Rome taught me patience and assiduous application to detail. Virtues which temper the boldness of great, general views.
    1. Re:Misspelling? by martin-boundary · · Score: 1

      That's GNU/Pnu for those of us on Debian :)

    2. Re:Misspelling? by p0tat03 · · Score: 1

      The word was crossed from another population :)

  22. Re:Pretty Cool But Not Evolution in the Usual Sens by aussie_a · · Score: 1

    Citation needed.

  23. image compression by polar+red · · Score: 3, Interesting

    Could this be used as a new way to compress pictures? I would guess the compression itself would be computationally expensive, but the compression would be amazing.

    --
    Yes, I'm left. You have a problem with that?
    1. Re:image compression by LordLucless · · Score: 1

      I doubt it'd be lossless though.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    2. Re:image compression by F�an�ro · · Score: 1

      I thought so too.

      It should even be possible to use postscript as the storage format for this compressed picture

    3. Re:image compression by petaflop · · Score: 1

      It might be possible to make a lossless compression algorithm from it though by using the polygons to make an approximate image, and then calculating deltas between the polygon image and the original image.

      Then you use lossless compression on the delta image. Maybe it will compress smaller than the original minus the polygon info.

      Hmm... That would work with any lossy algorithm wouldn't it? So from the fast that people don't already do this, I guess it doesn't work. Oh well.

    4. Re:image compression by Anonymous Coward · · Score: 1, Funny

      well in that case you need to check this out:

      http://farm4.static.flickr.com/3162/3063863618_bedb6183d8_o.jpg

    5. Re:image compression by Crookdotter · · Score: 1

      That didnt stop JPEG

    6. Re:image compression by Anonymous Coward · · Score: 0

      Could this be used as a new way to compress pictures?

      I think you meant vectorize.

    7. Re:image compression by martin-boundary · · Score: 1

      No. Well, technically you could, but it'd be daft. If you want to go down that route, you should use wavelets, since they have better properties than polygons.

    8. Re:image compression by petaflop · · Score: 1

      I disagree.

      The best audio compression algorithms require on modelling the way we perceive sound - and produce better results (as evaluated by users) than simple wavelet compression.

      In the same way I suspect that the best image compression algorithms (for the purposes of viewing) will model how we see images, rather than just relying on any particular mathematical algorithm. I think this approach has significant promise as an image compression algorithm because we probably do see things in terms of regions of colour.

      Lets do a crude calculation: the image presented involves 50 polygons. Assume 9 points/poly, 2x2byte coords per point, plus 4 bytes for rgb/alpha = 40 bytes per polygon. That's 2K for the whole image, even without any clever compression of the resulting bitstream.

      If I take the same image and turn it into a jpeg (which is not a wavelet method, but has some similarities to one) in gimp at 20% quality then is about 2.3K, so the approach is already competitive.

      But the interesting thing is what will happen if we make the image larger. I suspect the polygon method is going to scale rather better than the jpeg approach.

    9. Re:image compression by maxume · · Score: 1

      Jpeg works, mostly, by discarding the least important information in the image (this is pretty obvious, my intent is to put that thought in that order; it seems like the intentional discarding part of lossy compression gets pushed to the back of the line too often).

      --
      Nerd rage is the funniest rage.
    10. Re:image compression by jvkjvk · · Score: 1

      I disagree with your disagreement. :p

      A wavelet is just - a small piece of waveform that has a particular shape. Adding up a bunch of these with different sizes and you approximate your original.

      There is nothing to say that the wavelet transform cannot be of a form that is modeled on how we perceive sound. That is, the small waveform itself could be shaped such that the form captures most of what we perceive. This possibly gives a much higher perceived resolution.

      Of course, finding the right wavelet would be key (*and still SERIOUSLY hard work, I would imagine), but if done "simple wavelet compression" would be all you need. Of course, there is nothing to say that wavelets can't be combined with perceptive sound models in some other fashion as well (such as more wavelets where you need them).

    11. Re:image compression by martin-boundary · · Score: 1
      Wavelets are a catch-all term for localized basis functions, they do not necessarily look like little waves. They could easily look like the polygons in TFA, except that the shape of a collection of wavelets gives it better orthogonality properties, which helps make superpositions (like in TFA) fit together.

      An analogy might be if the polygons looked like puzzle pieces that can fit naturally together. With wavelets, the pieces snap together properly, so you don't get a bulge where the pieces are a bit crooked.

    12. Re:image compression by hypoxide · · Score: 1

      A vector/polygon-based file format with a respective interpreter could store this image in a significantly smaller file than a jpg or gif if it were only composed of, in this case, 50 tuples, i.e.:
      poly1(color, transparency, x1y1, x2y2, ..., xnyn)
      poly2(color, transparency, x1y1, x2y2, ..., xnyn)
      ...

      So, yes. You'd need an interpreter or rendering program for the file type, but the data set would be much smaller in size than that of a .gif or .jpg. Though, to reach the quality of the original, at some point I'm sure you'd be better off with a standard format. This also might be a fun encryption method.

      --
      Anything can, could, and will happen.
  24. Meta-evolution? by TapeCutter · · Score: 1

    Ignore the ML evolving part, it's a population of polygons, the picture created by the polygons might not be evolving BUT...

    The resulting picture could be compared to an ants nest where all the individual ants/polygons in a poulation work together to create something more than a pile of ants/polygons. Each of the million pictures in the program is analogous to an individual nest built by exactly one generation of polygons (a nest usually has one queen and dies when she does).

    The overall structure and behaviour of the nests that ants build definitely changes over a long period of time in order to compete with other nests built and stocked with different ants. The populations of polygons competed with each other to fit their target environment. The question is: Is a single ants nest (the final Mona Lisa) analogous to an individual in an evolving population? If the answer is no, then why is it accepted that human culture evolves?

    "it's simulated annealing"

    As far as I can tell the Universe is some sort of (in)finite state machine, how anyone labels the progression and configuration of those states is kinda arbritrary but understandable with enough practice. I agree the concept of evolution may has a strict definition in biology but the concept of evolution also directly applies, or is useful in explaining, a wide range of systems that seem to be more than just the sum of their parts.

    Dare I suggest that the concept of evolution has evolved since Darwin's time?

    /IANAB

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  25. Re:First by Anonymous Coward · · Score: 2, Funny

    Yeah, you forgot to tick "Post Anonymously"...

  26. Re:Pretty Cool But Not Evolution in the Usual Sens by ultranova · · Score: 1

    Shouldn't you be filling man with data at some point ? I mean, with this design, there's no guarantee that it won't simply allocate/free the same memory block at each iteration, making no changes to the contents, leading to an infinite loop.

    --

    Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  27. It makes a lot of sense to me by Anonymous Coward · · Score: 3, Informative

    Each generation is a population of 20. A given generation is a combination of a weighted breeding of the previous generation based on success plus some random mutation.

    I ran it 3 times for a substantial amount of time. It always started from a population where most or all of the cars failed. It always evolved to one where most(all?) succeeded, in that they ran for the full ~10s without toppling and crashing. It was extremely effective, though it required a bit of patience.

    One singular exceptional population member doesn't ensure that all of the next generation will be exception, we're not talking about cloning. You would expect it to be possible to have an aberration like that, but not necessarily common.

    If I'm interpreting the plot correctly, the x axis is iteration and the y is the success metric. I'm assuming the lower line is the population average while the higher is the best of that generation. You can see both of them grow. On a population where you have one exceptional success, you see the one line spike high above the other.

  28. Re:Pretty Cool But Not Evolution in the Usual Sens by Anonymous Coward · · Score: 0

    At some point, it just gets a ^C and is declared "good enough"?

    Explains quite a bit, I think...

  29. Asexual by Bob+Gelumph · · Score: 1

    It sounds like it is purely asexual reproduction with a single element per generation. There is no crossover operator and no fitness other than whether the product is closer to the known goal.

    --
    I'm gonna need a spec.
  30. "Computer Paints Mona Lisa" by PinkyDead · · Score: 1

    You can be sure that this "amazing" discovery will be touted in the newspapers as "using the breakthrough technique of Genetic Algorithms that uses human DNA to make computer think" (or some similar BS).

    And when this guy actually does put together a proper GA, it will be ignored - because on the outside it's the same thing. Even though it will actually be interesting.

    --
    Genesis 1:32 And God typed :wq!
  31. Re:First by PincusJr · · Score: 1, Funny

    But I'm not a coward ;)

  32. Re:Pretty Cool But Not Evolution in the Usual Sens by slim · · Score: 1

    Evolution with a comparison function is called intelligent design.

    That depends on the comparison function.

    Pseudocode for the comparison function in natural evolution:

    return (reproduces before dying)

  33. Facemaker is much better by Anonymous Coward · · Score: 0

    http://facemaker.redshiftmedia.com/

  34. Evolution, huh? by Circlotron · · Score: 1

    Get real. Roger Alsing doesn't even exist. The algorithm wrote itself. Sheesh.

  35. Your incredibly flawed reasoning proves your point by Zero__Kelvin · · Score: 1

    I haven't seen a more sound argument that evolution can go horribly wrong in a long time :-)

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  36. Re:Pretty Cool But Not Evolution in the Usual Sens by elFarto+the+2nd · · Score: 1

    Sure it does. Evolution evaluates an organisms fitness in what turns out to be a binary function, "can you live long enough to reproduce?". This is equivalent, if somewhat abstracted to "if (fitness > minimumFitness)".

    Regards
    elFarto

  37. Re:Pretty Cool But Not Evolution in the Usual Sens by FourthAge · · Score: 1

    Ah, but do you not see? The only explanation must be that God's malloc is buggy. It must be picking up different data each time, otherwise there would be no point in the comparison. The function searches the memory until eventually it comes up with something that matches God's image, i.e. "vmunix".

    We can deduce from this that God's computer not only has a buggy C library but also poor memory protection between kernel and user space. Things have certainly improved in the past 6000 years!

    --
    The tao of democracy: the government you can vote for is not the real government.
  38. Re:Pretty Cool But Not Evolution in the Usual Sens by Hognoxious · · Score: 1

    It's not really binary, it's how many times you reproduce before you die.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  39. Re:Pretty Cool But Not Evolution in the Usual Sens by Anonymous Coward · · Score: 0

    What's the value of man before the first iteration of the loop?

  40. There is no code by pythonhacker · · Score: 1

    Boy: Do not try and search for the code, instead realize the truth.
    Geek: What truth ?
    Boy: There is no code.
    Geek: There is no code !!! ?
    Boy: Then you'll see, itt is not the code that produces Monalisa, it is only your mind.

    --
    If you don't succeed at first, try again. If you still don't succeed, try harder. If nothing works, try reality shows.
  41. Re:Pretty Cool But Not Evolution in the Usual Sens by syousef · · Score: 1


    while(strcmp(image(man),image(god)))
    {
            free(man);
            man=(man_t*)malloc(sizeof(man_t));
    }
    bless(man);

    bless: fatal error 42 - man is null.

    What you don't think God would check his return codes?

    --
    These posts express my own personal views, not those of my employer
  42. Re:Pretty Cool But Not Evolution in the Usual Sens by ultranova · · Score: 1

    Ah, but do you not see? The only explanation must be that God's malloc is buggy. It must be picking up different data each time, otherwise there would be no point in the comparison.

    As malloc is not required to clear the memory it returns, it not doing so does not make it buggy. If it was calloc, then yes, it would be buggy; but for malloc, the only requirement is that the returned memory chunk has the size given to malloc.

    And no, there is no point in the comparison. The code is buggy, as it relies on undocumented (and unlikely) assumptions about how malloc works.

    We can deduce from this that God's computer not only has a buggy C library but also poor memory protection between kernel and user space. Things have certainly improved in the past 6000 years!

    But we're still using C, and enjoying all the "clever" hacks l33t c0d3rs come up with to avoid writing a few lines of code :(.

    --

    Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  43. Re:Pretty Cool But Not Evolution in the Usual Sens by Anonymous Coward · · Score: 0

    chimp

  44. Feeding the troll... by bondsbw · · Score: 5, Insightful

    Had this consumer sheep instead opted to use a superior, Open Source operating system, then he could have posted the source code to Sourceforge or something similar, and had the community as a whole inspect the source.

    What's stopping him from doing this using Windows?

    This would have led to an algorithm that would have required less generations, and used less polygons.

    Really? I never knew Windows caused bad algorithms.

    I'm as anti-big corporation and anti-Microsoft as anyone I know, but I'm getting a little tired of these posts that have no thought added. .NET is about as close to open as anything that Microsoft has developed. Just because Microsoft didn't make Mono doesn't mean that they are against it... they just have no business reason to create something that the open source community can do.

    .NET/Mono are excellent runtimes, and C# is a very good and powerful language. Multiple languages compile to the same bytecode so that practically anyone can jump in and start. And it gives a great alternative to Java.

    --
    All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    1. Re:Feeding the troll... by Anonymous Coward · · Score: 0

      Novell? is that you?

    2. Re:Feeding the troll... by JasterBobaMereel · · Score: 1

      C# is a better language (and unless Microsoft manage to ruin it ...)

      Java has it's problems (mostly do do with the runtime engine) but it has the advantage of being platform neutral to start with ... .NET is tied to windows and has to be untied to make Mono ...this is why Mono is taking so long to catch up ...

      The biggest problem is that Microsoft could shut down Mono anytime they wanted to and might just do it since it would be unlikely to affect any commercial software developers ....

      --
      Puteulanus fenestra mortis
    3. Re:Feeding the troll... by darkpixel2k · · Score: 4, Funny

      And it gives a great alternative to Java.

      I have a great alternative to being burned alive. It's being beaten to death with a baseball bat.

      --
      There's no place like ::1 (I've completed my transition to IPv6)
    4. Re:Feeding the troll... by tixxit · · Score: 1

      C# is a better language

      That's pretty subjective. Some people prefer their favourite statically typed language to be a little more conservative in added features (language, not runtime libraries).

    5. Re:Feeding the troll... by Anonymous Coward · · Score: 1, Funny

      OK, I need to know something here. Software has evolved into a messy tangle of thousands of languages with cryptic syntax and incomprehensibly complex features. You all seem to instantly master them and can argue over the tiniest semantic issues. Yet most of you software types are completely baffled and stymied by the elementary ITS/IT IS problem. Why can't you learn that IT'S is not a possessive pronoun? It doesn't need an apostrophe because it's ALREADY possessive!!!

    6. Re:Feeding the troll... by tristanreid · · Score: 2, Interesting

      WORD!

      I know there's no good karma to be had here (both figuratively and literally) by going after someone else's grammar, or by replying to a post rated zero. But I'm going to throw my lot in with the parent. The proliferation of misuses of "its" and "it's" is accelerating. I saw a post on WSJ the other day that corrected the writer of the article on this matter, only the correction was incorrect!

      -t.

    7. Re:Feeding the troll... by spiffmastercow · · Score: 1

      C# is a better language

      That's pretty subjective. Some people prefer their favourite statically typed language to be a little more conservative in added features (language, not runtime libraries).

      Some people don't like the fact that, though the standard library developers are allowed to use certain language principles, the average programmer is not. I've hated Java since day one when I learned that, though the String class had an overloaded operator, *I* could not overload an operator. Not that its very often that I would want to, but just the fact that I'm not to be trusted with that much power as a programmer pisses me off. It would be a different matter entirely if the lang

    8. Re:Feeding the troll... by Anonymous Coward · · Score: 0

      Some people prefer their favourite statically typed language to be a little more conservative in added features

      Yes, the ideal point would probably be somewhere in the middle: not as limited as Java, not as complicated as C#.

      For example, Java's lack of anything comparable to delegates or lambda expressions is a problem (no, anonymous inner classes are not comparable); but C# doesn't really get all that much from syntactic sugar fluff like LINQ.

  45. Definitive proof by Comboman · · Score: 3, Funny

    Finally we have definitive proof that the Mona Lisa evolved from simple polygons instead of being "intelligently designed" by that fictional Leonardo guy.

    --
    Support Right To Repair Legislation.
  46. Re:First by Anonymous Coward · · Score: 1, Insightful

    No, you're just a 13 year old tit. Go back to digg.

  47. Re:Pretty Cool But Not Evolution in the Usual Sens by SpinyNorman · · Score: 1

    Evolution is about competition, and ultimately about the long term not the short term. so...

    1) It's not about meeting any fixed threshold of fitness (although obviously you leave to leave a least one descendent to still be in the game), but rather about how your fitness compares to the rest of the population. If you're fitter than average then the percentage of your DNA will be increasing in the communal genepool, else it will be decreasing.

    2) Evolution is optimizing long term success rather than short term success. It doesn't matter how many descendents you directly leave if they all die out in a few generations, but alternatively you may only leave a few descendents that then become incredibly successful in the future. Note Homo Sapiens "Genetic Eve" for example, or similar evolutionary bottlenecks... the reproductive success of all females predating her, but not on her bloodline, was ultimately for nought (you could say they were climbing a local fitness peak, while Genetic Eve was ascending a higher one that ended up assuring her survival).

  48. Re:Pretty Cool But Not Evolution in the Usual Sens by TheRaven64 · · Score: 1

    Doesn't God create man in his own image with execve()?

    --
    I am TheRaven on Soylent News
  49. Good book on genetic algorithms by Michi2 · · Score: 1

    This is really cool. Does somebody know a good (introductory) book on genetic algorithms?

    1. Re:Good book on genetic algorithms by Yahma · · Score: 1

      This is really cool. Does somebody know a good (introductory) book on genetic algorithms?

      You can try Introduction to Genetic Algorithms by Melanie Mitchell. It is a much easier read than Goldberg's original Genetic Algorithms book, and contains information that most CS Majors could easily understand.

  50. It's alive! Aliveeee!! by SleptThroughClass · · Score: 1

    So now rocks and paintings are alive? Where's my wing-flapping flying car?

  51. Re:Pretty Cool But Not Evolution in the Usual Sens by Anonymous Coward · · Score: 0

    "Evolution is about competition"
    No, competition is usually involved, but evolution isn't about competition.

    "Evolution is optimizing . . . success"
    See, that's different than your opening statement.

    ". . . the reproductive success of all females predating her ["Genetic Eve"], but not on her bloodline . . "
    There you show a lack of understanding about the mitochondrial inheritance (hint: it's failure doesn't preclude the chromosal DNA from being successful) and the statistical nature of cladistic "evidence" speculating on generations past.

  52. It's Intelligent Design now by mangu · · Score: 1

    Humans have pretty much short-circuited traditional evolution due to our very heavy reliance on learned information.

    And that's why it took much longer to evolve from Australopitecus to Homo Sapiens than it took to get from stone age to space age. Human technology evolves by intelligent design, not just by exchanging random genes.

    When two organisms reproduce, their chromosomes get mixed at random, there's no selection for the best genes from each. When two technology products are merged, the best parts from each are selected.

  53. There is nothing evolutionary about this... by tjwhaynes · · Score: 1, Redundant

    This isn't an example of evolution in action; this is closer to a simulated annealing because there is a set goal - make a set of transparent polygons look like the target image. Mutate-and-iterate is not enough to make this evolutionary.

    Evolution does not have a stringent end-goal - there is no finish line, and no qualification of perfection. Evolutionary algorithms must merely out-compete their peers and survive for the next round.

    That doesn't make the article bad - the idea is interesting and the results are impressive. However, whoever titled this Evolution is clearly confused.

    Cheers,
    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
    1. Re:There is nothing evolutionary about this... by yakmans_dad · · Score: 1

      Actually, it is completely evolutionary. Random Selection is simply an explanation for the biological evolution we see on Earth. There's no reason why a designer couldn't use sequences of random mutations that are consciously and deliberately culled.

  54. Re:Pretty Cool But Not Evolution in the Usual Sens by Quiet_Desperation · · Score: 1

    sizeof(man_t)

    I hear that value gets exaggerated a lot, though, and others have declared it as irrelevant.

  55. Am I the Only One... by interploy · · Score: 1

    who thinks the Mona Lisa is a crappy painting? I've never understood why it's regarded as one of the best ever made. The girl is not attractive and nothing about the image seems revolutionary compared to other works of the time. What is supposed to make it the best ever?

  56. Evolving a Neural Network by Yahma · · Score: 1

    For my master's thesis, I wrote up a GA that evolved Neural Networks that controlled embodied agents in a virtual reality.

    Though the scope of GA's and Evolutionary Algorithm's is somewhat limited, within their domain they can be quite powerful, as attested to the video's linked above and the OP. Developing a fluid/lifelike control system for virtual creatures or a system that approximates images without the benefit of Evolutionary Algorithms would likely require much more code.

  57. This is NOT impressive by stoicio · · Score: 1

    O.K., this is bogus.
    If the images he is creating are 200x200 then it would take
    a similar number of iterations just to methodically move polygons
    and perform correlation calculation between source and destination
    images. Genetic algo or not, it's not an accomplishment unless
    he's trying to prove that genetic algorithms are a pile of crap.

    People get so excited over pretty pictures that their brains turn off
    completely.

  58. So what do you think? by sgt+scrub · · Score: 2, Funny

    ftfa: So what do you think?

    She still wouldn't date someone on /.

    --
    Having to work for a living is the root of all evil.
  59. Prolly others. by Anonymous Coward · · Score: 0

    Oh, there's a lot of words that are completely fucked-up. What about the use of "prolly" instead of "probably?" That's one I could do without, ironic use in the title notwithstanding.

    I thought the interntubes were supposed to make people more literate?

  60. Re:Pretty Cool But Not Evolution in the Usual Sens by FourthAge · · Score: 1

    As malloc is not required to clear the memory it returns, it not doing so does not make it buggy. If it was calloc, then yes, it would be buggy; but for malloc, the only requirement is that the returned memory chunk has the size given to malloc.

    This is true; what I mean by "buggy" is that malloc isn't returning the area of memory that was recently freed, but rather progressing through the available memory space, hence obtaining different data each time. I'm implying that free isn't working, or maybe...

    Hang on a minute, this whole thread is based on a very silly premise. It's time to stop talking :).

    --
    The tao of democracy: the government you can vote for is not the real government.
  61. Re:Pretty Cool But Not Evolution in the Usual Sens by Anonymous Coward · · Score: 0

    I would have to agree. This project assumes that genetic evolution knows what it wants to be ahead of time. And that would support the idea that we were all somehow designed.

    But it serves as a good illustration for how random organization COULD organize, so if we imagine that a person with 3 legs was not as symmetric as a person with 2 legs, and therefore not similar enough to an ideal prey (that could escape a predator), then this could serve as an analogy. I.e. the tiger, having already evolved the ability to eat anyone who doesn't look like mona lisa, results in only an image that looks like mona lisa being safe.

  62. Re:Pretty Cool But Not Evolution in the Usual Sens by Anonymous Coward · · Score: 0

    You idiot, everyone knows that God used Perl.

  63. even bacteria swap genes by JoeBuck · · Score: 1

    Even bacteria don't just rely on mutation. They exchange genes, both with closely related and more distantly related bacteria.

  64. xscreensaver by JThundley · · Score: 1

    When can we expect the xscreensaver graphics hack to draw our images?

  65. Evolution Cannot Make Predictions by Louis+Savain · · Score: 1

    Sute it does

    I think the point the OP was making is that evolution is blind and thus cannot predict or determine the desired future state of a population. Therefore, it cannot use a comparison function to decide whether or not current results are approaching a desired future state. This is what the Mona Lisa program is doing and this is the reason it is not evolution in the Darwinian sense.

    1. Re:Evolution Cannot Make Predictions by Anonymous Coward · · Score: 0

      Evolution tends to solve the optimization problem "survive to reproduce." Whether or not there is a limit case is a bit of a technical question, and is completely irrelevant to the discussion.

      Also, this is definitely not "Darwinian" evolution-by-natural-selection, it's evolution by computer selection. Otherwise, it's optimizing a function (albeit a much simpler one) just like what happens in nature.

  66. Cubism in action by Mal-2 · · Score: 1

    Some of the earlier generations start to resemble the finished product if you squint hard. For styles that deliberately distort and obfuscate, some of these might be more desirable than the finished product. This might be a way to take a photograph and turn it into cubist art "automagically".

    Mal-2

    --
    How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
  67. Re:Pretty Cool But Not Evolution in the Usual Sens by SpinyNorman · · Score: 1

    No, competition is usually involved, but evolution isn't about competition.

    Wrong. It's competition (more fit wins) that introduces the population bias towards greater fitness. Without competition you've just got a single random walk who's direction is unrelated to fitness.

  68. Maybe it was done backwards by Anonymous Coward · · Score: 0

    This could be a hoax. Take the mona lisa image and slowly fuck it up backwards and then show the images in the reverse order.

    Are slashdotters so guilible?