Evolution, Algorithms, and Predictability


[ Follow Ups ] [ Post Followup ] [ Exmormon.org- Honest Inquiry Message Board ] [ FAQ ]

Posted by David Stephens on May 08, 1998 at 20:29:18:

In Reply to: Found it? Please help, rpcman, Chris posted by Walker on May 01, 1998 at 14:38:08:

I'm not a biologist, I'm a computer scientist, but I think I might have something interesting to inject here about evolution and predictability. The cool thing about evolution to me is that it's an algorithm. Algorithms are brainless, repetitious processes that can modeled and programmed into a computer. There are existing algorithms based on evolution that are used in computer science today. These algorithms are useful in computer software specifically because they DO have predictable results.

One example of evolution in software that I'm familiar with are evolutionary search algorithms. These algorithms are useful in situations where you can determine a "better" output compared to other outputs, but computing "The Best" output is difficult, impossible or too time consuming. In this situation an evolutionary search algorithm can have the computer generate consistently better and better outputs until an output is reached that is good enough to meet the requirements (even though it probably not The Best output). In these cases the predicted repeatable result is that some computed output will eventually be found to meet some minimum requirement for "good enough".

Here's a fictitious example (I don't do PCB layout software design, so I don't know if this is a real application, but it's certainly possible). Consider a program that generates the trace layout for a circuit board. The program has to decide where to place and route all the little traces that connect chips together on a circuit board. A computer can judge certain output layouts as "better" than others because they use less space, or material (or whatever reasons the programmer decides). But computing The Best layout by generating every possible layout is probably too time consuming a process. An evolutionary search algorithm could be used in this case to pick the a layout that is "good enough" as follows:
Take the "best layout so far", and generate from this "parent" layout many slightly different "mutated children" layouts. Have the computer examine all children and parent layouts and judge which is the "best so far". Make this "best so far" layout the new "parent" layout and repeat the process until a layout is found that meets the minimum requirements for being good enough.

This is a practical, predictable process of "evolution by 'software' selection" on a computer. The computer acts as the environment that chooses from among randomly mutating selectors. This process can find "good enough" layouts in orders of magnitude faster time than simply generating layouts randomly and selecting the best. Also this process is incomparably faster than generating all layouts and choosing the one Best layout.

In computer science, evolution is not a "theory"--it's a useful, practical, repeatable algorithm that has real application.



Follow Ups:



[ Follow Ups ] [ Exmormon.org- Honest Inquiry Message Board ] [ FAQ ]