Re: [fonc] Evolutionary Debugging :.
Martin McClure martin.mccl...@gemtalksystems.com writes: On 01/16/2014 10:58 AM, John Carlson wrote: What I was thinking was evolving space travel. If it is a physics engine, could it evolve warp drive? Rockets? It'd be fun to see rockets evolve. Should be possible; we understand the physics involved. Warp drive -- well, if we simulate a universe in which this works, it should be able to evolve. Or teleportation, etc... Even with a bug-free, sophisticated-enough Physics simulation, completely open-ended evolution is incredibly inefficient. This issue comes up in AI circles, where the question is 'we know that intelligence can evolve, since ours did, so why not evolve our programs the same way?'. The problem is that we took billions of years to emerge from a planet-wide search algorithm; and even so, we're still just a random anomaly (evolution isn't 'trying' to make intelligence). Simulating this would take so many resources that you'd be better off simulating a virtual human brain atom by atom, with enough resources to spare that you could increase its neuron count and processing speed by many orders of magnitude. A similar argument would apply here; if you want advanced technology, the most efficient way to get it is to spend your resources thinking about the problem. If you have enough computing capacity to simulate its evolution, you'd be better off using it to simulate an army of super-scientists. Evolution can be a good approach to very targeted problems with a few degrees of freedom, but it's terrible at anything else. It's only managed to solve the problems of life via the law of large numbers. Regards, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
John Carlson yottz...@gmail.com writes: I'm not sure why evolving explosions is a bug. You just want to make sure you survive afterwards. It's a great evolutionary strategy. There's no need to survive either; the situation is basically you will be killed in a few seconds, but the quicker you move in that time, the greater the chance that I'll clone you. Exploding doesn't affect their reproduction. The bug(s) is in the physics engine. It looks like it's naively approximating Newtonian mechanics by integrating with a finite, constant dt (rather than infinitesimal dt). This causes large errors in the position of the creatures legs if they're moved fast enough, allowing them to self-intersect. The collision-handling code is then moving these intersecting body parts apart, which is effectively applying a huge force to them. These forces are unbalanced, breaking Newton's third law, so there is a net force on the creatures, which lets them levitate. If the collision-handler pushes apart one intersection but causes another, the forces will build up. This rebounding allows the collision-handler's hack to dominate the simulation and cause the creatures to explode. Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
What I was thinking was evolving space travel. If it is a physics engine, could it evolve warp drive? Rockets? On Jan 16, 2014 4:27 AM, Chris Warburton chriswa...@googlemail.com wrote: John Carlson yottz...@gmail.com writes: I'm not sure why evolving explosions is a bug. You just want to make sure you survive afterwards. It's a great evolutionary strategy. There's no need to survive either; the situation is basically you will be killed in a few seconds, but the quicker you move in that time, the greater the chance that I'll clone you. Exploding doesn't affect their reproduction. The bug(s) is in the physics engine. It looks like it's naively approximating Newtonian mechanics by integrating with a finite, constant dt (rather than infinitesimal dt). This causes large errors in the position of the creatures legs if they're moved fast enough, allowing them to self-intersect. The collision-handling code is then moving these intersecting body parts apart, which is effectively applying a huge force to them. These forces are unbalanced, breaking Newton's third law, so there is a net force on the creatures, which lets them levitate. If the collision-handler pushes apart one intersection but causes another, the forces will build up. This rebounding allows the collision-handler's hack to dominate the simulation and cause the creatures to explode. Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
On 01/16/2014 10:58 AM, John Carlson wrote: What I was thinking was evolving space travel. If it is a physics engine, could it evolve warp drive? Rockets? It'd be fun to see rockets evolve. Should be possible; we understand the physics involved. Warp drive -- well, if we simulate a universe in which this works, it should be able to evolve. Or teleportation, etc... There was a science fiction story I read years ago which involved plants which had evolved teleportation. This proved so advantageous in spreading their seeds to optimum locations, or having one part of the plant located where it got sun and another part of the same plant located at a good source of water , and so on, that most of the plant life on this fictional planet ended up with some kind of ability to teleport. (If anyone recognizes this story, and knows the title and author, let me know -- I've long forgotten both) Regards, -Martin ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
Hello, I stumbled upon this yesterday. It seems relevant to this thread. *Flexible Muscle-Based Locomotion for Bipedal Creatures* [video] http://vimeo.com/79098420 [paper] http://www.cs.ubc.ca/~van/papers/2013-TOG-MuscleBasedBipeds/2013-TOG-MuscleBasedBipeds.pdf On Fri, Jan 10, 2014 at 12:41 AM, Robert Feldt robert.fe...@gmail.comwrote: Thanks a lot for that link, Chris! In 1998 I used Genetic Programming to evolve controllers for an embedded system (aircraft arrestment) and was using a simulator of the system for the evolutionary searches. I also found several bugs in the simulator which had already been in heavy use by engineers for several years. Unfortunately I did not analyze these bugs in any detail in the paper and don't remember all the details any longer: http://www.robertfeldt.net/publications/feldt_1998_diverse_sw_with_gp.html I have been getting back to search-based software testing recently and during 2014 we will release automated testing tools (an extension of our GödelTest approach: http://www.robertfeldt.net/publications/feldt_2013_godeltest.html ) that use different search approaches (some evolutionary, other deterministic) to search for test data and test case for more standard software. Cheers, Robert On Fri, Jan 10, 2014 at 12:51 AM, Chris Warburton chriswa...@googlemail.com wrote: It wasn't one of Sims', it's here http://www.youtube.com/watch?v=STkfUZtR-Vs According to the voiceover there's not as much variation allowed as I remember. Still amusing though :) On Thu, Jan 9, 2014 at 3:38 PM, Robert Feldt robert.fe...@gmail.comwrote: I don't think I remember the exploding myself strategy from Karl Sims videos: http://www.youtube.com/watch?v=JBgG_VSP7f8 Do you remember where you saw that, Chris? Cheers, Robert Feldt On Thu, Jan 9, 2014 at 4:29 PM, Chris Warburton chriswa...@googlemail.com wrote: Pavel Bažant pbaz...@gmail.com writes: I am developing an evolutionary simulation called Evoversum. An interesting thing I noticed on multiple occasions while developing the program was the fact that it tends to debug itself. The simulated organisms, as a consequence of the Darwinian evolution taking place, are very quick to trigger all sorts of bugs, sometimes to their advantage, sometimes triggering undefined behavior, destroying their own world. So it seems likely that this effect is applicable in other software domains, too. Reminds me of a video I saw on YouTube (can't find it at the moment) where a genetic algorithm evolved creatures (collections of sticks, joints and motors) in a physics simulation. The goal was to move the furthest distance, in the hope that they'd walk/crawl/etc. In fact, one of them triggers a bug in the simulation which causes it to explode, sending its body parts flying in all directions. This immediately dominates the population, so all the creatures start exploding. I suppose the morals are: 1) Evolutionary methods are good at finding bugs 2) Your fitness function is not selecting for what you think it is ;) Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Best regards, /Robert Feldt -- Tech. Dr. (PhD), Professor of Software Engineering Blekinge Institute of Technology, Software Engineering Research Lab, and Chalmers, Software Engineering Dept Explanea.com - Igniting your Software innovation robert.feldt (a) bth.seorrobert.feldt (a) chalmers.seor robert.feldt (a) gmail.com Mobile phone: +46 (0) 733 580 580 http://www.robertfeldt.net http://www.cse.chalmers.se/~feldt ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Best regards, /Robert Feldt -- Tech. Dr. (PhD), Professor of Software Engineering Blekinge Institute of Technology, Software Engineering Research Lab, and Chalmers, Software Engineering Dept Explanea.com - Igniting your Software innovation robert.feldt (a) bth.seorrobert.feldt (a) chalmers.seor robert.feldt (a) gmail.com Mobile phone: +46 (0) 733 580 580 http://www.robertfeldt.net http://www.cse.chalmers.se/~feldt ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Chris Bratlien I write code (so you don't have to) http://chrisbratlien.com | 1-979-229-5685 | skype: chrisbratlien ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
I'm not sure why evolving explosions is a bug. You just want to make sure you survive afterwards. On Jan 9, 2014 9:29 AM, Chris Warburton chriswa...@googlemail.com wrote: Pavel Bažant pbaz...@gmail.com writes: I am developing an evolutionary simulation called Evoversum. An interesting thing I noticed on multiple occasions while developing the program was the fact that it tends to debug itself. The simulated organisms, as a consequence of the Darwinian evolution taking place, are very quick to trigger all sorts of bugs, sometimes to their advantage, sometimes triggering undefined behavior, destroying their own world. So it seems likely that this effect is applicable in other software domains, too. Reminds me of a video I saw on YouTube (can't find it at the moment) where a genetic algorithm evolved creatures (collections of sticks, joints and motors) in a physics simulation. The goal was to move the furthest distance, in the hope that they'd walk/crawl/etc. In fact, one of them triggers a bug in the simulation which causes it to explode, sending its body parts flying in all directions. This immediately dominates the population, so all the creatures start exploding. I suppose the morals are: 1) Evolutionary methods are good at finding bugs 2) Your fitness function is not selecting for what you think it is ;) Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
I don't think I remember the exploding myself strategy from Karl Sims videos: http://www.youtube.com/watch?v=JBgG_VSP7f8 Do you remember where you saw that, Chris? Cheers, Robert Feldt On Thu, Jan 9, 2014 at 4:29 PM, Chris Warburton chriswa...@googlemail.comwrote: Pavel Bažant pbaz...@gmail.com writes: I am developing an evolutionary simulation called Evoversum. An interesting thing I noticed on multiple occasions while developing the program was the fact that it tends to debug itself. The simulated organisms, as a consequence of the Darwinian evolution taking place, are very quick to trigger all sorts of bugs, sometimes to their advantage, sometimes triggering undefined behavior, destroying their own world. So it seems likely that this effect is applicable in other software domains, too. Reminds me of a video I saw on YouTube (can't find it at the moment) where a genetic algorithm evolved creatures (collections of sticks, joints and motors) in a physics simulation. The goal was to move the furthest distance, in the hope that they'd walk/crawl/etc. In fact, one of them triggers a bug in the simulation which causes it to explode, sending its body parts flying in all directions. This immediately dominates the population, so all the creatures start exploding. I suppose the morals are: 1) Evolutionary methods are good at finding bugs 2) Your fitness function is not selecting for what you think it is ;) Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Best regards, /Robert Feldt -- Tech. Dr. (PhD), Professor of Software Engineering Blekinge Institute of Technology, Software Engineering Research Lab, and Chalmers, Software Engineering Dept Explanea.com - Igniting your Software innovation robert.feldt (a) bth.seorrobert.feldt (a) chalmers.seor robert.feldt (a) gmail.com Mobile phone: +46 (0) 733 580 580 http://www.robertfeldt.net http://www.cse.chalmers.se/~feldt ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
It wasn't one of Sims', it's here http://www.youtube.com/watch?v=STkfUZtR-Vs According to the voiceover there's not as much variation allowed as I remember. Still amusing though :) On Thu, Jan 9, 2014 at 3:38 PM, Robert Feldt robert.fe...@gmail.com wrote: I don't think I remember the exploding myself strategy from Karl Sims videos: http://www.youtube.com/watch?v=JBgG_VSP7f8 Do you remember where you saw that, Chris? Cheers, Robert Feldt On Thu, Jan 9, 2014 at 4:29 PM, Chris Warburton chriswa...@googlemail.com wrote: Pavel Bažant pbaz...@gmail.com writes: I am developing an evolutionary simulation called Evoversum. An interesting thing I noticed on multiple occasions while developing the program was the fact that it tends to debug itself. The simulated organisms, as a consequence of the Darwinian evolution taking place, are very quick to trigger all sorts of bugs, sometimes to their advantage, sometimes triggering undefined behavior, destroying their own world. So it seems likely that this effect is applicable in other software domains, too. Reminds me of a video I saw on YouTube (can't find it at the moment) where a genetic algorithm evolved creatures (collections of sticks, joints and motors) in a physics simulation. The goal was to move the furthest distance, in the hope that they'd walk/crawl/etc. In fact, one of them triggers a bug in the simulation which causes it to explode, sending its body parts flying in all directions. This immediately dominates the population, so all the creatures start exploding. I suppose the morals are: 1) Evolutionary methods are good at finding bugs 2) Your fitness function is not selecting for what you think it is ;) Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Best regards, /Robert Feldt -- Tech. Dr. (PhD), Professor of Software Engineering Blekinge Institute of Technology, Software Engineering Research Lab, and Chalmers, Software Engineering Dept Explanea.com - Igniting your Software innovation robert.feldt (a) bth.seorrobert.feldt (a) chalmers.seor robert.feldt (a) gmail.com Mobile phone: +46 (0) 733 580 580 http://www.robertfeldt.net http://www.cse.chalmers.se/~feldt ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc
Re: [fonc] Evolutionary Debugging :.
Thanks a lot for that link, Chris! In 1998 I used Genetic Programming to evolve controllers for an embedded system (aircraft arrestment) and was using a simulator of the system for the evolutionary searches. I also found several bugs in the simulator which had already been in heavy use by engineers for several years. Unfortunately I did not analyze these bugs in any detail in the paper and don't remember all the details any longer: http://www.robertfeldt.net/publications/feldt_1998_diverse_sw_with_gp.html I have been getting back to search-based software testing recently and during 2014 we will release automated testing tools (an extension of our GödelTest approach: http://www.robertfeldt.net/publications/feldt_2013_godeltest.html ) that use different search approaches (some evolutionary, other deterministic) to search for test data and test case for more standard software. Cheers, Robert On Fri, Jan 10, 2014 at 12:51 AM, Chris Warburton chriswa...@googlemail.com wrote: It wasn't one of Sims', it's here http://www.youtube.com/watch?v=STkfUZtR-Vs According to the voiceover there's not as much variation allowed as I remember. Still amusing though :) On Thu, Jan 9, 2014 at 3:38 PM, Robert Feldt robert.fe...@gmail.comwrote: I don't think I remember the exploding myself strategy from Karl Sims videos: http://www.youtube.com/watch?v=JBgG_VSP7f8 Do you remember where you saw that, Chris? Cheers, Robert Feldt On Thu, Jan 9, 2014 at 4:29 PM, Chris Warburton chriswa...@googlemail.com wrote: Pavel Bažant pbaz...@gmail.com writes: I am developing an evolutionary simulation called Evoversum. An interesting thing I noticed on multiple occasions while developing the program was the fact that it tends to debug itself. The simulated organisms, as a consequence of the Darwinian evolution taking place, are very quick to trigger all sorts of bugs, sometimes to their advantage, sometimes triggering undefined behavior, destroying their own world. So it seems likely that this effect is applicable in other software domains, too. Reminds me of a video I saw on YouTube (can't find it at the moment) where a genetic algorithm evolved creatures (collections of sticks, joints and motors) in a physics simulation. The goal was to move the furthest distance, in the hope that they'd walk/crawl/etc. In fact, one of them triggers a bug in the simulation which causes it to explode, sending its body parts flying in all directions. This immediately dominates the population, so all the creatures start exploding. I suppose the morals are: 1) Evolutionary methods are good at finding bugs 2) Your fitness function is not selecting for what you think it is ;) Cheers, Chris ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Best regards, /Robert Feldt -- Tech. Dr. (PhD), Professor of Software Engineering Blekinge Institute of Technology, Software Engineering Research Lab, and Chalmers, Software Engineering Dept Explanea.com - Igniting your Software innovation robert.feldt (a) bth.seorrobert.feldt (a) chalmers.seor robert.feldt (a) gmail.com Mobile phone: +46 (0) 733 580 580 http://www.robertfeldt.net http://www.cse.chalmers.se/~feldt ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc -- Best regards, /Robert Feldt -- Tech. Dr. (PhD), Professor of Software Engineering Blekinge Institute of Technology, Software Engineering Research Lab, and Chalmers, Software Engineering Dept Explanea.com - Igniting your Software innovation robert.feldt (a) bth.seorrobert.feldt (a) chalmers.seor robert.feldt (a) gmail.com Mobile phone: +46 (0) 733 580 580 http://www.robertfeldt.net http://www.cse.chalmers.se/~feldt ___ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc