Some Questions on Genetic Algorithms

vjtorley:

I was very struck by Glenn Williamson’s [vjt meant GlenDavidson] remark that creativity is not the same thing as complexity. Very deep. Glenn seems to think that people are good at the former, but the blind processes can outdo them in the latter. That’s an interesting view, but I’d want to see evidence that blind processes are actually capable of producing systems with a high degree of functional complexity, of the kind Axe described in his book. Even a computer simulation would be something.

What with all the experts in writing GA’s here at TSZ I was hoping VJT would have elicited more of a response.

Which brings me to my second point. Tom English remarked above:

“What’s more important in responding to Axe, I suspect, is the issue of knowledge. Do you get only what you know how to make? The answer to that, coming from evolutionary computation, is a top-of-the-lungs NO!!!. I’ve set up a number of evolutionary systems that ended up knowing, in clear operational terms, how to do what I hadn’t a clue how to do.”

I’d like to ask Tom: in terms of building functional coherence, what’s the best your algorithms are capable of doing? I’m interested in finding out, and if you can point me to a good place to start familiarizing myself with GAs, I’d be grateful.

Why doesn’t someone walk VJT through designing a GA that does what he is asking? Is it because a generic GA doesn’t do anything of the sort of thing he is asking for?

For VJT, do you have any experience at all in any programming language?

