This is just an effort to help keep Joe’s thread focused and to help keep it from being derailed. People can use it or not. I hope they will.
CharlieM: Can someone explain to me, why is all of this not just a model of directed evolution? Surely it is set up to be directed towards a target?
Allan Miller: It gets towards the target by means of variation and selection of genotypes in the current population. The programmer does not direct it towards the target. Indeed, there would be no point in writing GAs for problem solution if it were simply a matter of specifying a target and directing the program to find it.
Consider a small modification – instead of distance from target, evaluate fitness by adding up the ASCII bits. Those with the greater sum are fitter than those with a lesser. There is no mention of a distant target – although it is clear that the program will converge on a string of all Zs, the program doesn’t know this. It is not drawn by, nor directed towards, that target. It is simply doing generational evaluation of fitter and less fit genotypes in the current population.
Discuss.
Weasel is an evolutionary algorithm that uses directed search, therefore it is an example of directed evolution.
So that I could prove everyone wrong about what?
We differ on how integrated organisms are and whether it makes sense to say that organisms are “in control of” their “genetic dynamics”. At the genetic level there will often be multiple ways that a character can increase in size. Which happens depends on the details of the population’s initial state and the outcome of genetic drift.
But we may agree about this: Whether a breeder selects or a predator imposes a selection pressure, neither does so with a detailed genetic blueprint on hand, or in paw. So the information embodied in the resulting genetic changes is not “front-loaded”. Right?
Write the code, and you’ll see.
🙂
Well let’s start with looking at evolution as change over time. I’ll do some comparisons and use as our criterion the creature which has undergone the greatest change.
I take it you agree with common descent? Right; compare a human with a bacterium. What would the common ancestor have been like? Do you agree that the common ancestor of a human and a bacterium would have been a single-called organism? It would have been more similar to a bacterium than a human. So humans have shown greater change therefore are more evolved.
What about the common ancestor of amphibians and humans, would they have shown more similarity to extant amphibians or to humans?
In reply to a few creationists who claim that evolution involves humans evolving from monkeys, It is often stated that this is not the case as we evolved not from apes but from an ape like ancestor. If that is the case, which of the two did the common ancestor more resemble, apes or humans? If you think apes then it stands to reason that since that time we have changed more than extant apes. And if we regard change over time is a measure of evolution then we have evolved more.
I might feel more inclined to write code if someone would post a test I can use to validate the code.
You’re not capable of testing your own code?
Why do you consider morphological change to be more important than molecular change? If two different lineages have been evolving for the same period of time, the idea of “more evolved” only makes sense if you have some sort of standard reference. I guess you are equating “more evolved” with being more like yourself.
I have read that bacteria have undergone AT LEAST as much change in their DNA as mammals since the two had a common ancestor.
keiths,
I believe the confusion arises because I have been talking about the labels that we apply to functions, whereas you have been talking about the labels that we apply to data. And I have tried to be clear about this from the beginning, referring to your definition as a “definition-by-use”.
IMO, ‘sum’ refers to SUM(xi), whereas ‘checksum’ refers to SUM(xi) mod 2^B.
Your position is that ‘sum’ refers to BOTH SUM(xi), and (thanks to your argument re C) SUM(xi) mod 2^B. You label a datum a ‘checksum’ if it is used to check data integrity (which I find somewhat goofy: what should we call an unused checksum?).
Let’s not make a hash of this. <ggg>
So when I think about functions while reading your attempt to parody my position, most of it makes perfectly good sense:
Yup.
Utterly false. You are better than this.
More proof by assertion? We’re still waiting for you to identify the “director” in the weasel algo. Put up or shut up: what’s directing the search in the algo and what would that be in the real world?
DNA_Jock:
I’m not attempting to parody your position; I’m trying to accurately summarize it:
As far as I can see, that is an accurate summary of your position, apart from the final sentence and a quibble over the word ‘used’. You don’t feel that ‘checksum’ is a misnomer, despite the fact that (in your view) it isn’t a sum and its use as a check is not its distinguishing characteristic.
How about this reworded summary?
Now compare with my position:
(Or, if you want to quibble, “provided for the purpose of checking data integrity.”)
Can you seriously maintain that my position is “an invitation to confusion” and yours is not?
Any language lets you build libraries. Lisp lets you easily build new languages.
JavaScript is an ugly, hacky (in the bad sense of building furniture with an axe) language that shows its ugly roots of being developed in too little time under too much pressure. It could have been Scheme, with far less effort.
DNA_Jock,
Then you agree with me, and not with Flint, regarding my 2-byte checksum at the end of a 28-character Weasel phrase.
It is a sum mod 2^16 of the bytes in the phrase, so you agree that it qualifies as a checksum. Flint doesn’t think so:
ETA: And by the way, 5A hex is equal to 90 decimal, not 132. Flint needs to work on his radix conversions. 🙂
I have yet to see a written test from you.
If I don’t know what the requirements are I can’t write a test. If I can’t write a test I don’t know that the code meets the requirements.
Your way is to write code and hope for the best. The only way you know if your code is malfunctioning is if your program fails to run.
🙂
http://martinfowler.com/books/dsl.html
Seems to work for everyone else here.
Why not just read what he writes?
Now that’s funny!
It’s a quibble in bits.
Mung,
I did. That’s where the summary comes from.
Mung,
Even most programming newbies understand that there’s more than one way to test a program.
Says Mung, who criticized Allan’s nonexistent program for having nonexistent bugs that caused it to violate the requirements that Mung is unaware of.
No, my way is to test my code using whatever methods seem most appropriate.
Uh, if your program is just a few lines of computation, a good test is to cycle through a list of parameters and collect the output.
Thirty years ago I wrote the front end to a mortgage origination program that calculated monthly payments for a large variety of mortgage types.
My test bed was an HP-80 calculator.
http://www.hpmuseum.org/hp80.htm
A few numbers go in, one comes out. Testing is necessary, but keiths’ program only has to match Joe’s theoretical numbers.
There you go again: picking a single lineage and using it as the epitome of all evolution. At least until you start noticing that you’re doing that, discussion with you will be difficult. You are defining “change” as “becoming more like a human” and ignoring all changes that aren’t that sort. All those other lineages have changed too, just not in the only direction you are determined to notice.
And if your claims were true, wouldn’t everything be changing in that direction, not just that one lineage?
Just for you:
class Weasel; def to_s; “I am a Weasel.”; end; end
class Keiths < Weasel
def to_s; “I am a special kind of Weasel!”; end
end
require ‘minitest/autorun’
class WeaselTest < MiniTest::Test
def test_weasels
assert_equal(“I am a Weasel.”, Weasel.new.to_s)
assert_equal(“I am a special kind of Weasel!!”, Keiths.new.to_s)
end
def test_keiths_is
flunk
end
end
==========================================
Run options: –seed 37246
# Running:
F.
Finished in 0.000000s, Inf runs/s, Inf assertions/s
1) Failure:
WeaselTest#test_keiths_is [ksw.rb:18]:
Epic Fail!
2 runs, 3 assertions, 1 failures, 0 errors, 0 skips
Mung, your most serious problem is not that you are wrong, but that you are not interesting.
So, much like life then where small deviations or errors in the code stop life dead in it’s tracks.
Oh, wait now….
As an (presumed) Intelligent Design supporter, do you have any examples of directed evolution that relate to Intelligent Design and biology? Or is WEASEL, written by a Darwinist, it?
Care to give some specific examples? Or is that too specific for your liking?
No problem.
This by Stephen Talbott:
What you call genetic drift I would call a drift in phenotype averages. For example the average beak size of Galapagos finch populations changes with time. The role genes play in this variation is the point of contention between us and cannot from the outset be assumed to be causal.
Right. Gene frequencies change as a result of individual members of the population being killed off without producing offspring.
What are “integral capacities” and how are they inherited?
I consider morphological change to be more important for understanding nature than molecular change because it gives us directly observed, empirical knowledge. When we consider changes at the molecular level we tend to be lead into abstraction and away from reality.
Okay, let’s make some slight alterations to what I wrote.
I take it you agree with common descent? Right; compare a bird with a bacterium. What would the common ancestor have been like? Do you agree that the common ancestor of a bird and a bacterium would have been a single-called organism? It would have been more similar to a bacterium than a bird. So birds have shown greater change therefore are more evolved.
What about the common ancestor of amphibians and birds, would they have shown more similarity to extant amphibians or to birds?
Are you willing to answer these new questions?
No.
I consider the development of, say, an individual mammal to be directed. The starting point is conception and the target is a normally developed adult. This is achieved by the somatic cells differentiating and developing at different rates in order to produce the whole organism. Think of species as cells and the living world as an individual organism and you will get an idea of what I mean by directed.
ANALOGY ALERT!
If we ever get around to organising a mars landing by humans, not everyone on the project will be transported to mars, but they will all play their part in the success of the mission.
petrushka,
So true.
The snark and lame jokes would be much more tolerable if Mung were actually contributing intelligently and interestingly to the discussions here.
Oops, 132 is the OCTAL of 5A, and 90 is the decimal.
But I think DNA_Jock and I are in complete agreement. The one and only distinction between a sum and a checksum is the possibility of overflow. Using a modula calculation only produces a sum in the happy circumstances where there is no overflow. But this is an accident of the data, not inherent in the concept.
To sum and to checksum are terms describing different methodologies which can produce different results. There are many ways to validate the integrity of a block of data, and these are two of them. They are different.
I am amused that you can “weasel” your way around your error simply by increasing the width of your bucket, so that a true sum and a modula calculation produce the same numerical value, so you can call them the same method!
??? Are you seriously arguing that DNA differences are only abstract, unreal, and not observed? Sorry, you are dead flat wrong. To the point where I have to struggle to regard such a claim as made in good faith, rather than as a way to justify a clear error.
Sorry, but your imaginary similarity does not exist. The development of an individual IS directed – it is predetermined and carefully orchestrated. Selection is not involved. Random mutation is not involved. Changes from one generation to another is not involved. Populations are not involved. Indeed, NOTHING of evolution is involved at all.
Flint,
No. The two of you disagree on the following. He says:
In my example, the two bytes are in fact equal to “SUM(xi) mod 2^B”, where B is 16. Thus, they form a checksum by DNA_Jock’s criterion.
You insist that they do not form a checksum:
Correct. Two different methods that SOMETIMES produce the same result are not the same method, even when they produce the same results.
You might as well argue that flying and driving across country are the same thing provided you end up in the same place.
A checksum is a METHOD, it is not a result.
A method and not a result? I hate going to the dictionary, but this is just wrong. A checksum algorithm is a method.
Again, you use a criterion based on you. The fact that birds share that criterion with you is the only reason you picked them. Modern bacteria are as different from their ancestors as a bird, just in ways you don’t notice.
Again your question assumes the criterion you choose, and you don’t notice changes that aren’t in that direction. Your questions do nothing more than reveal your anthropocentrism. Changing the pinnacle of creation to birds doesn’t help, because you chose birds for their similarity to your true pinnacle, yourself.
Ah, so humans are not just the most highly evolved. We’re the reason for the whole thing, and everything else is just our support system. Do you have any evidence for this interesting hypothesis?
Time to quote Mark Twain again: “Man has been here 32,000 years. That it took a hundred million years to prepare the world for him is proof that that is what it was done for. I suppose it is. I dunno. If the Eiffel tower were now representing the world’s age, the skin of paint on the pinnacle-knob at its summit would represent man’s share of that age; and anybody would perceive that that skin what what the tower was built for. I reckon they would, I dunno.”
The problem with that analogy is that you haven’t shown any reason to suppose it bears a relationship to the evolution of life. The other species on this planet are not part of any mission other than their own. You are not an astronaut, and fleas and malaria are not part of your support crew.
Flint,
Take some deep breaths. Your pride is leading you into ever more outlandish and indefensible positions.
That’s silly. As petrushka points out, the algorithm is the method, and the checksum is the result.
If you’re talking to a network engineer about a packet, and you ask him or her what the checksum is, you’ll get an answer like “3F0C”. No hesitation, no funny looks. This is completely standard usage.
Not only that, you’re contradicting your own position. If the checksum were the method and not the result, then it wouldn’t matter that the 2-byte Weasel checksum never overflows. The method of computing the checksum (as the sum of the data bytes modulo 2^16) is the same for the Weasel checksum as it is for 2-byte checksums that can actually overflow. By your own logic, then, a Weasel checksum would in fact be a checksum.
Your statement is wrong either way:
Why this Mungish refusal to acknowledge your mistakes? Ponder what you just wrote to CharlieM:
Assuming other commenters state of mind or motive is against the rules.
CharlieM,
I’m not going to argue with a writer who isn’t here. Appeal to epigenetics is not the bypass of DNA-based inheritance that you think it is.
Mung,
OK, two questions, the second following on from the the first. The space S has v^n members and Weasel has a target comprising 1/S of the space.
1) If there were two phrases against which fitness was evaluated (2/S targets), would this be an example of directed evolution? ***
2) If the answer to the above is yes, what ‘target’ proportion of the string space do you regard as a cutoff between directed and undirected?
*** eta – this, I guess, is the Two-Headed Weasel I just read Tom E was dreading … 🙂
Well I can’t speak for Talbott but I would say they are abilities and activities of the organism in question. For example a python’s ability to consume a whole gazelle would be an integral capacity. These, individually would be the separate “things” necessary for it to be able to do this. “Integral capacities” puts them in the context of the whole organism. What does the python need? Some examples are, a dislocating jaw, skin that can stretch to many times its original size and then return to normal, a trachea that allow the passage of air to prevent choking, a stomach able to contain the prey and a metabolism to match. Those are a few that come to mind.
They are inherited via the fertilised egg.
No. Read what I wrote.
DNA changes pulled out of context are unreal. Put a quantity of DNA in a dish and see what happens. And I said they are not “directly observed”. You can directly observe your breathing, but you can’t observe the multitude of DNA activities that accompany this process.
Yes I agree with your second sentence.
Selection of cells is involved. Your hands could not be formed without cells being killed of.
Are you saying that somatic cells don’t mutate?
There are changes between generations of cells. How do you think a blastula becomes a differentiated organism?
Do you understand I am comparing cells in an individual with organisms in the living world?
I don’t notice but you obviously do. So what are the differences?
Why are animals categorised into separate classes? It is because they contain features in common not shared by those outside the group. Extant amphibians are recognised by the same features as extinct amphibians, that is how we determine which class a fossil belongs to. Now do you agree that the line leading to birds once contained amphibians but the line leading to amphibians did not contain birds? This has nothing to do with humans it is purely a comparison between amphibians and birds.
What you seem to be saying is that the differences between all amphibians that ever existed might be greater than the difference between all vertebrates from the time of the first amphibians. That makes no sense.
I’ll continue with this reply later.