Why We Do Not Evolve Software?

Certainly not aloud… That includes me, as well.

1 Like

Me too. (I in no way have reached definitive final conclusions on such topics—so I’m limiting your expectations in advance. :wink: ) Unfortunately, I’m on my way out the door because it is Wednesday and I’m teaching an early Thursday morning class [their time] for some pastors in eastern Asia and western Pacific online—and then I’ve got a mid-week Wednesday evening service at my local church. (Hey, I’ll bet the Apostle Paul never got to preach on opposite sides of the planet in one evening, although he did know of one who visited the third heaven. So he’s got me beat by a long shot!)

Michael, feel free to remind me of your question tomorrow. One of the things which frustrates me about the Discourse software is that once I check the pull-down list of notifications, the “pending check marks” of sort get unmarked. So after following a notification, it is easy to forget which ones one hasn’t investigated.

3 Likes

Agreed. One cannot mark as unread… you can only open more tabs and hope you return to them before the next crash!!! :slight_smile: Nice work!! Thanks for your efforts!!

The kind generated by genetic programming :sunglasses:

Exactly. Hence the counter arguments don’t make sense to me.

  1. The genetic code is a digital code.
  2. Genetic programming shows conclusively we cannot evolve highly functional digital codes.
  3. The genetic code is a highly functional digital code.
  4. Therefore, the genetic code did not evolve.

#2 is the problem. It falsely asserts that if one genetic program can not evolve, then none of them can.

2 Likes

Amazingly poor logic there. #2 is simple false since you’ve only tested against human software which is at best a rough analogy of biological DNA function.

That’s not the argument the linked paper is making. I’ll comment on your argument in my next post, but the article is arguing that EA’s cannot generate complexity, taking software as an exemplar of a complex artefact.

The paper argues that predictions of generating software via EA made by EA advocates have failed badly. Furthermore, we do not use EA to develop software. So, according to the paper, EA cannot be used to generate complexity seen in software.

But the paper itself explains why that is “[The] Fitness function for a complex software product is difficult to outline and specify and may be as complex (or even more complex) as the software we want to evolve as it has to consider all the possible use cases and pass all unit tests.”

In fact, as @AllenWitmerMiller mentions, Hazen et al’s 2007 paper describing experiments with Avida show EA can generate complexity in the form of functional information if we look at fitness functions and surfaces more representative of those encountered in biology.

The linked Yampolskiy paper tries to counter this objection by saying human programmers succeed with the the fitness functions of complex software, but as I pointed out in above post, human intelligence does not rely on EA.

Taking the failure of EA to produce complexity as given, the second part of the paper tries to explain why that is. It makes combinatorial arguments about the number of calculations needed to produce the complexity shown eg by intelligence, comparing those to those available to biological evolution. But these calculations are pointless because they ignore the constraints imposed by physics, biochemistry, psychology, anthropology, etc on the nature of the relevant fitness space.

The paper takes many of its numbers from a Shulman and Bostrom paper. That paper supports biological evolution of human intelligence; it is instead making philosophical arguments about Observer Selection Effects in arguing about AI. The paper is not addressing EA and biological evolution. Shulman and Bostrom are quite careful to point out the limitations on the combinatorial argument due to the assumed shape of the fitness space that the combinatorial argument needs. As best I can see, Yampolskiy quotes their numbers but omits the caveats that accompany them.

Although not important for your argument, I think it is fair to say you are not using ‘DNA as code’ in the sense it was used in other threads, where the usage of ‘code’ varied among code as a simple mapping (possibly representing biochemical causality) and code as a human symbol, along with side trips into encoding as in Shannon’s compression theories.

I understand you as using ‘code’ in the sense of computer software. I then read your argument as saying DNA is software in the sense that the biochemistry of a cell is a Universal Turing Machine with DNA being its input tape (and so capturing both the software and the input data for the UTM).

But to make that argument, you first have to show that the biochemistry of a living cell is a UTM. I know that WE can use DNA to build UTMs, but that it is not the same thing. In addition, we can possibly can model cellular biochemistry as a TM (no U). But it’s not clear to me that life requires a UTM.

But even if it did, once more one has the problem of dealing with the constraints on the shape of the fitness landscape needed for EA and biological evolution. Once those constraints are taken into account, EA works for biological evolution. (As always, abiogenesis is a separate issue).

1 Like

No, therefore we have not created a laboratory fitness landscape that evolves human-like code. Earlier in this discussion someone pointed out that the genetic code is nothing like human code.

Oh yeah … that was you. :wink:

This whole binary code thing seem like a red herring. Outside of Assembly Language, most human codes are not binary UNTIL we put them into a digital computer. Assembly language manipulates bits 8 or 16 at a time (or more, nowadays). All other language are what they used to call “high-level” languages, where single symbols/commands trigger an enormous amount of low-level activity to carry out the task. DNA is almost the opposite, where a long list of chemical cues act to assemble a simple protein function.

Proposition: With regards to an analogy to the form and function of DNA, I suggest that a TEMPLATE is a far better tern than CODE. Like a carpenter or machinist might use a template to cut a part to pre-determined dimensions, DNA is a pattern for assembling a protein or enzyme SHAPE. It is the shape of folded proteins that gives them function.

2 Likes