268 thoughts on “Some Questions on Genetic Algorithms

  1. Mung, now:

    Did I claim that code is a genetic algorithm?

    Mung, then:

    My program then creates a genotype and initializes it randomly. Even keiths admits this is true.

    My program then subjects that genotype to multiple rounds of mutation and selection. keiths, if he is willing to be honest, will admit that this is true.

    My program causes the initially randomly generated genotype to converge on the target sequence. Even keiths admits this is true.

  2. Here’s what I actually said about my program:

    Mung: Let’s discuss whether the following is or is not an example of cumulative selection:

    You’re welcome, Patrick. keiths, your quote-mining is a bit rusty.

  3. Mung: See, Joe gets it. I’ll post code for a GA when and if I ever feel like doing so. I have nothing to prove here.

    And a fine job you’re doing of it.

  4. I just read the Ruby Weasel for the first time. It’s clever and amusing. I’m amazed that, as much as Mung jokes, it never occurred to folks that he would joke pointedly in code.

    Mung has long held that the target is coded into Dawkins’s Weasel, and that the program is just a whirlygig. He carried it to absurdity in his own code, and supplied a punchline in the end. Mung in fact munged the target string to get the initial parent. If he says now that the pun was intended, I will believe him.

  5. Patrick: And a fine job you’re doing of it.

    All the effort I put into it, I think a little appreciation is called for, but I am just not seeing it.

  6. Mung: What part of “I accept common descent” do you not understand?

    Mung: So yes, I’m fine with UCD too. What I mean when I say I accept common descent is that I don’t believe God poofed all species into existence out of nothing during some literal one week span of seven days at some point in the past (Young Earth Creationism) or even over long periods of ages (Old Earth Creationism).

    So, for example, I reject the idea that God created the dinosaurs, wiped them out, and then created the mammals to take their place.

    Maybe it’s because I’m new here, and your comments seem to lean toward snark instead of contribution, but what exactly do you believe?

    If you accept UCD, is it your position that a designer created the initial life forms and everything since has been evolution? Or the initial life plus guided evolution?

    I apologize if you’ve already staked-out a position and I am too new to know about it, but maybe these conversations would be less contentious (and therefore of more value to us all) if you did stake-out a position.

    sean s.

  7. Mung: All the effort I put into it, I think a little appreciation is called for, but I am just not seeing it.

    Many famous artists aren’t appreciated until after their deaths.

  8. Patrick: Many famous artists aren’t appreciated until after their deaths.

    Most artists go unappreciated because that’s all their work deserves.

    sean s.

  9. Mung. Can you please answer this?

    dazz: Just one more question on this (that I already asked a number of times, apologies for the FFM-esque repetition here). Do you think there’s a gradual, step-wise pathway available to evolution / UCD?

    Because the only alternative to that is “dogs giving birth to cats”

    And if you don’t believe that, the only alternative is something indistinguishable from standard evolution, and IC / functional coherence / FSCI/O can neither pose a challenge to evolution

  10. I find it hard to fathom that anyone could look at this code and think I was attempting to write a genetic algorithm. But I guess it just goes to show that there is just no accounting for what some people are willing to believe.

  11. Mung:
    I find it hard to fathom that anyone could look at this code and think I was attempting to write a genetic algorithm. But I guess it just goes to show that there is just no accounting for what some people are willing to believe.

    It’s not a knee-slapper, but it is amusing.

  12. Mung:
    I find it hard to fathom that anyone could look at this code and think I was attempting to write a genetic algorithm. But I guess it just goes to show that there is just no accounting for what some people are willing to believe.

    At first I thought you were implementing weasel badly. I find Dr. English’ suggestion of humorous intent . . . not entirely implausible.

  13. Tom English:
    Does the WordPress code tag work in comments?

    [code language=”python”]
    def hi(you): print “Hi, “, you
    [/code]

    Perhaps indenting each line with four spaces works?

    (defmacro while (test &body body)
    “A little syntactic sugar around DO.”
    `(do () ((not ,test)) ,@body))

    ETA: Nope.

    (defmacro while (test &body body)
      "A little syntactic sugar around DO."
      `(do () ((not ,test)) ,@body))
    

    ETA2: It looks like using a pre tag and a code tag inside of angle brackets is the best you can get. I’ve been meaning to try a Markdown plugin, but I’m worried about breaking the other comments. I might take the chance.

  14. Tom English: Does the WordPress code tag work in comments?

    I’ve never had much success getting code to look nice by typing into the text box. That’s why I uploaded mine as a text file and linked to it.

  15. Mung, now:

    I find it hard to fathom that anyone could look at this code and think I was attempting to write a genetic algorithm.

    Mung, then:

    My program then creates a genotype and initializes it randomly. Even keiths admits this is true.

    My program then subjects that genotype to multiple rounds of mutation and selection. keiths, if he is willing to be honest, will admit that this is true.

    My program causes the initially randomly generated genotype to converge on the target sequence. Even keiths admits this is true.

  16. Mung: I’ve never had much success getting code to look nice by typing into the text box. That’s why I uploaded mine as a text file and linked to it.

    Well, it will be a Major Event, in this bizarre sector of the blogosphere, if you provide code for a GA. So use the code tag in an OP.

  17. keiths: Mung, then:

    That does sound like Mung is trying to convince you he wrote a GA. Looks like he wants it both ways then.

  18. keiths: Mung, then:

    My program then creates a genotype and initializes it randomly. Even keiths admits this is true. [CHECK]

    My program then subjects that genotype to multiple rounds of [nonrandom] mutation and selection. keiths, if he is willing to be honest, will admit that this is true. [CHECK]

    My program causes the initially randomly generated genotype to converge on the target sequence. Even keiths admits this is true. [CHECK]

    Mung did what he claims, while going out of his way to violate your expectations. It’s a clever and amusing exercise, not a work of genius. But it does establish that his grasp of the issues is much stronger than you’re willing to allow.

  19. There are a number of good reasons to think that I was not trying to write a GA with that code.

    First, and always important, is the context. Context which gets lost when quote-mining. The discussion was about cumulative selection, not genetic algorithms. The exercise was to find what were the necessary and sufficient conditions for there to be cumulative selection. The question the code raised was whether or not it is an example of cumulative selection, not whether it qualified as a GA.

    Second, there is no population.

    Third there is no fitness function.

    Fourth there is no reproduction.

    And last but not least, the person now trying to make it appear like I was claiming it was a GA is keiths.

  20. Sixth:

    keiths: The code you provided confirms that you don’t understand Weasel or cumulative selection at all.

    At the time it appears to have slipped your mind that I was attempting to demonstrate that I could write a GA. Odd that.

  21. keiths then:

    keiths: If you truly want to understand Weasel and cumulative selection, then make an effort to learn about them.

    Again, no mention of me allegedly trying to write a GA. No mention that I was trying to fob off my code as a genetic algorithm. None.

  22. Here’s another relevant statement that keiths forgot to mention:

    Mung: My program mutates a genome and allows the mutations to accumulate. It beats random chance. I think that qualifies as cumulative selection.

  23. Tom English: Mung understands software. The problem is that he mistakes the software implementation of a model for the model itself.

    Mung: Second, there is no population.

    Third there is no fitness function.

    Fourth there is no reproduction.

    Now Mung is making my case for me. His code would serve as an implementation of a model in which there is a population, there is a fitness function, and there is reproduction. The elements of a model need not be explicit in a correct implementation of the model.

    It is easy to extend Mung’s code to output the population (a single parent) and offspring, along with their fitnesses, in each generation. Nothing presently in the code need be deleted or modified.

  24. Richardthughes:
    So are you trolling, trying to understand GAs or something else, Mung?

    That is an entirely appropriate question to ask. When you recognize that Mung is anything but dumb, you cannot help but wonder, “What the hell is he getting out of this?”

  25. Patrick now:

    Patrick: Mung has already demonstrated that he doesn’t understand the weasel algorithm when he posted this bit of code here.

    Patrick then:

    Patrick: Mung has created the perfect latching weasel, and just in time to give it to Kairosfocus for Saturnalia.

  26. Richardthughes: So are you trolling, trying to understand GAs or something else, Mung?

    Seems to me Patrick and keiths are the ones trolling here.

    I’d like us to talk GAs with Vincent participating, since he was the one who was asking the questions. But if Vincent isn’t going to participate I’m not sure what the point would be.

    I’ve already stated I don’t see any barrier to a GA producing something with functional coherence.

  27. Mung:
    Patrick now:

    Mung has already demonstrated that he doesn’t understand the weasel algorithm when he posted this bit of code here.

    Patrick then:

    Mung has created the perfect latching weasel, and just in time to give it to Kairosfocus for Saturnalia.

    Now that I have Markdown installed I’ll start looking for a sarcasm tag.

  28. Tom,

    Mung did what he claims, while going out of his way to violate your expectations. It’s a clever and amusing exercise, not a work of genius. But it does establish that his grasp of the issues is much stronger than you’re willing to allow.

    You’re giving Mung way too much credit.

    He actually attempted to implement a version of Weasel — hence the name “Crude Weasel” — but utterly failed, as you can see from his code.

    No surprise. Why would we expect him to be better at this than he is at philosophy, logic, mathematics, or Biblical exegesis?

  29. Mung: Seems to me Patrick and keiths are the ones trolling here.

    I’d like us to talk GAs with Vincent participating, since he was the one who was asking the questions. But if Vincent isn’t going to participate I’m not sure what the point would be.

    I’ve already stated I don’t see any barrier to a GA producing something with functional coherence.

    That’s nice. Now, my question ?

  30. You see, Tom, it can’t be a version of Weasel unless it is Weasel. And it was not Weasel, and I even admitted it was not Weasel. Therefore it was wrong of me to claim it was a version of Weasel.

    What I did not claim, was that it was a GA. And what a review of the thread shows after I posted the code is that keiths somehow missed his opportunity then to make it look like I was trying to code a GA so he is taking that opportunity now.

    Better late then never, right keiths?

    Who knows, one day maybe I’ll know enough about Weasel to know that I am not duplicating the Weasel program.

  31. version – a particular form of something differing in certain respects from an earlier form or other forms of the same type of thing.

    And keiths can’t seem to keep his eye on the ball anyways. The point wasn’t that it was to be an implementation of Weasel, but that it was an alternative way to demonstrate the power of cumulative selection.

  32. Mung: Let’s discuss whether the following is or is not an example of cumulative selection:

    keiths version 1: Let’s discuss whether the following is or is not an example of a genetic algorithm.

    Mung: Let’s discuss whether the following is or is not an example of cumulative selection.

    keiths version 2: Let’s discuss whether the following is or is not an example of a Weasel program.

    Mung: Let’s discuss whether the following is or is not an example of cumulative selection.

    Can’t wait to hear what keiths version 3 is going to be!

  33. I’m sure keiths can find a way to ignore this tidbit, again.

    Mung: But no, I did not attempt to duplicate the Dawkins program. What would be the point of that? Surely there’s more than one way to demonstrate the power of cumulative selection.

  34. keiths: Not only did you fail, but your program merely demonstrates the rather uninteresting fact that if you randomly choose one character out of a set of twelve, over and over, you will eventually choose each character in the set.

    And here we have keiths leaving out what is perhaps the most important aspect of my program, which is that the changes accumulate.

    Given my claims in that thread, that would be something one would not want to just carelessly fail to mention.

Leave a Reply