Little Wesley Elsberry Continues to Choke on Genetic Algorithms
As a "response" to my recent post exposing his ignorance of GAs, Wesley refers us to his bogus rantings of 15 years ago. I had said that natural selection is not a search heuristic, it isn't, and that the information that went into the program is what allowed the computer to provide a solution. We must remember that computers cannot do anything we could not do. They just do it faster given the proper programming and resources.
Specifically the following:
- Natural selection simulated on computer produces solutions which are informed by the intelligence that went into the operating system, system SOFTWARE, and evolutionary computation software.
If we take a limited form of evolutionary computation for simplicity's sake and analyze it, I think that we will come out ahead. Genetic algorithms, as presented by John Holland in 1975, work on a population of fixed-length bit strings. The bit-string representation is generic. The operations which the genetic algorithm performs involves the manipulation of these bit strings, with feedback from an evaluation function.Nature doesn't have an "evaluation function", but people do. To nature all organisms that are "good enough" survive and may get the chance to reproduce. Natural selection eliminates, it doesn't select Strike 1.
What are the manipulations on the bit-strings? The GA can copy bit-strings with mutation (change in state of a bit), crossover (production of a new bit-string using parts of two existing bit strings in the population), and a variety of other "genetic" operators. The GA selects bit-strings for reproduction based upon results returned from an evaluation function which is APPLIED against each bit string in the population.Reproduction is the very thing that needs explaining and Wesley thinks it isn't any big deal that bit strings reproduce. And again with that obviously artificial evaluation function- nature doesn't have one. Nature doesn't have any goals. Strike 2
The purpose of the evaluation function is to provide a metric by which the bit-strings can be ranked. The critical point to be grasped is that neither the operations of the GA nor those of the evaluation function need information about the pattern of the end solution. The GA's operations are completely generic; there are a variety of GA shell tools available for use, including plug-ins for MS Excel spreadsheets. Since the same GA tool may be used for job-shop scheduling in one instance, and oilfield pipeline layout in another, the objection that the intelligence of the GA programmer informed the specific designs that result from its application quite soon appear ludicrous. That a programmer might code a generic GA shell and also happen to somehow infuse it with just the right information to optimize PCB drilling movements might be possible, but to insist that the same programmer managed to infuse specific domain knowledge for each and every application to which his tool is put stretches credulity.Strawman. No one said the programmer had to do that. All that is needed is the properly written program. The evaluation function is the purely artificial part of the GA, meaning it represents artificial selection. Strike 3
Now, let's eliminate the evaluation function as a source of domain-specific information. Obviously the evaluation function does give information to the GA, but that information does not give a direction for adaptive change for each bit-string evaluated, but rather just how well each bit-string performed when evaluated. The result passed back to the GA does not give the GA insights like "Toggle bit 9 and swap 20-23 with 49-52". It merely passes back a scalar number, which when compared to other scalar numbers, forms a ranking of the bit strings. The evaluation function can require very little in the way of domain-specific knowledge. For the PCB drilling application mentioned above, the evaluation function can very simply be instantiated as "return closed path length of the route represented by the input bit-string", which says nothing at all about what the path looks like, and works for any set of hole coordinates. Because the evaluation function can be generic over cases, again we have the argument that domain-specific information is unavailable here on the same grounds as for the GA operations. While we might be able to conceive of an evaluation function that somehow encapsulated information about a particular solution, for problems like the PCB routing one mentioned it is highly unreasonable to credit that information about all possible PCB ROUTE configurations has somehow been instilled into the code.More trivial nonsense and a continued strawman. Take that "evaluation function" out of the GA and you won't get a solution to the problem. It does not matter how the computer reaches the solution. It matters that it is guided for a solution it is actively searching for.
What's left? Merely the information content of the initial bit strings in the GA population. Since this is often, if not always, done by filling the bit-strings based upon random numbers, any non-trivial bit representation is highly unlikely to correspond to a final solution state.Yes the initial conditions are pre-set.No big deal. Reproduction is just a given and that is a big deal. The evaluation function is huge and the solution could not be achieved without it.
The information or designs said to be produced by GA are the contents of the bit-strings at the end of the GA run. It can be confirmed that the end bit-string content differs from the initial bit-string content. It can be demonstrated that the evaluation of the initial bit-string indicates poorer function than the final bit-string. The question which those who object to evolutionary computation via the assertion that intelligence has somehow been infused into the result must answer is that if intelligence intervenes to shape or produce the final bit-string, *how* does it accomplish that, and *where* did the domain-specific knowledge come from? I've already sealed off infusion via the GA, the evaluation function, and the initial bit-strings for "how". The "where" question poses an extremely serious difficulty for proponents of this assertion, since if the information needed to solve all the problems which a GA can solve is present on every machine which a GA can be run upon, the information capacity of each machine is demonstrably smaller than the information content of all those possible solutions. It is problematic where the information is stored, and even if that information were capable of being stored somehow, the problem of *why* computer designers and programmers, who would be shown by this to be very nearly omniscient, would chose to put all that information into their systems when the vast majority of it is very likely never to be used.Strawman- no intervention required, just the properly written program containing the correct evaluation function. The only thing Wesley has "sealed off" is his mind.
I'll note that it is entirely possible to point to or construct evolutionarycomputation examples whose evaluation functions incorporate a known final solution state. I only know of such simulations done for pedagogy. Dawkins' "weasel" program from "The Blind Watchmaker" is a fine example of this. However, the mere existence of that simulation is not sufficient to show that all evolutionary computation does so.
Again you don't need the solution to be part of the program.
All the information to find the solution is programmed into the GA. GAs would not find solutions if the correct evaluation function was not included in that GA. Therefor evaluation functions are one way of sneaking an intelligent agency into a GA as there isn't any difference between a evaluation function selecting and a human selecting based on the same criteria (except for the speed). The evaluation function is the artificial selection part of the GA. The only part of a GA that could be considered Darwinian or neo-Darwinian, is the mutation process. And even that is debatable.
See the first post Wesley Elsberry Clueless About GAs