5 ms·
One thing stands out when you try playing with evolutionary systems. Evolution is _really_ good at gaming the system. Unless you are very careful at specifyin
by Lerc 12y ago
One thing stands out when you try playing with evolutionary systems.
Evolution is _really_ good at gaming the system. Unless you are very careful at specifying all of the constraints that you care about you can end up with a solution that is very clever but not quite what you had in mind. Here power consumption is the issue. If you tried to evolve a sturdy chair you might end up with something that is 1mm tall. or maybe a fuel efficient car that exploits continental drift.
For circuit simulation there are a bunch of potential pitfalls beyond power consumption. I think you would probably need to do multiple runs with components of varying values within their specified precision. I can see evolution getting some sort of benefit by exploiting the fact that two identically specced components behave _exactly_ the same way. Something that would not happen in real life.
- VLM 12y agoFrom the example in the article where the design tried to draw about a quarter amp of current, you could make evolution work to help you by powering the circuit with a fixed 50 ohm resistor in series with the power supply and letting "nature take its course" WRT getting a reasonable output waveform. Similar tricks in the "output" work for your chair and car examples.
- Qantourisc 12y agoImo even if it fails, it can come up with design and ideas you didn't think about. A lot of the time when you design something you just iterate over possible ways to do it. A computer can do this too.
- catshirt 12y ago> If you tried to evolve a sturdy chair you might end up with something that is 1mm tall. or maybe a fuel efficient car that exploits continental drift great way to illustrate your point, thanks for the laugh
- rcfox 12y ago> I think you would probably need to do multiple runs with components of varying values within their specified precision. That's called Monte Carlo analysis. It's important for standard simulation applications as well because most components are specified with certain tolerances. Your amplifier might look stable at the expected component values, but if all of your resistors are at the bottom or top of their tolerance range, it might become unstable! Commercial SPICE simulators (like HSPICE, for example) come with the option to perform this built-in. You can do Monte Carlo analysis with NGSPICE, but you have to organize the input and output yourself. > I can see evolution getting some sort of benefit by exploiting the fact that two identically specced components behave _exactly_ the same way. Something that would not happen in real life. You get pretty close with matched transistors, especially when they're on the same die. But yeah, Monte Carlo.
- tripzilch 12y agoAnother advantage of this, is that it'll smoothen the fitness landscape somewhat, creating better convergence. Another advantage of using simulated annealing instead of evolutionary algorithms is that you can add this sort of noise in pretty much for free (instead of doing multiple runs, you basically just lower the cooling rate).
- nullc 12y ago> Evolution is _really_ good Really this is an effect of all optimization approaches, not just "evolutionary" ones. Even simple parameter hill climbers will do that. A fun personal example, many years ago I was trying to optimize an antenna design. I used a simple blackbox optimizer to adapt a parametrization of the geometry and a simulator to characterize the performance. I started it off and it was slowly making progress. The next day I came back and was exited to see _very good results_ ... but it turned out that it had made the length of the antenna _negative_ and the simulation was spouting nonsense (like the peak gain was a complex number). :) The fundamental unreality of negative lengths must have resulted in me not thinking to add that as a constraint or make sure the simulation handled them gracefully... much in the same way that input fuzzing can turn up nasty bugs in otherwise well tested and competently written software.
- cottonseed 12y agoKarl Sims worked on evolving virtual creates at the Media Lab. He used evolutionary search to design creatures that could perform various kinds of locomotion: crawling, jumping, swimming, etc. [1] I heard the story that his original physics simulation had a bug which the evolutionary search exploited to make creatures that could fly. [1] http://dl.acm.org/citation.cfm?id=192167 http://dl.acm.org/citation.cfm?id=192167
- jesuslop 12y agoAnd the videos were awesome: https://archive.org/details/sims_evolved_virtual_creatures_1994 https://archive.org/details/sims_evolved_virtual_creatures_1...
- cottonseed 12y agoI hadn't seen those in ages. Thanks!
- JoachimS 12y agoReally, really good examples. Thanks!